Está en la página 1de 19

en el aula de tecnologas

Wladimir Lpez de Zamora Herrero


versin feb 14
Arduino en el aula de tecnologas. Wladimir Lpez de Zamora Herrero 2

Aclarando las cosas.

Estara feo llamarle a esto manual de Arduino. Los manuales los escriben expertos, y yo estoy
lejos de ser experto de nada, y menos de Arduino.

Lo que tienes ahora mismo delante no es ms que una recopilacin, adaptacin, traduccin
etc, etc, con la que slo se pretende que no pases las horas que he pasado yo buceando en
internet.

Muchos de los textos los he sacado de la pgina oficial de Arduino, otros de pginas de
fabricantes o distribuidores de componentes, y en la mayora de las veces me he limitado a
adaptarlos al contexto de un aula de tecnologas de ESO o Bachillerato, si eso todava existe
cuando leas esto.







Arduino en el aula de tecnologas. Wladimir Lpez de Zamora Herrero 3

Qu es esto de Arduino?
Arduino es una plataforma de electrnica abierta para la creacin de prototipos basada en
software y hardware flexibles y fciles de usar. Siempre cuentan que se cre para artistas,
diseadores, aficionados y cualquiera interesado en crear entornos u objetos interactivos que
no en muchas ocasiones no tenemos altos conocimientos de electrnica o programacin.


Arduino es una placa que recoge informacin del entorno por medio de sensores (pulsadores,
sensores de temperatura, de presencia, de luminosidad, micrfonos), conectados a sus pines
(conectores) de entrada, controlando de este modo cualquier cosa que nosotros queramos
conectar a los pines de salida, ya sean luces, motores y otros actuadores.

pines?
No son ms que conectores. Por ejemplo una Arduino Uno tiene 14 pines digitales y seis
analgicos, aunque estos ltimos se pueden configurar tambin como digitales.
Ahora es cuando toca recordar que una seal analgica es aquella cuyo valor vara entre un
mnimo y un mximo. Por ejemplo, la medida de la temperatura, de la intensidad de luz, etc
Una seal digital es ms bsica, y su valor slo puede ser encendido (HIGH en Arduino) o
apagado (LOW). Dependiendo de lo que queramos medir y de las caractersticas de nuestro
sensor, usaremos una entrada digital o analgica.
Adems de stos nuestra placa tiene otra serie de pines, como son:
IOREF, un duplicado de +5v
Reset, con el que podemos controlar un reset de nuestra placa
3,3 v, salida positiva de voltaje.
5v, salida positiva de voltaje.
GND, pin de tierra, el negativo de nuestros montajes.
Vin, nos permite una entrada de alimentacin externa

Cada uno de ellos se puede configurar como entrada o salida con una sencilla instruccin. Tan
simple como poniendo pinMode (13, OUTPUT) estaremos configurando el pin 13 como
SALIDA.

Arduino en el aula de tecnologas. Wladimir Lpez de Zamora Herrero 4

