Ir al contenido principal

Mini Proyecto: Controlando Luces con Arduino

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

Entradas populares de este blog

EN SERIE Y EN PARALELO

UNIDAD EDUCATIVA PARTICULAR “POLITÉCNICO” SEGUNDO AÑO DE BACHILLERATO – CAMBRIDGE EN SERIE Y EN PARALELO Nombre:  MAYO PEÑA LAURA                                          Fecha:  15/05/19 En la actividad de hoy se utilizó la herramienta TINKERCAD para realizar dos practicas, una conexión con leds en serie y otra en paralelo.  Para el circuito en serie se utilizó lo siguiente:  PROTOBOARD BATERÍA  9V VARIOS LEDS 1 RESISTENCIA DE 220 OHMIOS (ROJO ROJO CAFÉ ) Primero inserté la protoboard, luego la conecté con dos cables a los puntos positivos y negativos. Luego conecté la resistencia de 220 ohmios y también un cable desde esta hasta el positivo (rojo). Comencé a conectar el primer led con la resistencia con el ánodo o positivo del led, así mismo conectaba el cátodo o negativo con la parte negativa de la batería, y observé que se prendió, lo mismo pasó con el segundo led hasta el numero 7. Aquí se observa el primer led conectado y prendido: A continuac

Prototipo: Simon Dice

UNIDAD EDUCATIVA PARTICULAR “POLITÉCNICO” SEGUNDO AÑO DE BACHILLERATO – CAMBRIDGE PRÁCTICA:  Prototipo: Simon Dice           Integrantes:  MAYO PEÑA LAURA   Y CORTEZ EMILY                              Fecha: 15 /08/19 MATERIALES DE TRABAJO: 1 PROTOBOARD 1 ARDUINO 1 POTENCIÓMETRO 1K O 10K OHMIOS 1 DISPLAY LCD 4 PULSADORES 4 LEDS DIFERENTE COLOR 5 RESISTENCIAS 220 (rojo rojo café) O 330 OHMIOS 4 RESISTENCIAS 1K OHMIO (café negro rojo) CABLES MACHO - MACHO Y MACHO -HEMBRA PROCEDIMIENTO:  1.  Lo primero que hicimos para efectuar la conexión fue descargar y observar el ejemplo que nos proporcionó el profesor en TinkerCad. Ya con este ejemplo y los materiales listos para el proyecto pudimos comenzar a conectar los componentes.  2. Hicimos la conexión de todo el lado izquierdo del trabajo, es decir: los dos primeros leds (rojo y azul), las conexiones a tierra en negativo y 5V en positivo con el arduino desde la protoboard, los 4 pulsadores con sus debidas re

PRÁCTICA: MENSAJES POR DISPLAY LCD

UNIDAD EDUCATIVA PARTICULAR “POLITÉCNICO” SEGUNDO AÑO DE BACHILLERATO – CAMBRIDGE PRÁCTICA: MENSAJES POR DISPLAY LCD           Integrantes:  MAYO PEÑA LAURA                                 Fecha: 08 /08/19 MATERIALES DE TRABAJO: 1 PROTOBOARD 1 DISPLAY LCD 1 ARDUINO 1 POTENCIÓMETRO 1 RESISTENCIA 220 (ROJO ROJO CAFÉ) CABLES MACHO - MACHO O MACHO - HEMBRA En esta práctica realicé una conexión con el Display LCD junto al Arduino UNO con el fin de mostrar ciertos mensajes realizados en la programación que nos proporcionó el profesor, y así comprobar el correcto funcionamiento del LCD, sus funciones y la correcta conexión del mismo. Es importante lo nuevo aprendido, pues no sabía que para el LED que contiene el LCD era necesario colocar una resistencia, lo cual es obvio pues si no el mismo LED se quema, pues debe existir un equilibrio o una protección que la proporciona la resistencia. También me ayudó a recordar que las conexiones necesitan puentes con cables para