Actividad Sumativa- Arduino

Para realizar un circuito de luces con secuencia:
Descripción: 

Los ocho focos LED efectúan una secuencia de dentro hacia afuera, apagandose un momento en el centro y en los extremos, para luego repetir la acción en un  bucle. 

Materiales:




  • Protoboard
  • 8 LEDs
  • 8 resistencias (rojo-rojo- café)
  • Cables macho-macho
  • Arduino Uno
  • Potenciómetro
Procedimiento:
  1. Se conectan los ocho LEDs en el protoboard, y sus respectivas resistencias. 



  2. Se conecta cada una de las resistencias a un pin digital (desde el 2 hasta el 8) del Arduino mediante macho-macho.



  3. Se conecta con cables macho-macho los ánodos de cada uno de los LEDs  a el negativo del protoboard
  4. Se conecta  el negativo (del protoboard) GND del Arduino (que al estar conectado actúa como batería).
  5. Se conecta el Potenciómetro  a lado de los LEDs en el protoboard (con su regulador posicionado mirando frente a ti) y después se conecta cada una de sus patas:
  • La pata de la izquierda se conecta con el negativo del protoboard 
  • La pata del medio se conecta con A3 (pin analógico) del Arduino
  • La pata de la derecha se conecta con 5V (Power) también del Arduino

Programación:
La realicé online en www.tinker.com

  1. Primero se deben agregar todas las variables int, es decir se debe asignar una para cada foquito LED y también se debe asignarle a cada variable un pin, y como ya se los conectó de manera tangible, se les asigna el número de pin en el que se lo ha conectado.
  2. Luego se ingresan dos variables más para el potenciómetro
  • Son:''potenciometro''y valorDelPotenciometro''
      3. Luego en void setup:
          Se deben añadir todas las variables LED que hay.
 Ejemplo: pinMode(led(x), OUTPUT); 

      4. En void loop se tiene que definir que van a hacer determinados focos. Si van a estar prendidos         o apagados, y durante cuanto tiempo tienen que esperar. Justamente en delay se pone la variable         ''valorDelPotenciometro'' ya que es aquella va a definir la rapidez con la que cambian los focos de        secuencia. Esto se debe a que el potenciómetro nos permitirá regular la intensidad/ rapidez de las        luces. Para esto se condiciona tal y como se muestra en una de las imágenes posteriores. Además        se debería alterar la variable   ''valorDelPotenciometro''  para aumentar su capacidad. Por esto se         la multiplica por dos (*2). Como notarán cada algunos comandos (en los cuales indico que focos        LED se deben encender y en que secuencia de pares deben hacerlo) se nota  el:                                       ''valorDelPotenciometro * 2''.
 Esto indica cuanto tiempo se va a quedar encendido/apagado.
     En mi caso los programé así:

  
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 Potenciometro = A3;
   int valorPotenciometro;

 {
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
  pinMode(led7, OUTPUT);
  pinMode(led8, OUTPUT);
  pinMode(led9, OUTPUT);
}

 {
  valorPotenciometro = analogRead(Potenciometro);
  digitalWrite(led2, HIGH);                
  digitalWrite(led9, HIGH);
delay(valorPotenciometro * 2);
   digitalWrite(led2, LOW);               
  digitalWrite(led9, LOW);
  digitalWrite(led3, HIGH);
  digitalWrite(led8, HIGH);
   delay(valorPotenciometro * 2);
  digitalWrite(led3, LOW);
  digitalWrite(led8, LOW);
  digitalWrite(led4, HIGH);
  digitalWrite(led7, HIGH);
   delay(valorPotenciometro * 2);
  digitalWrite(led4, LOW);
  digitalWrite(led7, LOW);
  digitalWrite(led5, HIGH);
  digitalWrite(led6, HIGH);
delay(valorPotenciometro * 2);
  digitalWrite(led5, LOW);
  digitalWrite(led6, LOW);
  delay(valorPotenciometro * 2);
  
  digitalWrite(led5, HIGH);
  digitalWrite(led6, HIGH);
  delay(valorPotenciometro * 2);
  digitalWrite(led5, LOW);
  digitalWrite(led6, LOW);
  digitalWrite(led4, HIGH);
  digitalWrite(led7, HIGH);
  delay(valorPotenciometro * 2);
  digitalWrite(led4, LOW);
  digitalWrite(led7, LOW);
  digitalWrite(led3, HIGH);
  digitalWrite(led8, HIGH);
  delay(valorPotenciometro * 2);
  digitalWrite(led3, LOW);
  digitalWrite(led8, LOW);
  digitalWrite(led2, HIGH);
  digitalWrite(led9, HIGH);
  delay(valorPotenciometro * 2);
  digitalWrite(led2, LOW);
  digitalWrite(led9, LOW);
  delay(valorPotenciometro * 2);
}




P.D: Nunca hay que olvidarse de escribir bien el código de programación, ya que el programa ejecutor no podrá leerlo si faltan o están mal escritos ciertos caracteres.

Después se abre el programa Arduino y se copia el código en el propio ejecutor del mismo. Se revisa que todos los caracteres estén en orden (otra vez) y después se presiona en la flecha subir. Entonces se conecta  el Arduino, en conjunto con todo el circuito armado que está  anexo al mismo, al ordenador. El programa ejecutará el código automáticamente y todo el circuito se enciende.





Aquí estan los códigos de programación originales que utilicé:







En este link se puede apreciar un video del resultado final:





Lo que se me dificultó:

En este caso al tener que programar se me dificultó el tener varias líneas de código a la vez, ya que tal vez por ser inexperta, tal vez por despiste, cometí algunos errores al realizar las líneas de código: en una me faltaba un punto y coma, o asignarle un respectivo pin, etc. Poco a poco empecé a corregir los errores y al final se solucionó.
En la parte física no tuve problemas para nada, excepto por que en un momento me faltó un cable macho-macho y me tocó  cortar dos cables macho-hebra y unirlos para crear uno nuevo.

En Conclusión: 

 En conclusión esta actividad no fue tan difícil como parecía, y me gusta lo suficiente este tipo de cosas como para querer aprender más de la materia, no porque sea una obligación, si no por decisión propia. En si puedo concluir que  al finalizar esta actividad  mis habilidades y experiencia han crecido y ahora ya tengo referencias para posibles futuras prácticas, no solo para hacerlo de manera maquinal, si no entendiendo mediante a la experiencia y las indicaciones dadas en clase, lo que estoy haciendo. 
😁😀


Comentarios