You are on page 1of 16

Curso Arduino nivel bsico

TUTORIAL BSICO Primeros pasos


ste tutorial comprende lo mnimo elemental para que un sketck o programa de Arduino
compile: los mtodossetup() y loop().

Hardware Requerido

Arduino UNO

Circuito
Slo se necesita una tarjeta Arduino conectada.

La funcin setup() se llama cuando el sketch o programa se inicia. Lo puedes utilizar para
inicializar variables, configuracin de pines, iniciar el uso de una librera, etc. sta funcin solo
corre una vez despus de encender la tarjeta o apretar el botn de reset en la tarjeta Arduino.
Luego de llamar a la funcin setup(), la funcin loop() se llama consecutivamente una y otra
vez luego de que termina. sto permite que el programa cambie y responda a medida que
corre. El cdigo en la funcin loop() de tu sketch es utilizada para activamente controlar la
tarjeta Arduino.
Cualquier lnea que empiece con dos slashes (//) o cualquier texto que est entre slashasterisco(/*) y asterisco-slash(*/) no va a ser leida por el compilador, por lo que puedes
escribir lo que desees despus de stos permitiendo escribir comentarios de tu cdigo. sto
es muy til para recordar lo que quisimos hacer como para que otros puedan entender
nuestro cdigo.
El cdigo a continuacin no hace nada, pero su estructura es til para copiarla y pegarla en
un sketch para empezar.
Dentro del cdigo, todo lo escrito de color plomo claro es un comentario que hacemos dentro
del mismo programa, esto se realiza por diferentes motivos como:

Ayudar a que otra persona entienda el programa.

Ayudarnos a nosotros mismos a recordar la lgica que usamos, si es que retomamos el


programa despus de largo tiempo o para programas muy largos.

Podemos reconocer un comentario fcilmente tanto por el color como por los conjuntos de
smbolos que mencionamos: /* */ o //
Cdigo:
/*
Minimo Elemental
*/
void setup() {
// escribe ac el cdigo de setup, para que corra una vez:
}
void loop() {
// escribe ac tu cdigo principal para que corra repetidamente:
}
Clase 2 sentencia switch - case
Una sentencia if le permite elegir entre dos opciones diferenciadas, verdadero o
falso. Cuando hay ms de dos opciones, puede utilizar mltiplessentencias if, o puede
utilizar la sentencia switch. la sentencia switch permite elegir entre varias
opciones discretas. En este ejemplo se muestra cmo usarlo para cambiar entre cuatro
estados deseados de una fotoresistencia: muy oscuro, oscuro, medio y brillante.
Este programa lee primero la fotorresistencia. A continuacin, utiliza el mapa ()
para mapear su salida a uno de cuatro valores: 0, 1, 2, o 3. Por ltimo,se utiliza la sentencia
switch() para imprimir uno de los cuatro mensajes de vuelta al ordenador, dependiendo de
cul de los cuatro valores se devuelve.

Hardware Requerido

Arduino UNO

Protoboard

Fotoresistencia

Resistencia de 10K

Circuito

Esquemtico

Cdigo:
/*
Sentencia Switch
Demuestra el uso de la sentencia Switch. La sentencia Switch
permite elegir entre un numero de valores discretos. Esto es como
una serie de sentencias if.
*/
// Declaracin de sentencias
// la mxima y mnima lectura que se obtiene del sensor:
const int sensorMin = 0;
const int sensorMax = 600;
void setup() {
// inicializa la comunicacin serial:
Serial.begin(9600);
}
void loop() {
// Lectura del sensor
int sensorReading = analogRead(A0);
int range = map(sensorReading, sensorMin, sensorMax, 0, 3);
// dependiendo del valor de range realiza una determinada accin
switch (range) {

case 0: // una mano esta sobre el sensor


Serial.println(dark);
break;
case 1: // una mano esta cerca del sensor
Serial.println(dim);
break;
case 2: // una mano esta un poco alejada del sensor
Serial.println(medium);
break;
case 3: // una mano no esta cersa del sensor
Serial.println(bright);
break;
}
delay(1);
// retraso entre lecturas para la estabilidad
}
Clase 3 Sentencia loop
SENTENCIA FOR LOOP
A menudo se desea iterar sobre una serie de pines y hacer algo para cada uno. Por ejemplo,
este ejemplo haceparpadear 5 LEDs conectados alArduino utilizando la sentencia: for () loop
para modificar la salida desde el pin 2 al pin 6. Los LED se enciende y se apaga, en
secuencia, utilizando tanto las funciones de delay() y digitalWrite().

Hardware Requerido

Tarjeta Arduino

Cinco resistencias (220 ohm)

Seis LEDs

Protoboard

Circuito

Esquemtico

Cdigo:
/*
Bucle de iteracin
Muestra el uso de: for() loop.
Prende multiples LEDs en secuencia de una direccion a otra y viceversa
El siguiente cdigo utiliza un for () loop para asignar
los pines 2-6 como salida, las cuales iran conectadas a los 5 LEDs utilizados.
Una vez que se encendi el ultimo LED, este se apaga y se prende el LED anterior
esto continua de forma continua hasta llegar primer LED, donde se inicia el ciclo
*/
// define el tiempo entre el cambio de nivel de voltaje (ms)
int tiempo = 100;
void setup() {
// usa la sentencia loop para declarar los pines como pines de salida
for (int pin = 2; pin <= 6; pin++)
{
pinMode(pin, OUTPUT);
}
}
void loop()
{
// bucle
for (int pin = 2; pin <= 6; pin++)
{
// prende el LED:
digitalWrite(pin, HIGH);
delay(tiempo);
// apaga el LED:
digitalWrite(pin, LOW);
}
// bucle
for (int pin = 6; pin >= 2; pin)
{
// prende LED
digitalWrite(pin, HIGH);
delay(tiempo);
// apaga el LED
digitalWrite(pin, LOW);
}
}

Clase 4 - Sentencia if
La sentencia if() es la sentencia ms bsica de entre todas las sentencias en la estructura de
control. Esta permite que pase algo o no, dependiendo si la condicin dada es verdadera o
falsa.
if (condicin)
Realiza una accion si la condicion es verdadera
Existe una variacin, llamada if-else:
if (condicin)
Realiza una accion si la condicion es verdadera
else
Realiza una accion si la condicion es falsa

Tambin existe la sentenca else-if, donde se puede verificar una segunda condici.
if (condicin)
Realiza una accion si la condicion es verdadera
else if (otra condicin)
Realiza una accion si la primera condicion es falsa
Vamos a usar lasentencia if todo el tiempo. En el ejemplo se enciende un LED en el
pin 13 (el LED incorporado en muchas tarjetas Arduinos) si el valor ledo en una entrada
analgica* pasa por encima de un determinado umbral.

*NOTA:Entrada analgica es aquella en la que los valores de la tensin o voltaje varan


constantemente.

Hardware Requerido

Tarjeta Arduino

Potencimetro

Resistencia (220 ohm)

Protoboard

Circuito

Esquemtico

Cdigo:
/*
Condicional- sentencia if
Este ejemplo demuestra el uso de la sentencia if().
Se lee el valor del potencimetro(una entrada analgica) y prende el LED
solo si el valor sobrepasa el nivel de umbral.
*/
const int analogPin = A0; // pin al cual se conectar el potencimetro
const int ledPin = 9;
// pin al cual se conectar el LED
const int threshold = 400; // un valor de umbral
void setup() {
// inicializa el pin del LED como pin de salida

pinMode(ledPin, OUTPUT);
// inicializacin de la comunicacin serial
Serial.begin(9600);
}
void loop() {
// lectura del valor del potencimetro
int analogValue = analogRead(analogPin);
// si el valor analgico es suficientemente alto se prende el LED:
if (analogValue > threshold) {
digitalWrite(ledPin, HIGH);
}
else {
digitalWrite(ledPin,LOW);
}
// imprime el valor analgico
Serial.println(analogValue);
delay(1);
// retraso entre lecturas para estabilizar
}

Clase 5 - Sentencia while loop


A veces quieres que todo el programa se detenga mientras una condicin dada es
verdadera. Usted puede hacer esto utilizando un while loop. En este ejemplo se muestra
cmo utilizar un while loop para calibrar el valor de un sensor analgico*.
En el loop principal, el siguiente esquema se lee el valor de una fotorresistencia el pin
0 analgico y lo utiliza paradesaparecer un LED en el pin 9.Pero mientras se presiona un
botn conectado al pin digital 2, el programa se ejecuta un mtodo llamado calibrar ()
que busca los valores ms altos y ms bajos del sensor analgico. Al soltarel botn, el
dibujo contina con el bucle principal.
Esta tcnica le permite actualizar los valores mximos y mnimos
de la fotorresistencia cuando las condiciones de ilumina.

*NOTA: Un sensor analgico es aquel que, como salida, emite una seal comprendida por un
campo de valores instantneos que varan en el tiempo, y son proporcionales a los efectos
que se estn midiendo.

Hardware Requerido

Tarjeta Arduino

Pulsador

Fotoresistencia

LED

Dos resistencias (10k ohm)

Resistencia (220 ohm)

Protoboard

Circuito

Esquemtico

Cdigo:
/*
Condicional Sentencia While
Este ejemplo muestra el uso de la sentencia while()
Mientras el pulsador es presionado, la rutina de calibracin es corrida.
La lectura del sensor durante el while loop define el los valores mximo y
mnimos esperados de la fotoresistencia.
Esta es una variacin del ejemplo de calibracin
*/
const
const
const
const

int
int
int
int

sensorPin = A2;
// pin that the sensor is attached to
ledPin = 9;
// pin that the LED is attached to
indicatorLedPin = 13; // pin that the built-in LED is attached to
buttonPin = 2;
// pin that the button is attached to

int sensorMin = 1023; // mnimo valor del sensor


int sensorMax = 0;
// mximo valor del sensor
int sensorValue = 0;
// el valor del sensor
void setup() {
// set the LED pins as outputs and the switch pin as input:
pinMode(indicatorLedPin, OUTPUT);
pinMode (ledPin, OUTPUT);
pinMode (buttonPin, INPUT);
}
void loop() {
// while the button is pressed, take calibration readings:
while (digitalRead(buttonPin) == HIGH) {
calibrate();
}
// seal de termino del periodo de calibracin
digitalWrite(indicatorLedPin, LOW);
// lectura del sensor:
sensorValue = analogRead(sensorPin);
// aplica la calibracin a la lectura del sensor
sensorValue = map(sensorValue, sensorMin, sensorMax, 0, 255);
sensorValue = constrain(sensorValue, 0, 255);
// Atenua el brillo del LED usando el valor de calibracin:
analogWrite(ledPin, sensorValue);
}
void calibrate() {
// prende el LED para indicar que la calibracin esta sucediendo:
digitalWrite(indicatorLedPin, HIGH);
// lectura del sensor:
sensorValue = analogRead(sensorPin);
// almacena el mximo valor del sensor
if (sensorValue > sensorMax) {

sensorMax = sensorValue;
}
// almacena el mnimo valor del sensor
if (sensorValue < sensorMin) {
sensorMin = sensorValue;
}
}
Clase 6 Arreglos
Una matriz o un arreglo es una variable con mltiples partes. Si se piensa en una variable
como un vaso quecontiene un cubo de hielo, es posiblepensar en una matriz como una
bandeja de cubitos de hielo.
Este tutorial se muestra cmo se puede activar una secuencia de pines cuyos nmeros no son
ni contiguos ni necesariamente secuencial. Para hacer esto es que usted puede poner
los nmeros de pin en una matriz y luego usar for loop para iterar sobre el conjunto.
Usamos 5 LEDs conectados a los pines 2-6 en el tablero utilizandoresistencias 220 Ohm, al
igual que en el for loop. Sin embargo, aqu el orden de los LEDs se determina por su orden
en la matriz, no por su orden fsico.
Esta tcnica de poner los alfileres en una matriz es muy prctico. Usted no tiene que tener los
pines secuencialesentre s, o incluso en el mismo orden. Puede reorganizar como quieras.

Hardware Requerido

Arduino UNO

Protoboard

5 resistencia 220

6 LEDs

Circuito

Esquemtico

Cdigo:

/*
Arreglos
A diferencia de la sentencia for loop, donde los pines tienen que ser contiguos,
aqu los pines pueden estar en cualquier orden.
*/
int tiempo = 100;
int ledPines[] = { 2, 4, 6, 5, 3 };
int pin_contador = 5; // el numero de pines (el tamao del arreglo)
void setup() {
// los elementos del arreglo son nmeros desde 0 a (pin_contador 1).
// usa el for loop para inicializar cada pin como pin de salida:
for (int pin = 0; pin < pin_contador; pin++) {
pinMode(ledPines[pin], OUTPUT);
}
}
void loop() {
// bucle desde el primer pin de la lista al ultimo
for (int pin = 0; pin < pin_contador; pin++) {
// prende el LED:
digitalWrite(ledPines[pin], HIGH);
delay(tiempo);
// apaga el LED:
digitalWrite(ledPines[pin], LOW);
}
// bucle desde el ultimo pin de la lista al primero
for (int pin = pin_contador 1; pin >= 0; pin) {
// prende el LED:
digitalWrite(ledPines[pin], HIGH);
delay(tiempo);
// apaga el LED:
digitalWrite(ledPines[pin], LOW);
}
}

II. MDULOS INALAMBRICOS:


II.
MDULOS INALAMBRICOS:
Clase 7 - II. Mdulos inalmbricos.
TUTORIAL: PRUEBA DE MODULO INALAMBICO 433MHZ

como hacer una prueba sencilla para comprobar su funcionamiento?


Muchas personas han preguntado COMO COMPROBAR EL FUNCIONAMIENTO DEL MODULO RF
433Mhz, en este tutorial de 1 min se transmitir un tren de datos, que es una meloda
(msica de Mario Bros), para lo cual solo es necesario un micro controlador (arduino o pic) y
un modulo de transmisin RF.
Si bien es cierto, el modulo 433Mhz es uno de los dispositivos ams comunies para transmision
inalambrica, es economigo y facil de implementar, sea con PIC , Avr o Arduino.
Pero se han preguntado como hacer una prueba sencilla para comprobar su funcionamiento?
El modo mas comun de funcionamiento es enviar caracteres y recibirlos por un dispositivo
que muestre los caracteres que se han transmitido, sin embargo esto no seria posible si no se
posee mas de un microcontrolador, por tanto como hacer pruebas y verificar por cuenta
propia el funcionamiento.
Para desarrollar la temtica se ha diseado un programa que emita una meloda, audible para
nosotros y bien diferenciable.
Link video: https://youtu.be/UkIUbo14OCU
Es la meloda de Mario Bros, ademas adjunto La programacin utilizada y el circuito ha
implementar en el siguiente enlace:
https://www.mediafire.com/folder/nz22k2r43w31l/TRANSMISOR_DE_MELODIA

You might also like