PRÁCTICA #5/CIRCUITO CON LEDS PRENDIDOS EN SECUENCIA + POTENCIÓMETRO Y ARDUINO + REGULANDO VELOCIDAD + PULSADOR


UNIDAD EDUCATIVA PARTICULAR POLITÉCNICO COPOL
SEGUNDO DE BACHILLERATO "A" OXFORD/ÁREA DE INFORMÁTICA
INTEGRANTES: ALEX TAPIA-NATHAEL CUEVA/PROFESOR: ENRIQUE GUEVARA
ACTIVIDAD EN PAREJAS/ANÁLISIS DE CIRCUITOS ELECTRÓNICOS
PRÁCTICA #5

MINI-PROYECTO 
"CONTROLANDO LUCES CON ARDUINO"


MATERIALES DE TRABAJO:
  • 1 PROTOBOARD
  • 1 ARDUINO
  • 1 POTENCIÓMETRO
  • 1 FOTO RESISTOR
  • 2 PULSADORES
  • 8 LEDS
  • 11 RESISTENCIA 220 O 330 OHMIOS
  • CABLES MACHO - MACHO
PROCEDIMIENTO/IMÁGENES DE EVIDENCIA


POSICIONAMIENTO DE LEDS Y RESISTENCIAS EN SUS PATAS POSTITIVAS




POSICIONAMIENTO DE PULSADORES, FOTOCELDA Y POTENCIÓMETRO



CONEXIÓN DE RESISTENCIAS A LOS PINES (1-8) DEL ARDUINO



CONEXIÓN DE PATAS NEGATIVAS DE LEDS A TERMINAL NEGATIVA DE PROTOBOARD



CONEXIÓN DE PULSADORES, FOTOCELDA Y POTENCIÓMETRO AL ARDUINO



CONEXIÓN DE PUENTES NECESARIOS PARA CORRECTO FLUJO DE ENERGÍA



POSICIONAMIENTO DE PROTOBOARD EN PLACA DE METAL PARA MEJOR COMODIDAD



CONEXIÓN DE TERMINALES POSITIVAS Y NEGATIVAS DE PROTOBOARD AL ARDUINO




CONEXIÓN DE CIRCUITO TERMINADO A LA PC


INICIO DE PROGRAMACIÓN -CONTROL DE LEDS + POTENCIÓMETRO-


PROGRAMACIÓN EFECTIVA/LEDS CORRECTAMENTE ENCENDIDOS


VERIFICACIÓN DE CONEXIONES


CAMBIO DE INTENSIDAD DE DE PARPADEO DE LEDS EFICIENTE



INICIO DE PROGRAMACIÓN -CONTROL DE LEDS + PULSADOR + POTENCIÓMETRO + FOTOCELDA-



CAMBIO DE SECUENCIA DE ENCENDIDO DE LEDS EFICIENTE




PROCEDIMIENTO
Se procedió a conectar primero los 8 LEDS dejando tres espacios (orificios del protoboard) entre ellos. Luego se posicionó el potenciómetro en la esquina superior derecha del protoboard. Por consecuente, se conecta la  primera pata (negativa) del potenciómetro a la terminal negativa del protoboard y la tercera pata (positiva) contando de izquierda a derecha del potenciómetro a la  terminal de 5V del Arduino Uno por medio de múltiples pequeños puentes, y finalmente su pata central hacia la terminar A0 del Arduino Uno con la ayuda de pequeños puentes también (los puentes sirvieron para una mejor organización de del circuito). Después de ésto, continuamos a posicionar los dos pulsadores en el área derecha del protoboard; sus patas inferiores izquierdas se las enlazó a la terminal positiva inferior del protoboard mientras que sus patas superiores derechas se las conectó con la ayuda de dos resistencias (una para cada pulsador) hacia la terminal negativa superior del protoboard con las patas derechas de las resistencia mientras que con las patas izquierdas de las mismas hacia los pines 9 y 10 del Arduino respectivamente. A ésto se les une la fotocelda, que se posicionó al lado derecho de los pulsadores y debajo del potenciómetro con respecto al protoboard; su pata derecha se la enlazó mediante otra resistencia hacia la terminal negativa superior del protoboard mientras que su pata izquierda se la conectó a la terminal positiva inferior del protoboard. Luego se enlazó cada uno de los LEDS  (1-2-3-4-5-6-7-8) con la ayuda de una resistencia por cada uno, más su debido cable macho macho a las terminales 1-2-3-4-5-6-7-8 del Arduino Uno. Después de ésto, solo hacía falta conectar cada una de las patas negativas de los LEDS hacia la terminal negativa del protoboard. Continuando, se conectó la terminal GND del Arduino Uno a la terminal negativa del Protoboard. Finalmente, solamente se conectó el Arduino Uno a la PC para alimentar el circuito, pero antes de eso, se tuvo que realizar la correcta programación del circuito con la ayuda del Programa ARDUINO UNO.

