PRÁCTICAS ARDUINO SENSORES
- Ramón Arjona Quiñones - José Manuel Benítez Monge - Ángela López Carballo
Índice (práctica 3 ) 1. Finalidad 2. Hardware 3. Software 4. Funcionamiento 5. Valoración personal y aportación individual
(El apartado “Comandos” no está porque no hemos usado ninguno nuevo)
1. FINALIDAD La finalidad de este circuito realizado con el software y el hardware de Arduino es crear un sensor de luz que encienda tres leds dependiendo de la luz del ambiente. Si no hay apenas luz, los tres permanecerán apagados, y a medida que aumente, los tres se irán encendiendo. En el caso de que haya mucha luz, los leds se pondrán a parpadear. Esto se consigue haciendo intervalos de valores, basándose en los de la LDR. Los 3 leds van cada uno a un digital (10, 11 y 12) con su resistencia de 220Ω cada uno, y la LDR al Analógico 0 con su resistencia de 10kΩ. El esquema de entradas y salidas es:
Y el
cronograma:
2. HARDWARE + Lista de materiales: - Arduino Uno - Protoboard - Cables - Leds rojo, verde y blanco. - Resistencias :220Ω (x3), 10kΩ - LDR
+ Esquema del circuito:
3. SOFTWARE Esta es la programación en Arduino: /* Sensor de luz Enciende los leds en función de la luz que haya. */ //Leds conectados al digital 10,11 y 12. LDR conectada al Analógico 0. int ledrojo = 10; int ledverde = 11; int ledblanco= 12; int valLDR= 0; // Las instrucciones se ejecutan una vez al inicio del programa: void setup() { // Establece los tres leds como salidas (la LDR no hace falta) pinMode(ledrojo, OUTPUT); pinMode(ledverde, OUTPUT); pinMode(ledblanco, OUTPUT); } // El programa se repite una y otra vez hasta el infinito: void loop() { valLDR = analogRead(A0); //valLDR registra el valor de la LDR if (valLDR<450){ //Si es menor que 450, digitalWrite(ledrojo, LOW); // Todos los leds se apagan. digitalWrite(ledverde, LOW); digitalWrite(ledblanco, LOW); } else{ //Si no, if (valLDR<650){ //Si el valor es mayor que 650, digitalWrite(ledrojo, HIGH); //Se enciende el led rojo digitalWrite(ledverde, LOW); digitalWrite(ledblanco, LOW);
} if (valLDR<750 && valLDR>650){ //Si está entre 750 y 650, digitalWrite(ledrojo, HIGH); //Se encienden los leds rojo y verde. digitalWrite(ledverde, HIGH); digitalWrite(ledblanco, LOW); } if (valLDR<850 && valLDR>750){ //Si está entre 750 y 850, digitalWrite(ledrojo, HIGH); //Se encienden los tres leds. digitalWrite(ledverde, HIGH); digitalWrite(ledblanco, HIGH); } if (valLDR>850){ //Si es mayor que 850 (máximo de luz), digitalWrite(ledrojo, HIGH); //Los 3 leds parpadean uno detrás de otro con una... delay(150); // ...frecuencia de 150ms. digitalWrite(ledrojo, LOW); digitalWrite(ledverde, HIGH); delay(150); digitalWrite(ledverde, LOW); digitalWrite(ledblanco, HIGH); delay(150); digitalWrite(ledblanco, LOW); } } }
Y este el diagrama de flujo con S4A:
4. FUNCIONAMIENTO - Vídeo del funcionamiento:
http://www.youtube.com/watch?v=eMhde5xjp10 - Imagen del circuito:
5.VALORACIÓN Y APORTACIÓN INDIVIDUAL + Creemos que estas prácticas son más divertidas y entretenidas que las de los otros bloques, aunque tengan un mayor nivel de complejidad. - Solo nos ha dado tiempo a hacer dos prácticas del tercer bloque esta semana, ya que hemos hecho el examen de Arduino, lo hemos corregido y además un componente del grupo ha faltado un día.