Qu lenguaje usamos para programar?
Para programar el microcontrolador en la placa Arduino en el aula usaremos el lenguaje
lenguaje de programacin Arduino (basado en Wiring) y el entorno de desarrollo Arduino
(basado en Processing). Los proyectos hechos con Arduino pueden ejecutarse sin necesidad
de conectar a un ordenador, si bien tienen la posibilidad de hacerlo y comunicar con diferentes
tipos de software (p.ej. Flash, Processing, MaxMSP. En educacin tambin se usa mucho el
SCRATCH, concretamente una versin especfica llamada S4A scratch for Arduino- un
entorno grfico muy intuitivo.

Las placas
Existen infinidad de tipos de placas. Cada da salen nuevas. Por comodidad, respeto a los
creadores y por ser una de las ms extendidas nosotros vamos a usar la ARDUINO UNO rev3.
Las placas pueden ser hechas a mano o compradas montadas de fbrica; el software
puede ser descargado de forma gratuita. Los ficheros de diseo de referencia (CAD)
estn disponibles bajo una licencia abierta, as pues eres libre de adaptarlos a tus necesidades.
El equipo Arduino (Arduino team) es: Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca
Martino, y David Mellis.




Arduino en el aula de tecnologas. Wladimir Lpez de Zamora Herrero 5

Qu podemos hacer con Arduino?

Una de las caractersticas ms interesantes de Arduino es que es lo suficientemente intuitivo
como para poder empezar a trabajar en proyectos sencillos, pero a la vez nos permite
incrementar la complejidad de los mismos de manera prcticamente infinita. Con Arduino
podemos automatizar cualquier proyecto en el aula, hacer robots sencillos, manejar la
informacin que genera cualquier sensor. Pon proyectos de arduino en Youtube y te dars
cuenta de las infinitas posibilidades de Arduino.






Por qu Arduino?

Las razones por las que utilizar Arduino pueden resumirse en:

1. Es una plataforma de Hardware y software libre.

2. Permite usarse bajo Windows, Mac OS x, o Linux.

3. No precisa de grandes conocimientos de electrnica.

4. Es econmico.

5. Existe una inmensa y creciente comunidad en internet que nos ofrece infinidad de
programas, ejemplos, proyectos, foros, ayuda.


Arduino en el aula de tecnologas. Wladimir Lpez de Zamora Herrero 6

Qu necesitamos para trabajar con Arduino?

Para empezar a trabajar con Arduino slo necesitamos una de las distintas placas Arduino que
existen, un ordenador con Windows, Mac OS X, o Linux, un cable y un cable usb que los
conecte. Ah, y dedicarle unas cuantas horas



1. Descarga la IDE de Arduino. Para ello visita la pgina de descargas. Ya empezamos
qu es eso del IDE? El IDE es nuestro interface con el que nos comunicaremos con
nuestra placa. Lo utilizaremos para crear nuestros programas, depurarlos, compilarlos
para que los entienda nuestra placa, y enviarlos a la misma. Tiene un aspecto ms o
menos as.






2. Conecta la placa Arduino a tu ordenador usando el cable USB. El LED verde
indicador de la alimentacin (nombrado como PWR en la placa) debera quedar
encendido a partir de ese momento.

3. Instala los drivers. Cuando conectas la placa, Windows debera inicializar la
instalacin de los drivers (siempre y cuando no hayas utilizado ese ordenador con una
placa Arduino anteriormente).
Arduino en el aula de tecnologas. Wladimir Lpez de Zamora Herrero 7

En Windows Vista y Windows 7, los drivers deberan descargarse e instalarse
automticamente.
En Windows XP, se abrir el dilogo de instalacin de Nuevo Hardware:
Cuando te pregunten: Puede Windows conectarse a Windows Update para buscar el
software? selecciona No, no esta vez. Haz click en Siguiente.
Selecciona Instalar desde una lista o localizacin especfica (Avanzado) haz click
en Siguiente.
Asegrate que Buscar los mejores drivers en estas localizaciones est seleccionado;
deselecciona Buscar en medios removibles; selecciona Incluye esta localizacin en la
bsqueda y navega al directorio drivers/FTDI USB Drivers dentro de la carpeta de Arduino
que has descomprimido previamente. (La versin ms reciente de los drivers se puede
encontrar en la pgina web del fabricante del chip FTDI.) Haz click en Siguiente.
El asistente de instalacin buscar los drivers y te anunciar que encontr un "USB Serial
Converter" (se traduce por Conversor USB-Serie). Haz click en Finalizar.
El asistente de instalacin de hardware volver a iniciarse. Repite los mismos pasos que
antes y selecciona la misma carpeta de instalacin de los drivers. Esta vez el sistema
encontrar un "USB Serial Port" (o Puerto USB-Serie).
Puedes comprobar que los drivers se han instalado correctamente abriendo la carpeta del
Administrador del Dispositivos, en el grupo Dispositivos del panel de control del sistema.
Busca "USB Serial Port" (o Puerto USB-Serie) en la seccin de puertos; esa es tu placa
Arduino.

Abrimos nuestro IDE. Lo primero que tenemos que hacer es una sencilla configuracin que
supone elegir nuestra placa y el puerto a la que la tenemos conectada. Para ello vamos al
men HERRAMIENTAS del que nos interesan dos pestaas, la pestaa TARJETA, en la que
despus de desplegarla elegiremos la nuestra, y la pestaa PUERTO SERIAL, en la que
seleccionaremos el puerto al que tenemos nuestra placa. Si no sabemos cul es, lo
comprobaremos en la pantalla que vemos en la imagen de arriba.


Arduino en el aula de tecnologas. Wladimir Lpez de Zamora Herrero

Nuestra primera prctica con ARDUINO.


Vamos a cargar nuestro primer programa con Arduino. Lo encontraremos en
/ejemplos/basics/blink

El programa enciende intermitentemente un LED conectado directamente a la placa de
Arduino. No necesitaremos protoboard en esta ocasin.

La estructura de todos los programas Arduino es igual.

// Enciende un LED un segundo y apgalo otro segundo repetidamente.

/* Aqu van comentarios iniciales del autor. Todo lo que vaya detrs desea barra asterisco no participa en el programa,
por tanto no es cargado en la placa. Debemos cerrarlo con un */

/* parpadeo

*/
void setup() { // poniendo una doble barra podemos incluir explicaciones. En este caso arrancamos el
setup de nuestro programa, es decir, las condiciones previas que servirn para todo el
programa y que slo se cargarn una vez

pinMode (13, OUTPUT); // definimos el pin 13 como SALIDA. Siempre hay que decirle a nuestra placa si un pin lo
hemos definido como OUTPUT o INPUT. siempre debemos terminar la instruccin con un
; !!!
} // como abrimos llaves para definir el setup, debemos cerrarlas!!

// a partir de aqu creamos el bloque LOOP, el "alma" del programa. Este bloque se
reproducir una y otra vez mientras no digamos lo contrario

void loop() {
digitalWrite(13, HIGH); // manda una seal HIGH (encendido, +5v) digital al pin 13. El pin 13 es el nico de
nuestra placa arduino que lleva una resistencia integrada de forma que podemos insertar
un LED directamente. No utilices otro pin, ya que mandars 5v al LED y te lo cargars.
delay(1000); // delay significa "espera". Con delay 1000 esperaremos 1000 milisegundos! cuidado!
digitalWrite(13, LOW); // manda una seal LOW (apagado) digital al pin 13
delay(1000); // vuelve a esperar un segundo

// a partir de aqu, mientras no le digamos lo contrario nuestro programa se ejecutar
infinitamente, porque el bucle no recibe ninguna orden de stop
} // igual que antes, toda llave abierta hay que cerrarla. Fin del programa. Prubame


A partir de aqu es sencillo manipular el sketch a nuestro gusto.
1. Cambia el intervalo de tiempo a 0,25 seg
2. Cambia slo el de apagado.
3. Haz secuencias llamativas.

Vamos a montar lo mismo en una protoboard. Esto nos permitir incluir ms elementos en
nuestra prctica. Recuerda que en una protoboard, los pines van conectados internamente as:








Arduino en el aula de tecnologas. Wladimir Lpez de Zamora Herrero !

Para usar los leds los montaremos con una resistencia en serie de entre 220 y 270. Algo
as



Las salidas digitales 7, 8 y 9 nos darn el +5v, mientras que cerraremos cada circuito con el pin
GND de nuestra placa Arduino.

A partir de aqu ya debes ser capaz de controlar los led. Te echo una mano al principio, pero no
te acostumbres. Intenta entender el sketch, ahora llevar menos explicaciones.

/* parpadeo de tres leds
*/

void setup() //definimos parmetros iniciales

pinMode (7, OUTPUT); // definimos los pines 7, 8 y 9 como SALIDAS
pinMode (8, OUTPUT);
pinMode (9, OUTPUT);
}