PROGRAMACIÓN/EVIDENCIA DE PROGRAMA "ARDUINO UNO"/COMENTARIOS
Las programaciones empleadas fueron las siguientes:

CONTROL DE LEDS + POTENCIÓMETRO (4 LEDS)
Se procedió a realizar la primera "prueba" para la programación de los LEDS empleando solamente el componente Potenciómetro para variar la intensidad de parpadeo de cada uno de los mismos.


//Variables Globales
//Variables de referencia para los leds
int led1 = 1;
int led2 = 2;                       VARIABLES DE REFERENCIA (1-2-3-4)
int led3 = 3;
int led4 = 4;

//Variable de referencia del potenciómetro
int potenciometro = A0;             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);             OUTPUT
  pinMode(led3, OUTPUT);
  pinMode(led4, 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);          HIGH
  digitalWrite(led3, HIGH);
  digitalWrite(led4, 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);           LOW
  digitalWrite(led3, LOW);
  digitalWrite(led4, LOW);

  // espero un tiempo y dependerá del valor del potenciómetro
  delay(valorPotenciometro);
}


CONTROL DE LEDS + PULSADOR + POTENCIÓMETRO + FOTOCELDA (8 LEDS)

//Variables Globales
//Pines Digitales
//Leds
int led1 = 1;
int led2 = 2;
int led3 = 3;
int led4 = 4;                       VARIABLES DE REFERENCIA (1-2-3-4-5-6-7-8)
int led5 = 5;
int led6 = 6;
int led7 = 7;
int led8 = 8;

//Pulsadores
int pulsador1 = 9;                  PULSADORES
int pulsador2 = 10;

//Pines Analógicos
//Potenciómetro y Foto Celda
int potenciometro = A0;             A0
int foto_celda = A1;                 A1

//Variable donde se almacenará el valor sensado del potenciometro
int valorPotenciometro;
int valorFotoCelda;
int valorPulsador1;
int valorPulsador2;

//Para secuencia o barrido de los leds
int secuencia = 0;

void setup() {
  //pongo los leds como salida
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);            OUTPUT
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
  pinMode(led7, OUTPUT);
  pinMode(led8, OUTPUT);

  //pongo los pulsadores en entrada
  pinMode(pulsador1, INPUT);
  pinMode(pulsador2, INPUT);
}

void loop() {
  //realiza la lectura del valor del potenciometro y lo almacena en la variable
  valorPotenciometro = analogRead(potenciometro);
  valorPulsador1 = digitalRead(pulsador1);
  
  //Encendemos o apagamos el pin del LED según convenga
  if (valorPulsador1 == HIGH) {
      secuencia = 1;
  }
  
  if (secuencia == 0) {
    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
    digitalWrite(led4, HIGH);        HIGH
    digitalWrite(led5, HIGH);
    digitalWrite(led6, HIGH);
    digitalWrite(led7, HIGH);
    digitalWrite(led8, HIGH);
    
    //espero tanto mili segundos segun el potenciometro marque
    delay(valorPotenciometro * 2);
    
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);         LOW
    digitalWrite(led5, LOW);
    digitalWrite(led6, LOW);
    digitalWrite(led7, LOW);
    digitalWrite(led8, LOW);
  
    //espero tanto mili segundos segun el potenciometro marque
    delay(valorPotenciometro * 2);
  } else {
    if (secuencia == 1) {
      digitalWrite(led1, HIGH);
      digitalWrite(led2, LOW);
      digitalWrite(led3, HIGH);
      digitalWrite(led4, LOW);        SECUENCIA
      digitalWrite(led5, HIGH);
      digitalWrite(led6, LOW);
      digitalWrite(led7, HIGH);
      digitalWrite(led8, LOW);
    
      //espero tanto mili segundos segun el potenciometro marque
      delay(valorPotenciometro * 2);
      
      digitalWrite(led1, LOW);
      digitalWrite(led2, HIGH);
      digitalWrite(led3, LOW);
      digitalWrite(led4, HIGH);       SECUENCIA
      digitalWrite(led5, LOW);
      digitalWrite(led6, HIGH);
      digitalWrite(led7, LOW);
      digitalWrite(led8, HIGH);
    
      //espero tanto mili segundos segun el potenciometro marque
      delay(valorPotenciometro * 2);
    } else {
      if (secuencia == 2) {
        //aqui otra condición
      }
    }
  }
}
 
