Descripción
En este laboratorio vamos a leer datos de 2 potenciómetros. Estos datos los usaremos como tiempo de encendido y el tiempo de apagado para una secuencia de 8 LEDs, que se moverá de izquierda a derecha, y viceversa.
Materiales
- Computador (con el IDE de Arduino, y el driver adecuado instalados)
- Tarjeta Arduino (cualquier modelo, debe corresponder al driver instalado)
- Cable USB (según el conector de la tarjeta Arduino)
- Protoboard
- 8 LEDs + Resistencias 220Ω
- 2 Potenciómetro 10KΩ
- Cables macho-macho
DIAGRAMAS
PROTOBOARD
CÓDIGO
- /********** Proyecto **********
- * Laboratorio 02: 8 LEDs en linea controlados con Potenciometros
- * Autor: Kevin Quintero Ramirez
- * Descripcion:
- * Mover un LED encendido de Izquierda a Derecha y viceversa
- * con tiempos controlados por potenciometros
- * Conexiones:
- * 8 LEDs + resistencias a los pines D2 .. D9
- * 2 Potenciometros a los pines A0 y A1
- * Version: 1
- */
- /********** Librerias **********/
- // ninguna
- /********** Constantes **********/
- #define POT1 A0
- #define POT2 A1
- #define TOTLED 8 // Total LEDs
- /********** Objetos **********/
- // ninguno
- /********** Variables **********/
- int led[TOTLED] = {
- 2, 3, 4, 5, 6, 7, 8, 9};
- /********** Configuracion **********/
- void setup() {
- int pos=0;
- while (pos < TOTLED){
- pinMode(led[pos], OUTPUT);
- pos=pos+1;
- }
- pinMode(POT1, INPUT);
- pinMode(POT2, INPUT);
- } // end setup()
- /********** Ciclo Principal **********/
- void loop() {
- // Sensores
- int t_encendido = analogRead(POT1);
- int t_apagado = analogRead(POT2);
- // Acciones
- for (int pos = 0; pos < TOTLED; pos++) {
- on(led[pos], t_encendido);
- off(led[pos], t_apagado);
- }
- for (int pos = TOTLED-2; pos > 0; pos--) {
- on(led[pos], t_encendido);
- off(led[pos], t_apagado);
- }
- } // end loop()
- /********** Funciones **********/
- // Pone en +5V el pin indicado, durante tantos milisegundos
- void on(int pin, int ms){
- digitalWrite(pin, HIGH);
- delay(ms);
- } // end on()
- // Pone en GND el pin indicado, durante tantos milisegundos
- void off(int pin, int ms){
- digitalWrite(pin, LOW);
- delay(ms);
- } // end off()
- /********** Fin ***********/
No hay comentarios.:
Publicar un comentario