You are on page 1of 12

TeoraArduino II.

Recordemos un poco.
A pedido del pblico haremos un refresh de todo lo que hemos visto de Arduino
hasta ahora y agregaremos cdigo nuevo, esquemticos nuevos, entre otros.
COMENCEMOS!

Para la Estructura del cdigo:


void setup() {
/* Recordando: Aqu colocamos nuestras configuraciones.
Pines de Entrada, Pines de salida, Pre-lectura de datos,
etc */
}

void loop() {
/* Y aqu colocamos la parte funcional del cdigo.
Secuencias, activacin o desactivacin de pines, envio y
recepcin de datos, etc */
}

Variables:

Como en todo lenguaje de programacin, en el Arduino tambien declaramos


variables para un mejor orden en nuestro cdigo. La idea de programar no es
hacer mucho cdigo, es que con poco cdigo hagamos mucho sin tener que
estar dando vueltas, redundando y estresandonos por luego intentar entender
nuestro cdigo.
Aqu te dejare tres tipos de variables del Arduino, a mi parecer los principales y
los que ms se usan:
/* Declarando valores enteros:
Usualmente usados para darle un nombre
determinado a un pin del Arduino */

int led = 13;

void setup() {
...
}

void loop () {
...
}
/* Declarando caracteres:
Usualmente usado para almacenar
estados */

char estado = a;

void setup() {
...
}

void loop () {
...
}
/* Declarando booleanos

Dos posibles estados: True (Verdad o 1


lgico) o False (Falsedad o 0 lgico) */

Boolean encendido = true;

void setup() {
...
}

void loop () {
...
}

Estructuras de Control:
Esto usaremos para hacer condiciones en nuestra programacin o tambien para
hacer nuestros sensuales bucles.Entre los ms usados tenemos:

if

Switch/case

For

While

TeoraProgramacin en Arduino.

Continuamos con la teora.


Solo un poco ms de teora para entrar a la practica, y a algunas cosas que me
estuvieron consultando por el inbox del Facebook. Mucho de lo que
colocaremos es para que puedan realizar sus proyectos en mente!

Condicionales
/* Usando el if/else

Si ciertos parametros cumplen, me realiza una funcin,


en caso contrario me realiza otra.
Usada para 3 condiciones, generalmente, a partir de 4
utilizaremos Switch/case */

void setup() {
...
}

void loop() {
if (valor_entrada < 100) {
// Accin 1
} else if{
// Accin 2
} else {
// Accin 3
}
}
// Usando el Switch/case

void setup() {
...
}

