Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
/*Escribir una función que sea llamada desde el bucle principal y se ocupe de encender la luz de un pasillo durante un cierto tiempo cada vez que se presione un botón. Cada vez que el botón sea presionado, se deberá reiniciar el contador de tiempo. Incorporar el led de testeo que indica que el programa está corriendo.*/ #define PIN_LED 13 #define CONFIGURAR_LED pinMode(PIN_LED, OUTPUT) #define ENCENDER_LED digitalWrite(PIN_LED, HIGH) #define APAGAR_LED digitalWrite(PIN_LED, LOW) #define PIN_LUZ 11 #define CONFIGURAR_LUZ pinMode(PIN_LUZ, OUTPUT) #define ENCENDER_LUZ digitalWrite(PIN_LUZ, HIGH) #define APAGAR_LUZ digitalWrite(PIN_LUZ, LOW) #define PIN_BOT 7 #define CONFIGURAR_BOT pinMode(PIN_BOT, INPUT) #define BOT_PRESIONADO (digitalRead(PIN_BOT)==HIGH) #define MS_ENCENDIDA 2000 void setup() { CONFIGURAR_LED; CONFIGURAR_BOT; CONFIGURAR_LUZ; } void loop() { LuzPasillo(); LedTest(); } bool SePresionoBoton(void) { static bool bot_presionado_ant=0; if(BOT_PRESIONADO == bot_presionado_ant) return(false); bot_presionado_ant=BOT_PRESIONADO; return(BOT_PRESIONADO); // if(BOT_PRESIONADO) return(true); // return(false); } void LuzPasillo(void) { static unsigned long millis_ini =0; if(SePresionoBoton()) { ENCENDER_LUZ; millis_ini=millis(); } //Filtro de tiempo if(millis() - millis_ini < MS_ENCENDIDA) return ; APAGAR_LUZ; } void LedTest(void) { static bool encender_led=0; static unsigned long millis_ant=0; if(millis()-millis_ant < 1000) return; millis_ant=millis(); //Invertir el estado del led encender_led = !encender_led; if(encender_led) ENCENDER_LED; else APAGAR_LED; }
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)