void loop() {
digitalWrite(7, HIGH); // mandamos a los pines 7, 8 y 9 la seal digital
digitalWrite(8, HIGH); HIGH,encendido
digitalWrite(9, HIGH);
delay(1000); // esperamos 1000 milisegundos, siii, un segundo...

digitalWrite(7, LOW); // mandamos a los pines 7, 8 y 9 la seal digital
digitalWrite(8, LOW); LOW, apagado
digitalWrite(9, LOW);
delay(1000); // volvemos a esperar un segundo, y ejecutamos
de nuevo el loop
} // importante, cerramos el bucle

has entendido qu hace cada instruccin? Perfecto! Si es as y has sido capaz de encender y
apagar los tres leds, ahora toca jugar. Puedes hacer combinaciones infinitas con los leds
encendidos o apagados y con los intervalos de tiempo.

1. Prueba a simular un semforo.
2. Haz las luces del coche fantstico.
3. Monta ms leds y haz combinaciones llamativas. No te olvides de las resistencias!


Entradas.

Al encender un led estamos usando SALIDAS, es decir, nuestra placa est provocando algo en
el exterior. Mediante ellas podemos encender y apagar un led, controlar el giro de un motor,
escribir en una pantalla, activar un zumbador, y todo lo que se te ocurra.
Arduino nos permite adems configurar los pines como ENTRADAS. De est manera lo que
estaremos haciendo es obtener informacin del entorno.
La forma ms elemental de interactuar con l es mediante un pulsador.
Arduino en el aula de tecnologas. Wladimir Lpez de Zamora Herrero "#

