ARDUINO

Arduino es una completa plataforma libre, para la programación y control de elementos físicos. Comprende tanto una placa electrónica (hardware) que cuenta con un microcontrolador y pines para conexión, como un entorno de desarrollo o IDE (software).

Su entorno es multiplataforma; se puede instalar y usar tanto en Linux, en Windows y en Mac OS.

 

Utiliza un lenguaje de programación simple, basado en Java pero admite C y C++.

 

Para descargar el IDE podés acceder desde acá: https://www.arduino.cc/en/Main/Software

 

 

PARTES DEL SKETCH (PROGRAMA) DE ARDUINO

Básicamente un programa de Arduino tiene 2 partes bien diferenciadas. Una es el void setup y otra el void loop.

VOID SETUP

Setup, quiere decir preparación, disposición. Por ello, en esta parte de la estructura, entre otras cosas, inicializaremos los pines como entrada o salida. 

 

Comenzaremos escribiendo la palabra void (es una palabra reservada que significa nulo, pero más adelante veremos para que sirve) seguida de la palabra setup. Luego abriremos y cerraremos paréntesis y seguidamente abriremos una llave "{". Esta llave es la que dará inicio a todo lo que deba contener el setup.

 

Como dijimos, la función setup se usa para inicializar los pines; para ello creamos la función pinMode seguida de unos paréntesis donde colocaremos sus parámetros separados por una coma. Estos parámetros serán el número de pin del que se trate y el modo en que queremos configurarlo, INPUT, si será un pin de entrada o OUTPUT, si será de salida. 

 

Siempre se debe recordar colocar un punto y coma ";" luego de cerrar el paréntesis. Para dar por terminada la función setup, digitaremos una llave de cierre "}".

 

VOID LOOP

Loop, es una palabra en inglés que significa bucle y tiene la finalidad de repetir constantemente lo que se coloque dentro de sus llaves. ¡Sí, al igual que el setup, comienza con la palabra void, luego la palabra loop seguida de los paréntesis y la llave de apertura. 

 

En esta parte del sketch se colocará todo lo que queremos que el programa haga. Y eso se repetirá en un bucle infinito.

 

En el ejemplo de la imagen, vemos que tenemos la función digitalWrite y en sus parámetros el número de pin al que le dará energía, al configurarlo como HIGH o se la quitará al configurarlo como LOW

 

La función delay se utiliza para pausar el programa y su único parámetro será el tiempo en milisegundos que se desea mantenerlo detenido. 

 

Vemos también que cada instrucción se separa por un punto y coma ";" y toda la función loop se culmina con una llave de cierre "}".


NUESTRO PRIMER SKETCH

EL SEMÁFORO

Luego de haber analizado la secuencia de luces de los semáforos de la vía pública, nos animamos a armar el propio en clase. En la imagen vemos una representación digital creada en el programa Tinkercad. Y adjunto a este texto, encontramos el programa que utilizamos para que funcione en esa aplicación. ¡Pueden probar en sus casas!

const int verde=2;      //definimos el valor del pin para el led verde

const int amarillo=4;  //definimos el valor del pin para el led amarillo

const int rojo=7;     //definimos el valor del pin para el led rojo

 

 

void setup() {

  pinMode(verde,OUTPUT);   //declaramos el pin verde como salida  

  pinMode(amarillo,OUTPUT);//declaramos el pin amarillo como salida

  pinMode(rojo,OUTPUT);    //declaramos el pin rojo como salida  

  Serial.begin(9600);

}

 

 

void loop() {

 digitalWrite(verde,HIGH); //encendemos el led verde

 delay(2000);             //esperamos 2 segundos (equivalente a 2000 milisegundos)

 digitalWrite(verde,LOW);  //apagamos el led verde

 delay(500);              //esperamos medio segundo (equivalente a 500 milisegundos)

 

 digitalWrite(amarillo,HIGH); //encendemos el led amarillo

 delay(1000);                 //esperamos 1 segundo

 digitalWrite(amarillo,LOW);  //apagamos el led amarillo

 delay(500);                  //esperamos medio segundo

 

 digitalWrite(rojo,HIGH); //encendemos el led rojo

 delay(2000);              //esperamos 2 segundos

 digitalWrite(rojo,LOW);  //apagamos el led rojo

 delay(500);               //esperamos medio segundo  

}

SEMÁFORO CON CUENTAVUELTAS

Esta sería una solución para el interrogante que planteamos sobre conocer la cantidad de veces que el semáforo repitió el código que agregamos dentro del loop. Esta simple variable que llamamos "vueltas", que va sumando un valor de 1 cada vez que se cumple 1 ciclo del loop, nos permite conocer la cantidad de vueltas que fue dando de la secuencia completa de prendido y apagado de luces. 

const int verde=2;      //definimos el valor del pin para el led verde

const int amarillo=4;  //definimos el valor del pin para el led amarillo

const int rojo=7;     //definimos el valor del pin para el led rojo

 

int vueltas=0;

 

 

void setup() {

  pinMode(verde,OUTPUT);   //declaramos el pin verde como salida  

  pinMode(amarillo,OUTPUT);//declaramos el pin amarillo como salida

  pinMode(rojo,OUTPUT);    //declaramos el pin rojo como salida  

  Serial.begin(9600);

}

 

 

void loop() {

 digitalWrite(verde,HIGH); //encendemos el led verde

 delay(2000);             //esperamos 2 segundos (equivalente a 2000 milisegundos)

 digitalWrite(verde,LOW);  //apagamos el led verde

 delay(500);              //esperamos medio segundo (equivalente a 500 milisegundos)

 

 digitalWrite(amarillo,HIGH); //encendemos el led amarillo

 delay(1000);                 //esperamos 1 segundo

 digitalWrite(amarillo,LOW);  //apagamos el led amarillo

 delay(500);                  //esperamos medio segundo

 

 digitalWrite(rojo,HIGH); //encendemos el led rojo

 delay(2000);              //esperamos 2 segundos

 digitalWrite(rojo,LOW);  //apagamos el led rojo

 delay(500);               //esperamos medio segundo

   

 vueltas = vueltas + 1;

 Serial.print("Vueltas dadas = ");

 Serial.println (vueltas);

}