UNIDAD EDUCATIVA PARTICULAR “POLITÉCNICO”
SEGUNDO AÑO DE BACHILLERATO – CAMBRIDGE
Mini Proyecto: Controlando Luces con Arduino
Integrantes: MAYO PEÑA LAURA y CORTEZ OLAYA EMILY
Fecha: 27/06/19
MATERIALES DE TRABAJO:
- 1 PROTOBOARD
- 1 ARDUINO
- 1 POTENCIÓMETRO
- 1 FOTO RESISTOR
- 2 PULSADORES
- 8 LEDS
- 8 RESISTENCIA 220 O 330 OHMIOS
- CABLES MACHO - MACHO
Procedimiento:
- Se debe conectar con la ayuda de un cable macho-macho el pin 5V del Arduino a la parte positiva del protoboard, y así mismo hay que conectar el pin GND a la conexión negativa del protoboard
- Se debe realizar la conexión de los diodos Leds en protoboard. Estos diodos fueron conectados en paralelo (Es decir que cada LED es individual del otro), el cátodo va conectado a donde está conectado el GND para recibir corriente negativa, mientras que el ánodo se lo conecta a una resistencia (para que no se queme el LED) y luego se hace la conexión al pin del Arduino que se desea usar. Esto se repitió con cada LED puesto que van el paralelo.
- El potenciómetro, las dos patas laterales de este van conectadas a donde está conectado 5V y GND, mientras que la pata del medio va conectada al puerto analógico del Arduino, al realizar esta conexión se está conectando una tensión variable de 0 a 5 V a la entrada analógica del Arduino que se puede graduar moviendo la perilla del potenciómetro.
- Para conectar el Fotoresistor había que conectar sus dos patas directamente al protoboard, y después con la ayuda de los cables jumper macho-macho se realizaba una extensión para que una pata quede conectada a una resistencia que iba conecta al punto 5V, mientras que la otra pata era conectada a otro puerto analógico del Arduino.
- Una vez realizadas las conexiones se procede a realizar el código.
- Primero se deben declarar las variables que en este caso serían los diodos LEDS, el potenciómetro y el valor del potenciómetro.
- Realizado el paso anterior se debe en el setup declarar si las variables son de entrada o salida, es decir OUTPUT o INPUT.
- Luego se procede en el loop a declarar que la lectura analógica que va a realizar el Arduino es igual al valor del potenciómetro declarado anteriormente.
- Por último, se realiza un digitalWrite, para prender y apagar los diodos LEDS a gusto y repetir el proceso después de un tiempo que será dado por el valor del potenciómetro.
En este video se puede observar como encienden los leds a medida que se va manipulando el eje del potenciómetro y los leds prenden con mayor o menor velocidad, en dependencia de lo programado.
Evidencia del trabajo final con la conexión funcionando, los 8 leds están prendidos y codificados en dependencia de sus conexiones a los pines digitales de Arduino y de esta manera, con la ayuda del potenciómetro, encenderán de manera fija, como se observa en la imagen, o parpadeando.
Leds parpadeando, a medida que se rota el eje del potenciómetro y se "sube"por este, los leds aumentan su velocidad de parpadeo, es decir, encienden por menor tiempo con mayor velocidad.
Programación:
//Variables Globales //Variables de referencia para los leds int led1 = 1; int led2 = 2; int led3 = 3; int led4 = 4;int led5 = 5; int led6 = 6; int led7 = 7; int led8 = 8;
//Variable de referencia del potenciómetro
int potenciometro = A0;
//Variable donde se almacenará lo que ingrese del potenciómetro
int valorPotenciometro;
void setup() {
// todos los pines de los leds deben ser salida
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(led7, OUTPUT);
pinMode(led8, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
// Leo el puerto A0 (analógico) para saber cuanto ha cambiado
valorPotenciometro = analogRead(potenciometro);
// prendo los leds o alguna otra secuencia
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led7, HIGH);
digitalWrite(led8, HIGH);
// espero un tiempo y dependerá del valor del potenciómetro
delay(valorPotenciometro);
// apago los leds o alguna otra secuencia
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
digitalWrite(led8, LOW);
// espero un tiempo y dependerá del valor del potenciómetro
delay(valorPotenciometro);
}
PROGRAMACION DEL PROYECTO TERMINADO CON 3 PULSADORES Y 10 LEDS
Al circuito anterior se añadieron 3 leds mas como examen sumativo, y una secuencia de 3 pulsadores. Se decició no incluir la fotocelda porque no daba tiempo programarla ni ejecutarla.
Primero el pulsador es conectado en el protoboard, un extremo va al polo positivo (5V en Arduino); al polo negativo (GND) y el último va conectado al Arduino (En un pin digital).
Como son 3 pulsadores hay que repetir este proceso con los dos restantes. Una vez conectados al Arduino obtenemos lo siguiente:
Pulsador 1 conectado
en el pin digital 11.
Pulsador 2 conectado
en el pin digital 12.
Pulsador 3 conectado
en el pin digital 13.
Una vez realizada la conexión de esos 3 pulsadores hay que enfocarse en la programación de los mismos, cada pulsador va a provocar una secuencia diferente en los diodos LED (cabe mencionar que los pulsadores son programados como entradas). En la primera secuencia que se va a realizar se va a usar el pulsador 1 (pin 11) lo que se programa es que cuando se presione el pulsador este va a provocar que todos los diodos LEDS se enciendan por un periodo de tiempo (dictaminado por el valor del potenciómetro) y luego se apaguen. La secuencia dos usa el pulsador 2 (pin 12) y lo que hace es que una vez presionado el pulsador se prenda un primer LED, se quede encendido por el tiempo dado por el valor del potenciómetro, se apague y que ahí se encienda un segundo LED realizando el mismo proceso que hizo el primero, y así sucesivamente se encenderán todos. Básicamente se enciende un Led cierto tiempo ahí se apaga y se enciende el segundo. La última secuencia usa el pulsador 3 (pin 13) y su función es que una vez pulsada la botonera realice como un barrido del tipo escalera donde se enciende un diodo Led y después un tiempo (dado por el potenciómetro) se encienda otro diodo sin que el anterior se apague y así sucesivamente con el fin de que se observe el barrido de tipo escalera. Al final, se programó para que se apaguen todos los leds luego de un delay de 1 segundo (1000) y así termine la secuencia.
EVIDENCIAS:
PROGRAMACIÓN FINAL EN ARDUINO:
//variables globales
int led1 = 1; //Leds
int led2 = 2;
int led3 = 3;
int led4 = 4;
int led5 = 5;
int led6 = 6;
int led7 = 7;
int led8 = 8;
int led9 = 9;
int led10 = 10;
//Pines Digitales
int pulsador1 = 11; //Pulsadores
int pulsador2 = 12;
int pulsador3 = 13;
int potenciometro = A0; //Pines Analógicos
int valorPotenciometro;
int valorPulsador1;
int valorPulsador2;
int valorPulsador3;
void setup() {
pinMode(led1, OUTPUT); //pongo los leds como salidas
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(led7, OUTPUT);
pinMode(led8, OUTPUT);
pinMode(led9, OUTPUT);
pinMode(led10, OUTPUT);
Serial.begin(9600),
pinMode(pulsador1, INPUT); //pongo los pulsadores como entradas
pinMode(pulsador2, INPUT);
pinMode(pulsador3, INPUT);
}
void loop() {
//revisando el valor de las entradas en monitor serie
Serial.print("Val.Pot");
Serial.print(" ");
valorPotenciometro = analogRead(potenciometro);
Serial.print(valorPotenciometro);
Serial.print(" ");
Serial.print("Val.P1");
Serial.print(" ");
valorPulsador1 = digitalRead(pulsador1);
Serial.print(valorPulsador1);
Serial.print(" ");
Serial.print("Val.P2");
Serial.print(" ");
valorPulsador2 = digitalRead(pulsador2);
Serial.print(valorPulsador2);
Serial.print(" ");
Serial.print("Val.P3");
Serial.print(" ");
valorPulsador3 = digitalRead(pulsador3);
Serial.println(valorPulsador3);
if(valorPulsador1 == HIGH){ //secuencia 1
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led7, HIGH);
digitalWrite(led8, HIGH);
digitalWrite(led9, HIGH);
digitalWrite(led10, HIGH);
delay(valorPotenciometro * 2);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
digitalWrite(led8, LOW);
digitalWrite(led9, LOW);
digitalWrite(led10, LOW);
}
if(valorPulsador2 == HIGH){ //secuencia 2
digitalWrite(led1, HIGH);
delay(valorPotenciometro * 2);
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
delay(valorPotenciometro * 2);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
delay(valorPotenciometro * 2);
digitalWrite(led3, LOW);
digitalWrite(led4, HIGH);
delay(valorPotenciometro * 2);
digitalWrite(led4, LOW);
digitalWrite(led5, HIGH);
delay(valorPotenciometro * 2);
digitalWrite(led5, LOW);
digitalWrite(led6, HIGH);
delay(valorPotenciometro * 2);
digitalWrite(led6, LOW);
digitalWrite(led7, HIGH);
delay(valorPotenciometro * 2);
digitalWrite(led7, LOW);
digitalWrite(led8, HIGH);
delay(valorPotenciometro * 2);
digitalWrite(led8, LOW);
digitalWrite(led9, HIGH);
delay(valorPotenciometro * 2);
digitalWrite(led9, LOW);
digitalWrite(led10, HIGH);
delay(valorPotenciometro * 2);
digitalWrite(led10, LOW);
}
if(valorPulsador3 == HIGH){ //secuencia 3
digitalWrite(led1, HIGH);
delay(valorPotenciometro * 2);
digitalWrite(led2, HIGH);
delay(valorPotenciometro * 2);
digitalWrite(led3, HIGH);
delay(valorPotenciometro * 2);
digitalWrite(led4, HIGH);
delay(valorPotenciometro * 2);
digitalWrite(led5, HIGH);
delay(valorPotenciometro * 2);
digitalWrite(led6, HIGH);
delay(valorPotenciometro * 2);
digitalWrite(led7, HIGH);
delay(valorPotenciometro * 2);
digitalWrite(led8, HIGH);
delay(valorPotenciometro * 2);
digitalWrite(led9, HIGH);
delay(valorPotenciometro * 2);
digitalWrite(led10, HIGH);
delay(valorPotenciometro * 2);
delay(1000);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
digitalWrite(led8, LOW);
digitalWrite(led9, LOW);
digitalWrite(led10, LOW);
}
}
Conclusiones:
En esta clase aprendí que las conexiones, por muy largas que se vean y casi imposibles de conectar tantos cables, valen la pena porque se pueden crear cosas muy útiles con ellas. Me resultó dificil en esta conexión guiarme de la imagen y ver el circuito en persona sin perderme, pues habían muchos componentes que conectar y gracias a la ayuda de mi compañera, pudimos veriificar que todo estuviera bien conectado. Intenté ir analizando a donde estaba conectando los leds y por qué se ponían en los pines digitales, cual cable iba de GND a la protoboard y tuve que volver a hacer esta conexión porque había puesto el cable en el positivo del protoboard cuando es en el negativo. El potenciómetro es una resistencia variable conformado por 2 resistencias en serie, las
cuales poseen valores que pueden ser modificados por el usuario, limita el paso
de la corriente eléctrica (Intensidad) provocando una caída de tensión en ellos
al igual que en una resistencia. Si el potenciómetro lo ponemos a 0 de
resistencia la tensión del Led será la máxima que pueda tener (2V). Si aumentamos la resistencia del potenciómetro
el Led estará a menos tensión y lucirá menos. A más resistencia del
potenciómetro menos tensión en el Led. El pulsador sirve para activar o desactivar parte del código en Arduino o comportamiento del
circuito, para controlar un LED, un motor o cualquier otro elemento al pulsar
el interruptor se cierra el circuito y dejamos pasar la corriente. Es un operador eléctrico que, cuando se oprime, permite el paso de la corriente eléctrica y, cuando se deja de oprimir, lo interrumpe. El fotoresistor sirve para controlar el encendido-apagado de una lámpara o
de producir el voltaje suficiente para recargar una batería o cualquier otra
aplicación en que se requiera una fuente de voltaje. Una fotocelda es una resistencia, cuyo valor en ohmios, varía ante las
variaciones de la luz. Están construidas con un material sensible a la
luz, de tal manera que cuando la luz incide sobre su superficie, el material
sufre una reacción química, alterando su resistencia eléctrica. El arduino UNO es una plataforma de hardware libre, basada en
una placa con un microcontrolador y un entorno de desarrollo, diseñada para
facilitar el uso de la electrónica en proyectos multidisciplinares. Es muy popular entre personas que acaban de
empezar con la electrónica, por una buena razón, a diferencia de la mayoría de
las tarjetas de circuitos programables, el Arduino no necesita una pieza separada
de hardware (llamado un programador) para cargar nuevo código al
microcontrolador, simplemente se usa un cable USB.
Comentarios
Publicar un comentario