¿QUÉ DIFICULTADES TUVO? ¿CÓMO LOGRO SUPERARLAS? 
Las dificultades que se presentaron fueron que; primero al momento de intentar de conectar la terminal GND del Arduino Uno con la terminal negativa del Protoboard en lugar de conectar la GND conecté por equivocación la terminal AREF. Así que simplemente tuve que revisar toda la conexión para darme cuenta de éste pequeño e importante detalle y cambiarlo. Además, algo mismo ocurrió al momento de intentar conectar la pata central del potenciómetro hacia la terminal de 5V del Arduino Uno, puesto a que en lugar de conectar la de 5V conecté a una de las GND. En ese sentido simplemente tuve que revisar toda la conexión nuevamente para darme cuenta de éste otro pequeño e importante detalle y cambiarlo. 

Por otro lado, con respecto a la programación, la mayoría de los estudiantes incluyéndome, tuvimos varios problemas al momento de escribir y redactar los comando en el programa ARDUINO UNO (tal y como ocurrió con la anterior práctica, debido a que los alumnos aún no logran afianzarse por completo con todos éstos términos de programación), puesto a que si redactábamos algo como no era, la programación simplemente era rechazada por el programa y no se la podía subir. En mi caso, reiteradamente tuve varios errores con respecto a la colocación de puntos y comas y el uso correcto de los paréntesis y las llaves. El resto, de palabras fundamentales, base para la programación en éste tipo de programas como "int", "void setup", "pinMode", "digitalWrite", "delay", "OUTPUT", "HIGH", "void loop", entre otros ya no fue problema, debido a que lo habíamos repasado mucho en clases anteriores.  

CONCLUSIÓN DE CÓMO FUNCIONA EL COMPONENTE TRABAJADO
Arduino es una plataforma de creación de electrónica de código abierto, la cual está basada en hardware y software libre, flexible y fácil de utilizar para los creadores y desarrolladores. Esta plataforma permite crear diferentes tipos de microordenadores de una sola placa a los que la comunidad de creadores puede darles diferentes tipos de uso.

Para poder entender este concepto, primero tenemos que entender los conceptos de hardware libre y el software libre. El hardware libre son los dispositivos cuyas especificaciones y diagramas son de acceso público, de manera que cualquiera puede replicarlos. Esto quiere decir que Arduino ofrece las bases para que cualquier otra persona o empresa pueda crear sus propias placas, pudiendo ser diferentes entre ellas pero igualmente funcionales al partir de la misma base.

El software libre son los programas informáticos cuyo código es accesible por cualquiera para que quien quiera pueda utilizarlo y modificarlo. Arduino ofrece la plataforma Arduino IDE (Entorno de Desarrollo Integrado), que es un entorno de programación con el que cualquiera puede crear aplicaciones para las placas Arduino, de manera que se les puede dar todo tipo de utilidades.

Definir entonces Arduino es complicado, muy complicado. Cuando hablamos de Android, por ejemplo, todos sabemos que se trata de un sistema operativo. Sin embargo, Android no es un único sistema operativo estático, cada fabricante lo implementa a su modo, e incluso la comunidad de desarrollo independiente ha puesto en Internet multitud de versiones del sistema operativo. Y hasta empresas como Nokia y Amazon utilizan Android sin siquiera mencionarlo.

Algo similar a lo descrito en el párrafo anterior ocurre con Arduino. Se trata de un microcontrolador, una placa, un pequeño sistema de procesamiento. Sin embargo, su condición de sistema libre ha propiciado tantas variaciones de lo mismo, que Arduino no es una pieza de hardware única, y de hecho podemos encontrar tantas configuraciones como desarrolladores dispuestos a hacer cambios en los esquemas puedan existir.

Pero claro, debemos cuando menos darle una razón de ser a Arduino. Para ello tenemos qué saber qué hace exactamente un microcontrolador. La respuesta, de nuevo, es que depende de la configuración. Así, encontraremos placas de Arduino capaces de dar vida a un teléfono móvil, un mando a distancia, consolas portátiles, y hasta cámaras fotográficas.

DIAGRAMA GUÍA


Comentarios