Primeros proyectos con Arduino

¡Voy a hacer mi primer proyecto con Arduino! Pero… ¿Por dónde empiezo?

No te preocupes, al igual que pasa con muchas otras cosas en nuestro día a día, la pregunta de ¿Por dónde empiezo? es común a la hora de ponernos a programar.

Lo bueno es que la respuesta es bien sencilla: Por el final.

¿Qué quiero que haga mi programa?

Esta es la primera pregunta que tenemos que hacernos cuando vamos a programar, y aunque la pregunta es sencilla no es fácil de responder. ¿Por qué? Porque tenemos que dejar claro absolutamente todo lo que queremos que haga el programa, cómo queremos que lo haga y cuál es la mejor forma para conseguirlo.

Después de haber elaborado un guión de todo lo que hay que hacer para que nuestro proyecto funcione solo queda ir pasito a pasito (función a función) creando nuestro código.

Descarga e instalación del IDE de Arduino

Antes de meternos en faena con la programación necesitamos la herramienta básica para poder escribir nuestro programa. Sigue los pasos del siguiente vídeo y ¡estarás lista para comenzar!


PRIMER PROGRAMA: SEMÁFORO.

Vamos a crear un semáforo, así que pensamos en la primer pregunta que tenemos que hacernos cuando empezamos un programa, ¿qué va a hacer mi programa?

Lógica: Primero tendremos encendida la luz roja durante unos segundos, luego se apagará y se encenderá la luz verde durante otros cuantos segundos, después se apagará también para que se encienda la naranja durante un par de segundos, y por último volverá a lucir la luz roja.

Estructura: Como las luces se van a ir encenciendo y apagando una detrás de otra lo único que tenemos que tener en cuenta de la estructura es que primero va la luz roja, luego la verde y finalmente la naranja, antes de volver a la rojal.

Ya tenemos la lógica y también sabemos cómo lo vamos a hacer, toca pensar en los materiales que utilizaremos.

Materiales: Siempre vamos a necesitar la placa, en este caso Arduino uno, el cable para poder programarla y cables para poder conectar los componentes a los pines. Además, y esto ya específico de nuestro mini-proyecto, nesitaremos tres LEDs (rojo, amarillo y verde).

Ya hemos pensado suficiente cómo va a ser nuestro proyecto, es hora de implementarlo:

El primer paso es nombrar las variables que vamos a utilizar y asignarles el pin al que las hemos conectado. IMPORTANTE: Ya que les estamos poniendo nombre, vamos a intentar que estos nombres tengan sentido porque, aunque es gracioso ponerle patata a una variable, también es muy probable que se nos olvide que nos estábamos refiriendo a la variable LedRojo.


int LedRojo = 6;
int LedAmarillo = 7;
int LedVerde = 8;

El siguiente paso es inicializarlas dentro del setup().

Inicializamos como pines OUTPUT los pines a los que la placa les tiene que enviar información. Como ejemplo perfecto tenemos el LED, porque la placa tiene que mandarle la información de si le toca estar encendido o apagado.

Inicializamos como pines INPUT los pines de los que la placa recibe información. Un ejemplo perfecto sería un sensor, porque la placa recibe de él la información y actua en consecuencia.


void setup()
{    
     pinMode (rojo , OUTPUT);
     pinMode (amarillo , OUTPUT);
     pinMode (verde , OUTPUT);
}

Por último vamos a crear el cuerpo del bucle:


void loop()
{
     digitalWrite(LedRojo,HIGH);
     delay(2000);
     digitalWrite(LedRojo,LOW);
     delay(50);
     digitalWrite(LedVerde,HIGH);
     delay(2000);
     digitalWrite(LedVerde,LOW);
     delay(50);
     digitalWrite(LedAmarillo,HIGH);
     delay(500);
     digitalWrite(LedAmarillo,LOW);
     delay(50);
}

Para encender y apagar los LEDs utilizamos la función digitalWrite(nombre_led, HIGH/LOW), HIGH para encenderlo y LOW para apagarlo.

Las funciones delay(tiempo) nos permiten elegir el tiempo que está encendido o apagado cada uno de los LEDs.


RETO DIARIO

Tal y como indica el nombre de este apartado cada día se propondrán unos retos para que comprobéis, no solo si habéis entendido toda la explicación, sino para además poner a prueba algo muy importante: vuestra capacidad para buscar información. Constantemente utilizamos conocimientos que otras personas aprendieron antes que nosotros y tenemos que aprovechar la gran ventaja que es tener internet para aprender cosas de forma autodidacta.

Todos los retos se resolverán mañana y si vuestras propuestas con correctas podríais terminar ganando alguna que otra recompensa.


Reto 1: Nuestro semáforo durará en verde un tiempo proporcional al número de coches que hay esperando.

Hemos colocado una cámara que nos dice cuantos coches hay esperando a que el semáforo se ponga en verde. Para que les de tiempo a pasar, el semáforo permanecerá en verde dos segundos por cada coche que haya esperando, pero no más de 10 segundos porque sino los peatones se cabrean.

Para saber cuantos coches hay esperando se utiliza una función llamada random(), busca información sobre ella.


Teneis para tentregar las soluciones de los retos hasta hoy antes de las 21:30 en el correo osl@ugr.es

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.