|
|
- # Control de LED Beagle Bone Black
-
- ## Este programa permite encender o apagar el LED 3 de la Beagle Bone Black con un script en C.
-
- ![](leds.png)
-
- Se comienza por importar librerías y declarar el path a seguir para
- manipular el LED 3.
- ```C
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- #include<time.h>
- #define LED3_PATH "/sys/class/leds/beaglebone:green:usr3"
- ```
- Se deben definir los path de los registros a manipular.
- ```C
- #define bled "/brightness"
- #define tled "/trigger"
- #define en "/delay_on"
- #define ap "/delay_off"
- ```
-
-
- Se generan los prototipos.
- ```C
- //Protypes:
- void writeLED(char fileName[], char value[]);
- void removeTrigger();
- ```
- Se inicia el main, donde se indica cuando comienza la aplicación,
- asimismo, se hace una comparación de los argumentos de entrada para
- determinar si se enciende, se apaga o parpadea el LED. Para el parpadeo se utilizaron
- los registros de timer, delay_on y delay_off.
-
- ```C
- int main(int argc, char* argv[]){
- printf("Starting app\n");
- if(strcmp(argv[1],"on")==0){
- printf("encendiendo LED\n");
- removeTrigger();
- writeLED(bled,"1");
- }
- else if(strcmp(argv[1], "off")==0){
- printf("apagando LED\n");
- removeTrigger();
- writeLED(bled,"0");
- }
- else if(strcmp(argv[1],"blink")==0){
- printf("blink\n");
- writeLED(tled,"timer");
- writeLED("en","50");
- writeLED("ap","50");
- }
-
- else{
- printf("comando invalido");
- }
- printf("programa finalizado");
- return 0;
- }
- ```
- La función que se utilizó para poder escribir a los registros del LED es la siguiente.
-
-
- ```C
- void writeLED(char fileName[], char value[]){
- FILE* fp;
- char fullName[150];
- sprintf(fullName, LED3_PATH "%s", fileName);
- fp = fopen(fullName, "w+");
- fprintf(fp, "%s", value);
- fclose(fp);
- }
- ```
-
- También fue necesario hacer una función para poder remover el trigger, la función es la siguiente.
-
- ```C
- void removeTrigger(){
- writeLED(tled, "none");
- }
-
- ```
- Después de esto se guarda el archivo y se le dan permisos de ejecución con el comando:
-
- ```sh
- sudo chmod u+x Nombre_del_archivo.c
- ```
-
- Teniendo esto es necesario compilar el archivo.
- ```sh
- gcc Nombre_del_archivo.c -o Nombre_del_archivo2
- ```
- Finalmente para ejecutar el archivo en la Beagle Bone se utiliza el siguiente comando, en este ejemplo se le da el argumento para que el LED prenda y apague:
-
- ```sh
- sudo ./Nombre_del_archivo.c blink
- ```
|