Menú
Foros
Nuevos mensajes
Buscar en foros
Novedades
Nuevos mensajes
Nuevos recursos
Última actividad
Recursos
Últimas revisiones
Buscar recursos
Acceder
Registrarse
Novedades
Buscar
Buscar
Buscar sólo en títulos
De:
Nuevos mensajes
Buscar en foros
Menú
Acceder
Registrarse
Install the app
Instalar
Foros
Diseño digital
Microcontroladores y sistemas embebidos
Arduino y Raspberry Pi
Tutorial y proyectos con Arduino
JavaScript está desactivado. Para una mejor experiencia, por favor, activa JavaScript en el navegador antes de continuar.
Estás usando un navegador obsoleto. No se pueden mostrar este u otros sitios web correctamente.
Se debe actualizar o usar un
navegador alternativo
.
Responder al tema
Mensaje
[QUOTE="mecatrodatos, post: 1079011, member: 13417"] [B]Uso de Arduino [/B] [B]Problema:[/B] ¿Quieres empezar con un proyecto que es fácil de construir y divertido de usar. [B]Solución:[/B] Este proyecto ofrece una muestra de algunas de las técnicas que se tratan en detalle en las secciones del tutorial. El circuito se basa en el código intermitente LED de la anterior entrada, pero en vez de estar utilizando un retardo fijo, la tasa se determina por un sensor sensible a la luz llamado LDR . [code]const int ledPin = 13; // Asigna LED a pin digital 13 const int sensorPin = 0; // connectar sensor a entrada analogico pin 0 void setup() { pinMode(ledPin, OUTPUT); // Habilitar salida pin LED } void loop() { int rate = analogRead(sensorPin); // leer entrada analogica digitalWrite(ledPin, HIGH); // LED on delay(rate); // Esperar duración dependiendo del nivel de luz digitalWrite(ledPin, LOW); // LED off delay(rate); }[/code] [B]Explicación: [/B] El valor de la resistencia de 4.7K no es crítico. Cualquier desde 1K a 10K puede ser utilizada. El nivel de luz en la LDR cambiará el nivel de tensión en el pin analógico 0. El comando analogRead proporciona un valor que oscila entre alrededor de 200, cuando el LDR es oscuro a 800 o así que cuando es muy brillante. Este valor determina la duración de la LED de encendido y apagado, por lo que el tiempo de parpadeo aumenta con la intensidad de la luz. Puede escalar la velocidad de parpadeo mediante la función de Map de Arduino de la siguiente manera: [code] const int ledPin = 13; // conectar LED em pin digital numero 13 const int sensorPin = 0; // conectar sensor a entrada analogica numero 0 // las dos líneas siguientes establecen el mínimo y el retardo máximo entre parpadeos const int minDuration = 100; //espera mínimo entre parpadeos const int maxDuration = 1000; // espera maxima entre parpadeos void setup() { pinMode(ledPin, OUTPUT); // Habilitar pin led como entrada } void loop() { int rate = analogRead(sensorPin); // Leer entrada analogica // la línea siguiente escala la frecuencia de parpadeo entre los valores mínimos y máximos rate = map(rate, 200,800,minDuration, maxDuration); // convertir tasa de parpadeo rate = constrain(rate, minDuration,maxDuration); // limitar el valor digitalWrite(ledPin, HIGH); // establecer el LED en ON delay(rate); // espere duración depende del nivel de luz digitalWrite(ledPin, LOW); // establecer el LED en OFF delay(rate); }[/code] [B]La función delay()[/B] es un comando de retardo, que no hace otra cosa que incrementar milisegundos que asignamos entre los paréntesis. En los ejercicios anteriores vimos el ejemplo más sencillo que se encuentra en la carpeta de Arduino en la sección de ejemplos, que consiste que un LED prenda y apague en los intervalos de tiempo con la función delay(). En la función de retardo, Arduino lo que hace es contar los milisegundos. En un proyecto sencillo como el del ejercicio de apertura de este tutorial no hay problema en tener al microcontrolador ocupado en la tarea de contar milisegundos, pero en desarrollos complejos no es permitido, ya nuestro Arduino tiene que ocuparse de otras tareas. Por esta razón podemos recurrir a otra función millis() de Arduino para controlar el tiempo que está encendido el LED mientras el microcontrolador queda libre para hacer otras cosas. En otros entornos de programación hay otras alternativas aplicables a nuestros criterios y necesidades. [/QUOTE]
Verificación
Responder
Foros
Diseño digital
Microcontroladores y sistemas embebidos
Arduino y Raspberry Pi
Tutorial y proyectos con Arduino
Arriba