Saludos entusiastas y amantes de la tecnología, hoy les quiero compartir mi primer proyecto, el cual me ayudó mucho a conocer conceptos básico del uso de Arduino y se que también ayudara a muchos de ustedes.
Para la realización solo necesite algunos elementos del kit basico que compre en AliExpress; 10 led, un resistor, muchos cables, Arduino y un computador para introducir código, estos elementos son fáciles de conseguir en cualquier tienda de electrónica.
Los animo a empezar esta entretenida actividad, les recuerdo que es orientada a todo tipo de personas, soy principiante y me ha ido bien, anímate.
He recomendado unos PDF para que vallas leyendo y te des cuenta el potencia que tiene aprender sobre Arduino, clic aqui para ver pdf.
En el proyecto haremos uso de los pines digitales del 2 al 11 de nuestro Arduino, por dichos pines enviaremos una tensión de 5 voltios según le ordenemos con nuestro código.
Así como podemos enviar voltajes desde nuestro Arduino, también podemos recibir, procesar, controlar usando simples lineas de comando, eso es los que hacer flexible Arduino para usarlo en casi cualquier proyecto que imagines, en la medida que realizaremos más proyectos iremos conociendo todo el potencial de esta fabulosa placa electrónica.
A continuación les hice un esquemas más fácil de entender.
Como muestra el esquema, he usado un solo resistor de 220Ω para regular el voltaje a los 10 led y así hacer un circuito más sencillo, también podemos observar que cada pin (del 2 al 11) va conectado a un led, esto para controlar el parpadeo de cada uno de nuestros led y realizar la secuencia que queramos, he hecho para ustedes dos secuencias muy básicas, ustedes podrán crear las suyas sin necesidad de cambiar el circuito.
A continuación el código.
A continuación el código.
int tiempo = 50;
void setup(){
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
}
void vuelta(){
for(int i = 2; i <= 11; i++){
digitalWrite(i,HIGH);
delay(tiempo);
digitalWrite(i,LOW);
}
}
void regreso(){
for(int i = 11; i >= 2; i--){
digitalWrite(i,HIGH);
delay(tiempo);
digitalWrite(i,LOW);
}
}
void loop(){
for(int i = 0; i < 10; i++){
vuelta();
}
for(int i = 0; i < 10; i++){
regreso();
}
}
Declaré una variable llamada tiempo, su función es definir el tiempo que transcurrirá entre cada parpadeo en los led, la variable tiene un valor de 50 que corresponde a 50 milisegundos, recordemos que un milisegundos es tomar un segundo, dividirlo en mil partes y tomar una de esas partes.
Luego viene el método setup(); que es obligatorio y se usa para definir ordenes que Arduino debe cargar al inicio o cada vez que se reinicie como por ejemplo iniciar variables, librerias, etc; en nuestro caso lo usamos para definir los pines del 2 al 11 como pines de salida.
He creado también, dos métodos vuelta() y regreso(); el método vuelta genera la ilusión de giro en sentido anti-horario (contrario a las manecillas del reloj) esto lo logro usando un ciclo for que va desde el 2 y llega hasta el 11, esto es por lo pines que estamos usando.
Explico algo importante, dentro del ciclo for declaro una variable i, esta variable se incrementa en cada ciclo, es decir cambia en el tiempo, comienza siento 2, luego 3, después 4 y así hasta llegar a ser 11 y finaliza el ciclo.
Dentro del ciclo for tenemos una linea 'digitalWrite(i,HIGH);' esto lo que hace es enviar 5 voltios por el pin que en ese momento sea igual a la variable i, la siguiente lineas 'delay(tiempo);' indica que Arduino debe esperar 50 milisegundos antes de ejecutar la siguiente linea, en términos prácticos es dejar el led encendido 50 milisegundos; luego sigue la linea 'digitalWrite(i,LOW);' que lo que hace es apagar el pin que en ese momento sea igual a la variable i, en otras palabras apagar el led; como el ciclo va desde 2 a 11 todos los pines serán sometidos a las lineas o instrucciones que estén dentro del ciclo for.
El método regreso() es análogo al método vuelta() con la diferencia que este va en sentido contrario es decir del pin 11 al pin 2; si se fijan los métodos vuelta() y regreso() representan una sola vuelta.
Seguimos con el método loop(), el cual también es obligatorio y aquí programaremos todo lo que queremos que haga nuestro Arduino, este método se ejecuta todo el tiempo de manera cíclica mientras tengamos encendido nuestro Arduino.
Dentro de nuestro metodo loop(), tenemos dos ciclos for que se ejecutan 10 veces, el primero hace un llamado a nuestro método vuelta(), lo que significa que generaremos la ilusión de dar 10 vueltas en sentido anti-horario, el segundo ciclo hace el llamado al método regreso() que generar la ilusión de dar 10 vueltas en sentido de las manecillas del reloj.
Para terminar repasemos lo aprendido:
- Podemos detener la ejecución de ordenes con un delay el tiempo que queramos.
- Podemos usar los pines para enviar 5 voltios a dispositivos externos, en nuestro caso led's
- Podemos ejecutar ordenes cuantas veces lo necesitemos con el ciclo for.
Con lo aprendido meditemos las posibilidades hasta aquí de Arduino, ¿Qué más se nos puede ocurrir?, no importa que aun nos falten los conocimientos necesarios, esto es un buen ejercicio ya que con el tiempo llenamos esos vacíos y nuestro subconsciente nos ayudara en la parte creativa.
No olviden comentar sus dudas, sugerencias.

Hola! Muy buen post... Tengo una duda... Se puede hacer que se detenga aleatoriamente en un led?... No que de vueltas hasta que se apague sino que gire un poco y se detenga en un led aleatorio. Gracias por el aporte :3
ResponderEliminar