Sera un error comparar esto que acabamos de decir con un circuito elctrico elemental
mediante el cual encendemos un led al activar un pulsador. Sin caer en fantasmadas, nuestro
proceso es mucho ms complejo. A diferencia de ese circuito, en el que el pulsador es un
simple grifo que deja pasar o no electrones capaces de encender a su paso un led, en
nuestro proceso sucede:
1. Leemos el valor de una entrada. Esta puede ser:
a. DIGITAL: esperamos valores de encendido/apagado, en nuestro lenguaje
HIGH/LOW. Sera el caso por ejemplo del pulsador.
b. ANALGICA. El valor medido vara entre un valor cero y un mximo,
normalmente 255. Podra ser el valor que obtenemos al medir la luz con un
LDR.
2. En funcin del valor que obtenemos, ordenamos una accin.
No ves la diferencia? . Hemos elegido la forma de entrada y salida ms sencillas, pero a
partir de aqu podemos complicarnos la vida todo lo que queramos. Vamos a montar la
prctica. Usaremos el sketch que viene en ejemplos/digital llamado BUTTON. Lo cargamos y
aparece en nuestro IDE as:
*/ Botn. Enciende y apaga un LED conectado al pin 13 cuando apretamos un
pulsador conectado al pin 2 */
const int buttonPin = 2; // indica el pin del pulsador
const int ledPin = 13; // indica el pin del led
int buttonState = 0; //al poner solo int, el estado del botn, buttonState, ser una variable con valor incicial 0.

void setup() {
pinMode(ledPin, OUTPUT); // pin del led como SALIDA
pinMode(butttonPin, INPUT); // pin del botn como ENTRADA
}
void loop()
buttonState = digitalRead(buttonPin); // lee el valor de la variable estado del botn
if (buttonState == HIGH) { // SI la variable digital, es HIGH...:
digitalWrite(ledPin, HIGH); // enciende el pin
}
else { // en otro caso...:
digitalWrite(ledPin, LOW); // apaga el LED
}
}
fcil? Seguro que si.
El esquema es del montaje es el siguiente:
Arduino en el aula de tecnologas. Wladimir Lpez de Zamora Herrero ""


Ahora para sacarle partido a nuestros avances, podramos cambiar tanto las entradas como las
salidas. En lugar de poner un sencillo pulsador vamos a poner ahora un SENSOR DE LUZ.
Para ello usaremos un LDR, Light Dependent Resistor, que para los que nos llevamos regular
con el ingls no es ms que una resistencia cuyo valor vara con la luz que incide sobre ella.
Con poca luz, su resistencia es muy alta, y va bajando conforme lo iluminamos

Midiendo la luz.

Esta vez no queremos obtener valores digitales SI/NO, sino que queremos medir el valor de la
luz que llega. Por eso usaremos entradas ANALGICAS. Las podemos encontrar en nuestra
placa como A0, A1
El esquema del montaje ser muy parecido al montaje bsico del pulsador (que para eso lo
hemos explicado)

Como ves, la principal diferencia es que conectamos el LDR a un pin analgico.
Adems vamos a hacer otra cosa interesante con este nuevo sketch. Vamos a visualizar los
valores que obtengamos del sensor en nuestro ordenador a travs del puerto USB. Para ello
usaremos el MONITOR SERIAL del men HERRAMIENTAS de nuestro IDE. Si, es bastante
feo, pero es el que hay. Las instrucciones bsicas que debemos conocer del monitor son:
Serial.begin(9600) inicia la comunicacin con el monitor a 9600 bits/seg
Serial.print(Hola Mundo!) muestra una lnea con Hola mundo
Arduino en el aula de tecnologas. Wladimir Lpez de Zamora Herrero "2

