From da50ef92c8019271bc7a05f9df32ea6834e9d809 Mon Sep 17 00:00:00 2001 From: dllamas Date: Fri, 13 May 2022 18:03:19 +0000 Subject: [PATCH] Subir archivos a '' --- Readme.md | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 Readme.md diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..7d5d3d7 --- /dev/null +++ b/Readme.md @@ -0,0 +1,93 @@ +#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. + +Se comienza por importat librerías y declarar el path a seguir para +manipular el LED 3. +```C +#include +#include +#include +#include +#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 +``` +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 +```