Como una vez que se comienza no se puede parar de jugar con el Arduino, aquí dejo el segundo ejemplo, el uso de un potenciómetro para regular en encendido de 6 leds.
Jugamos además con las comunicaciones por el puerto serie con el PC para monitorizar el valor del potenciómetro.
El montaje es:
El 'plano' del circuito es:
El código es:
/*
SEGUNDO EJERCICIO 2015-02-25
Finalidad. Se trata de encender hasta seis led en funcion de la
resistencia de cierto potenciomentro. A mayor resistencia mas
led encendidos.
*/
//Colocamos los Led en las salidas 8-13
const int LEDPIN08 = 8;
const int LEDPIN09 = 9;
const int LEDPIN10 = 10;
const int LEDPIN11 = 11;
const int LEDPIN12 = 12;
const int LEDPIN13 = 13;
// Lectura del potenciomentro
int pot;
//Numero de leds activos
int numleds=0;
void setup(){
//Iniciamos las salidas digitales
pinMode(LEDPIN08,OUTPUT);
pinMode(LEDPIN09,OUTPUT);
pinMode(LEDPIN10,OUTPUT);
pinMode(LEDPIN11,OUTPUT);
pinMode(LEDPIN12,OUTPUT);
pinMode(LEDPIN13,OUTPUT);
//Iniciamos comunicacion con puerto serie del PC
//para monitorizar la resistencia del potenciometro
Serial.begin(9600);
}
void loop(){
//Leemos el valor del potenciometro
pot = analogRead(0);
//Mapeamos el nmero de leds activos
numleds = map(pot, 0, 1023, 0, 6);
//Mostramos por consola los valores: potenciometro - numleds
Serial.print(pot);
Serial.print("-");
Serial.print(numleds);
Serial.print("\n");
//Encendemos el numero de leds adecuado
switch (numleds) {
case 0:
digitalWrite(LEDPIN08,LOW);
digitalWrite(LEDPIN09,LOW);
digitalWrite(LEDPIN10,LOW);
digitalWrite(LEDPIN11,LOW);
digitalWrite(LEDPIN12,LOW);
digitalWrite(LEDPIN13,LOW);
break;
case 1:
digitalWrite(LEDPIN08,HIGH);
digitalWrite(LEDPIN09,LOW);
digitalWrite(LEDPIN10,LOW);
digitalWrite(LEDPIN11,LOW);
digitalWrite(LEDPIN12,LOW);
digitalWrite(LEDPIN13,LOW);
break;
case 2:
digitalWrite(LEDPIN08,HIGH);
digitalWrite(LEDPIN09,HIGH);
digitalWrite(LEDPIN10,LOW);
digitalWrite(LEDPIN11,LOW);
digitalWrite(LEDPIN12,LOW);
digitalWrite(LEDPIN13,LOW);
break;
case 3:
digitalWrite(LEDPIN08,HIGH);
digitalWrite(LEDPIN09,HIGH);
digitalWrite(LEDPIN10,HIGH);
digitalWrite(LEDPIN11,LOW);
digitalWrite(LEDPIN12,LOW);
digitalWrite(LEDPIN13,LOW);
break;
case 4:
digitalWrite(LEDPIN08,HIGH);
digitalWrite(LEDPIN09,HIGH);
digitalWrite(LEDPIN10,HIGH);
digitalWrite(LEDPIN11,HIGH);
digitalWrite(LEDPIN12,LOW);
digitalWrite(LEDPIN13,LOW);
break;
case 5:
digitalWrite(LEDPIN08,HIGH);
digitalWrite(LEDPIN09,HIGH);
digitalWrite(LEDPIN10,HIGH);
digitalWrite(LEDPIN11,HIGH);
digitalWrite(LEDPIN12,HIGH);
digitalWrite(LEDPIN13,LOW);
break;
default: //los seis leds
digitalWrite(LEDPIN08,HIGH);
digitalWrite(LEDPIN09,HIGH);
digitalWrite(LEDPIN10,HIGH);
digitalWrite(LEDPIN11,HIGH);
digitalWrite(LEDPIN12,HIGH);
digitalWrite(LEDPIN13,HIGH);
}
}
Y un video donde se puede ver funcionando:
Un saludo
No hay comentarios:
Publicar un comentario