void loop() {
switch(var){
case 1:
// Accin 1
break;
case 2:
// Accin 2
break;
case 3:
// Accin 3
break;
}

Bucles
// Usando el For

void setup() {
...
}

void loop() {
for (int a=0; a < 10; a++){
/* Accin a repetir mientras
que a < 10 (tambien se puede
interpretar como un desde...
hasta ...)*/
}
}
// Usando el while

void setup() {
...
}

void loop() {
while (var < 50){
/* Accin a repetir mientras que var < 10
(tambien se puede interpretar como un
mientras que...)*/
var++;
}
}

Funciones

Son aquellas lneas de cdigo que me haran una tarea en especfica, a su vez
son capaces de retornar valores. Para finalizar la teora veremos dos tipos de
funciones: Funciones analgicas y Funciones digitales.

PracticaHora de aprender a codear!

A Terminar con la Teora


Pasaremos a revisar dos tipos de funciones.

Funciones Digitales
/* Funcin pinMode: Configura el modo
del Pin como entrada o salida
(Input o Output) */

int led = 13;

void setup {
pinMode(led,OUTPUT);
// El pin 13 configurado como
salida
}

void loop {
...
}
/* Funcin digitalRead: Nos permite
la lectura digital de un pin
(lee un '0' o un '1') */

int val_entrada;

void setup {
...

void loop {
val_entrada = digitalRead (13);
// Leera el estado digital ingresante
en el pin 13
}
/* Funcin digitalWrite: Le otorga un
estado de '0' y '1' al pin asignado
(Encendido o Apagado, HIGH o LOW) */

int led = 13;

void setup {
...
}

void loop {
digitalWrite(led,HIGH);
// Emite un pulso ALTO al pin 13
// HIGH: Encendido, LOW: Apagado
}

Funciones Analgicas
/* Funcin analogRead: Lee un valor entre 0
a 1023 en uno de los pines analgicos */

int a;

void setup() {
...
}

void loop() {
int a = analogRead(A0);

}
/* Funcin analogWrite: Escribe un valor de 0
a 255 en uno de los pines analgicos.
Usado usualmente para control de motores */

void setup() {
...
}

void loop() {
analogWrite(9,134);
//9 es el Pin, 134 es el valor Analogo escrito
}

Te hemos brindado varias estructuras de cdigo para que se nos haga ms facil
entender cdigos ms grandes, librerias, aportes de otras personas, etc. Para la
parte practica empezaremos a revisar cdigos que nos ayudara en el
funcionamiento de diversas cosas electrnicas. Puedes dare click en el botn de
abajo para pasar a la parte practica del curso.

VideoResumen de lo que hemos visto hasta ahora y ms.

Cdigo para nuestro uso!


Ya vimos suficiente teora para entender el cdigo y la sintaxis de como
programar en Arduino, ahora es momento de resolver dudas y darles alcances
que muchos pidieron para el desarrollo de sus proyectos, entre otros. Les dejare
sitios web para que se ayuden ms rapidamente a encontrar estos alcances, ya
que es demasiado contenido que tenemos para esta ltima semana, y es
momento que empiecen a Googlear y experimentar por ustedes mismos.
Para empezar instalen el Software de Arduino, click Ac!
(https://openwebinars.net/tutorial-arduino-ide-arduino/)

1. Como puedo medir distancias usando el


Arduino?

Rpta: Para esto nos apoyaremos de la ayuda de los ultrasonidos. Este emite un
pulso ultrasonico (LOL) imperceptible por el odo humano, y lo recepciona. En
base a frmulas podemos calcular que distancia a recorrido.
Hay dos formas de usar los ultrasonidos, la primera por cdigo desarrollado por
nosotros mismos y la segunda es usando libreras.
a. Ultrasonido a lo rstico: Para poder usar este cdigo clickea AQU.
(http://elcajondeardu.blogspot.pe/2014/03/tutorial-sensor-ultrasonidos-hcsr04.html) La ventaja de usar este cdigo es que es facilmente entendible.
b. Ultrasonido por Librera: Y para esta forma de usar el ultrasonido
clickeen Aqu.( http://www.geekfactory.mx/tutoriales/tutoriales-arduino/sensorultrasonico-hc-sr04-y-arduino/) Requiere instalar la librera NewPing. La ventaja
de usar esta forma es que nos permite el multitareas, en otras palabras
podemos ir trabajando cdigo en simultneo sin interrupciones.

2. Como puedo controlar motores?


Rpta: Para empezar hay tres tipos de motores (bueno en realidad hay ms) que
podemos controlar. Estos son los Motores DC, lo servomotores y los motores
paso a paso.
El primer tutorial que les pasar es el de los motores DC, utilizados para
movimientos rotatorios y de desplazamiento, y los motores paso a paso, para
control de giros por precisin. Revsalo AQU!
(http://electronilab.co/tutoriales/tutorial-de-uso-driver-dual-l298n-para-motoresdc-y-paso-a-paso-con-arduino/)
El segundo tutoria es sobre los Servomotores, utilizados en ejes de robots o
mecanismos, para movimientos ms precisos en base a ngulos. Puedes
revisarlo AQU! (http://www.electroensaimada.com/servomotor.html)

3. Conexin por BlueTooth?


Rpta: Si, muchos queremos controlar cosas con nuestro celular, y para ellos
necesitamos configurar nuestro Bluetooth con el Arduino
Para las configuraciones previas puedes visitar esta web!.
(https://geekytheory.com/conectar-android-con-arduino-por-bluetooth-capitulo1/) Aqu encontraremos un video con configuraciones bsicas que necesitamos
para conectarnos al BT.
Cuando nuestra configuracin ya este preparada visiten esta web.(
https://paruro.pe/aprende/arduino/bluetooth/comunicaci%C3%B3n-arduinoandroid-por-bluetooth) Con esto aprendido podremos ir jugando en controlar
cosas ms grandes y ms interesantes.

4. Y ahora que hacemos?


Rpta: A fusionar todo lo mencionado ultimamente! Una persona conocido por
muchos como "El profe Garca" creo todo un pequeo sistema en el que
combina estas tres herramientas previamente mencionadas, sera interesante
que como prctica lo desarrollen y comiencen a experimentar por ustedes
mismos.
Les dejare el link Aqu (http://elprofegarcia.com/?page_id=2). Tiene como
nombre carro a control remoto, en otras palabras puede ser controlado por
celular, y tambien nos permite sensar distancias con el ultrasonido, ustedes
mismos son, comiencen a jugar con estas herramientas.

5. Extra: Visualizar datos en pantallas


Uno de los ms conocidos para esto es el LCD de 16 x 2. En este link
(http://elcajondeardu.blogspot.pe/2013/12/tutorial-conectando-una-pantallalcd.html) encontraremos como conectarla, configurarla y empezar a decir lo que
pensamos desde un Arduino.

6. Extra: Joystick en Arduino?


Si! Podemos usar Joystick para controlar cosas desde un Arduino, creando asi
nuestros propios controles sin necesidad de usar un BT y un Android para
esto. Aqu (http://www.prometec.net/joystick-servo/) les dejo una demostracin
de como hacerlo.

Reto 2Reto Final del entrenamiento de Electrnica

Reto Final de Electrnica


Es hora de un verdadero reto.
Permtenos hablarte de dos funciones:
Serial.begin(9600); que se ubica en el void Setup (solo lo necesitamos 1 vez).
Serial.read(); lee un dato y lo almacena en una variable. (va en el void loop).

Ejemplo:
char dato;
dato = Serial.read();
El reto de esta semana es: Usando un RGB, variar el color usando
solo UN potencimetro.

Esto se hace de la siguiente manera:


1.

Lee un valor analgico por el pin A0.

2.

Cuando envas una letra 'r' por el monitor serial, almacena ese valor, y lo
escribe (analogWrite())en un pin que maneja el color rojo en el led RGB.

3.

Si escribo la letra 'g' lo imprime en el 2do pin que maneja el color verde.

4.

Si escribo la letra 'b' lo imprime en el 3er pin que maneja el color azul.
Recuerda poner una resistencia por cada pin del led, y que un RGB funciona
como 3 leds en uno. Al variar la intensidad en cada uno, se pueden obtener
combinaciones de colores. Este ejercicio no es particularmente complicado,
pero es un reto que les ensear a trabajar con el puerto serial.
Puedes entregar el reto tomandole fotos a tu proyecto hecho y adems a tu
cdigo utilizado.

You might also like