Serial.println(Valor) muestra en la misma lnea el valor de una variable
Con esto nos apaamos..., de momento.
Vamos con el ejemplo:

// Midiendo la cantidad de luz con un LDR

int LDR_pin = 0; // vamos a leer los valores del pin 0

int LDR_val = 0; // definimos la VARIABLE LDR_val y le damos el valor inicial = 0

void setup() {

Serial.begin(9600); // iniciamos el monitor serial.

void loop()

{
LDR_val = analogRead(LDR_pin); // leemos el valor que da el LDR.

Serial.print("LDR = "); // Imprimimos el texto LRD= en una lnea del monitor

Serial.println(LDR_val); // en la misma lnea, a continuacin, el valor ledo por el sensor

delay(1000); // Paro 1 segundo. Vuelvo al bucle, mido, imprimo, espero.bucle
}

Genial, ya sabemos presentar en nuestro ordenador datos medidos con nuestra placa arduino.
Ahora, adems de leerlos y presentarlos, vamos a procesarlos.
Lo inmediato que se nos ocurre a todos es que, a partir de un determinado valor de lectura,
hagamos algo. Por ejemplo podramos encender automticamente un led cuando el valor de la
luz sea inferior al que nosotros fijemos.
Usando el mismo ejemplo anterior, vamos a aadir unas lneas de cdigo (en verde). Slo
comentaremos las lneas aadidas.
// Encendido automtico de un LED en funcin de la luz

int LED_pin=13; //conectamos el LED en el pin 13
int LDR_pin = 0;
int LDR_val = 0;

void setup() {

pinMode(LED_pin,OUTPUT); // LED del pin configurado como SALIDA
Serial .begin(9600);
}

void loop()
{
LDR_val = analogRead(LDR_pin);
Serial.print("LDR = ");
Serial.println(LDR_val);

if (LDR_val>=20) // Si hay luz, valor mayor de 20:
{
digitalWrite(LED_pin, LOW); // Apago el LED
}
else if (LDR_val<20) // Si no hay luz, si su valor es menor que 20
{
digitalWrite(LED_pin, HIGH); // Encendemos el LED
delay(1000);
}
}

Arduino en el aula de tecnologas. Wladimir Lpez de Zamora Herrero "3

El sensor de temperatura.
Si hemos puesto un sensor de luz y nos ha funcionado, lo mismo podemos hacer con uno de
temperatura. Tambin est compuesto por una resistencia variable que variar su valor en
funcin de la temperatura. Tambin podremos monitorizar los valores, procesar los datos
Todo eso corre de tu cuenta A otra cosa!

Libreras.
Las libreras son pequeos programas que nos permiten usar fcilmente elementos complejos
que conectamos a nuestra placa. Arduino ya cuenta con muchas de ellas. Las puedes
encontrar en el directorio libraries, y aparecen en el menu ejemplos.
Cuando queramos conectar algo ms xtico que una LDR, como un sensor complejo, una
pantalla lcd o una controladora de motores, probablemente tengamos que instalar tambin una
librera para controlarlo.
El procedimiento es sencillo. Lo primero es obtener la biblioteca del componente. Si lo hemos
adquirido en una tienda seria, y hay muchas, normalmente lo podremos descargar desde la
hoja de descripcin del producto, junto con la datasheet del mismo. Tambin las podemos
descargar de Github o de Arduino Playground.
Una vez descargado el archivo zip, lo descomprimimos en la carpeta libraries de nuestro
Arduino, nos aseguramos que la carpeta contenga los caracteres correctos y reiniciamos el
IDE. Cuando ahora mi programa llame al principio a la librera que hemos instalado con la
instruccin #include, veremos que esta llamada aparece en naranja, seal de que la ha
reconocido correctamente.
#include <Wire.h>
ya te dije que estaba fcil

Sensores de tres y cuatro pines.
Hasta el momento hemos trabajado con sensores con dos patillas en los que lo que se meda
en la mayora de los casos era variaciones de resistencia.
Los sensores de 3 patillas cuentan con dos, Vcc y GND, que se encargan de alimentar el
sensor y otra S que recibe lo que conocemos por seal. Si el sensor tiene cuatro patillas, una
de ellas se encarga de la emisin de seal y la otra de la recepcin.
Arduino en el aula de tecnologas. Wladimir Lpez de Zamora Herrero "4

El esquema general de este tipo de sensores es el siguiente:
Con cuatro patillas:

Para los de tres patillas,

Con resistencia

Estas resistencias llamadas pull-down y pull-up estn conectadas a GND o a Vcc y su misin
es entre otras hacer que nuestro micro no confunda una entrada con un cero o un uno lgico,
con lo que nos aseguramos un correcto tratamiento de la lectura.

Arduino en el aula de tecnologas. Wladimir Lpez de Zamora Herrero "5

Sensores de presencia, humedad, sonido
Una vez que ya sabemos cmo conectar los sensores de tres y cuatro patillas. Recuerda
instalar la librera si es necesario.
Un ejemplo de un detector de presencia podra ser este
int ledPin = 13; // pin donde conectamos el LED
int inputPin=2; // pin digital del sensor PIR
int movimiento = LOW; // variable movimiento. Empieza como LOW
int val = 0; // variable del pin. Empieza como cero
int calibrationTime=30; // valor que consultamos en la datasheet del sensor
void setup() {
pinMode(ledPin, OUTPUT); // definimos pinLED, y decimos que es una salida
pinMode(inputPin, INPUT); // definimos inputPin, u decimos que es una entrada
Serial.begin(9600); // activamos el monitor serial
Serial.print("calibrando... ");
for(int i = 0; i < calibrationTime; i++){
Serial.print(".");
digitalWrite(ledPin, HIGH); // creamos un parpadeo de LED durante el calibrado
delay(50);
digitalWrite(ledPin, LOW);
delay(1000);
}
Serial.println(" Sensor Calibrado"); // ya hemos calibrado (hemos llegado a 30 seg)
delay(50);
}

void loop(){
val = digitalRead(inputPin); // leemos si hay movimiento
if (val == HIGH) { // si lo hay
digitalWrite(ledPin, HIGH); // encendemos el LED
if (movimiento == LOW) {

Serial.println("Movimiento detectado!");
// slo imprimimos en caso de cambio
movimiento = HIGH;
}
} else {
Arduino en el aula de tecnologas. Wladimir Lpez de Zamora Herrero "6

digitalWrite(ledPin, LOW); // apagamos el LED
if (movimiento == HIGH){
Serial.println("No hay movimiento!");
movimiento = LOW;
}
}
}

Controlando motores con el TB6612FNG
SI todo marcha bien, ya sabemos gestionar y procesar las entradas de nuestro proyecto.
Adems, hemos visualizado sus valores en el monitor y hemos gestionado salidas simples
como leds o zumbadores.
Sin embargo, en la mayora de los proyectos que hagamos en el taller, tarde o temprano
aparecer un elemento que nos gusta ms: los motores. Con ellos abrimos puertas,
accionamos norias, elevamos ascensores. Sera una pasada que nuestra placa Arduino
pudiera manejarlos, no? Pues la respuesta es obvia, Yes, you can!. Vamos a ver cmo lo
podemos hacer.
Como ya hemos dicho, las salidas de nuestra placa nos proporcionan una intensidad baja. Esa
intensidad se queda corta a la hora de accionar muchos elementos, como por ejemplo nuestros
querisdos motores de cc siii, corriente continua, tema 4 de Tercero ESO...-.
Podemos amplificar fcilmente esta seal por medio de un transistor, pero vamos a aprender a
usar un driver que nos ofrece ms posibilidades. Se trata del TB6612FNG.
El driver TB6612FNG nos permite controlar dos motores basndose en un doble puente-H. Con
l podemos fijar el sentido de giro e incluso gracias a una salida tipo PWM ajustar la velocidad
de giro. Recuerda que las salidas PWM son aquellas que delante del su nmero tienen el
smbolo ~.
El aspecto que presenta el fabricado por POLOLU es el siguiente:

A pesar de su aspecto, la conexin es sencilla. Como siempre, lo primero que deberamos
hacer es ir al datasheet del componente. All encontraremos todos los datos que nos hacen
falta. Como se te nota poco motivado, vamos a ir conectando cables y vers que no era tan
complicado. Empezando por la izquierda:
Arduino en el aula de tecnologas. Wladimir Lpez de Zamora Herrero "7

GND y VCC: es la alimentacin de micro. Podemos sacarla de un GND y del +5V de la
Arduino, o de otro sitio siempre que est entre 2.5 y 13v.
AO1 y AO2: aqu conectaremos los dos bornes del motor A.
BO1 y BO2: o, de output, salida, b del motor y 1 y 2 de cada una de ellas. Salidas para
el motor B.
Vmot y GND: alimentacin externa para los motores, bateras, fuente de
alimentacin

Ya llevamos 8 pines y no tenemos bajas, seguimos con la parte derecha:
PWMA: controla la velocidad por medio de una salida digital con PWM (modulacin por
ancho de pulsos) del motor A. Recuerda que tiene que tener el smbolo ~ delante.
AIN2 y AIN1: para controlar el sentido de giro de un motor necesitamos dos salidas
digitales de la placa. Usaremos dos cualquiera para el motor A.
STBY, standby: ponindolo en LOW conseguimos parar los motores. Lo conectaremos
a otra salida digital.
BIN1 y BIN2, in, entrada, b, del motor B, 1 y 2, cada una de las dos. Las
conectaremos a dos salidas digitales de la placa.
PWMB: control de velocidad del motor B. 0 parado, 255 velocidad mxima.

Ya lo tenemos conectado. Vamos con el cdigo.
//CONTROLANDO MOTORES CC CON UN DRIVER 6612
//motor A conectado a A01y A02
//motor B conectado a B01 y B02
int STBY = 10; // definimos el pin de standby
//para el motor A
int PWMA = 3; // control de velocidad
int AIN1 = 9; // direccin
int AIN2 = 8; // direccin
// para el motor B
int PWMB = 5; // control de velocidad
int BIN1 = 11; // direccin
int BIN2 = 12; // direccin
void setup(){
pinMode(STBY, OUTPUT); // definimos esos pines como salidas
pinMode(PWMA, OUTPUT);
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(PWMB, OUTPUT);
pinMode(BIN1, OUTPUT);
pinMode(BIN2, OUTPUT);
}

void loop(){
Arduino en el aula de tecnologas. Wladimir Lpez de Zamora Herrero "

mover(1, 255, 1); // acciona el motor 1, velocidad mxima, adelante
mover(2, 255, 1); // acciona el motor 2, velocidad mxima, adelante
delay(1000); // durante un segundo
stop(); // para los motores
delay(1000); // espera 1 segundo
mover(1, 128, 0); // acciona el motor 1, velocidad media , atrs
mover(2, 128, 0); // acciona el motor 2, velocidad media , atrs
delay(1000);
stop();
delay(1000);
}
void mover(int motor, int velocidad, int direccion){
//Vamos a definir la funcin mover, que va a acciona un motor, fijar su velocidad y el sentido de giro. Definimos:
//motor: llamaremos 1 al motor A, y 2 al motor B
//velocidad: desde 0 a 255
//direccin: 0 para el giro en sentido horario, 1 sentido antihorario
digitalWrite(STBY, HIGH); //deshabilitar standby para mover
boolean inPin1 = LOW; // creamos la variable booleana (solo puede ser HIGH/LOW) inpin1
boolean inPin2 = HIGH; // y le asignamos el valor LOW. A inPin2 le damos el valor HIGH
if(direccion == 1){
inPin1 = HIGH;
inPin2 = LOW;
}
if(motor == 1){
digitalWrite(AIN1, inPin1);
digitalWrite(AIN2, inPin2);
analogWrite(PWMA, velocidad);
}else{
digitalWrite(BIN1, inPin1);
digitalWrite(BIN2, inPin2);
analogWrite(PWMB, velocidad);
}
}
void stop(){ //ahora si, accionamos el standby
digitalWrite(STBY, LOW);
}

Arduino en el aula de tecnologas. Wladimir Lpez de Zamora Herrero "!

Lo que nosotros tendremos que hacer ser variar el loop y poner las condiciones que a
nosotros nos interese.
El esquema con el mismo componente pero de Sparkfun es el siguiente:




Creo que con estas nociones puedes hacer prcticamente todo en el taller de tecnologas. Se
trata ahora de que sepas combinar, modificar, utilizar toda la informacin que aqu se ha
recopilado.
Disfruta!









FUENTES:
http://www.arduino.cc
http://arduteka.com
http://www.opiron.com

También podría gustarte