Documente Academic
Documente Profesional
Documente Cultură
Curso de Arduino 1
Los Fundamentos
[Type text]
[Type text]
1. Definiciones Básicas.
Es Importante conocer los elementos básicos de Electrónica con los que vamos a
interactuar a lo largo de este taller, entre ellos tenemos:
iv) Ley de Ohm : La fórmula que se conoce como ley de Ohm indica que la
resistencia varía con la corriente
[Type text]
[Type text]
2. Dispositivos Electrónicos
Entre los más comunes tenemos
b. Diodo Led: Diodo que emite luz cuando se polariza directamente (patilla larga
al +). Estos diodos funcionan con tensiones menores de 2V por lo que es necesario
colocar una resistencia en serie con ellos cuando se conectan directamente a una
pila de tensión mayor. La pata más larga es el que esta conectado al positivo.
[Type text]
[Type text]
3. Funcionamiento de un Microcontrolador.
Un Microcontrolador es el elemento que nos permite manipular los niveles de
Voltaje en sus puertos, estos niveles de Voltaje que se van a manipular pueden ser
Digitales (Bits) o Analógicos.
Observación 1: Un Bit es un estado Lógico que puede tener solamente 2 valores, estos
valores son el “1” (uno) o el “0” (cero).
[Type text]
[Type text]
Pines Digitales: En total 14, desde el Pin 0 hasta el Pin 13. Considerar que el
Pin 0 y 1 los cuales son Seriales también se pueden usar como Pines de
entrada/salida Digital, sin embargo por comodidad conviene usarlo solo en último
recurso ya que son pines por default destinados a usarlo en la comunicación con la
PC.
[Type text]
[Type text]
[Type text]
[Type text]
void setup () {
}
void loop () {
}
[Type text]
[Type text]
Es importante en este punto aclarar que el Arduino Maneja Niveles de Voltaje, sin
embargo en Programación nosotros manejamos lógica digital (0 y 1) por lo que la siguiente
equivalencia es usada en la interacción de la parte física con la parte lógica.
En Funciones digitales tenemos las siguientes, considerar que se debe respetar las
mayúsculas y minúsculas.
pinMode(#pin, valor);
o #pin del arduino que se va a configurar, varia de 0 a 13.
o Valor que se va a configurar, puede ser OUTPUT que significa Salida o
INPUT que significa Entrada
digitalWrite(#pin, valor);
o #pin del arduino que se va a colocar su valor, varia de 0 a 13.
o Valor que se va a colocar, puede ser HIGH, el cual significa 1 o LOW, el cual
significa 0.
digitalRead(#pin);
o #pin del arduino que se va a leer su estado, esto nos va a devolver un
HIGH o un LOW.
delay(t);
o tiempo “t” esta expresado en milisegundos, indica la cantidad de tiempo
que el programa quedara en stop sin hacer nada.
[Type text]
[Type text]
Este será capaz de comunicarse con cualquier otro dispositivo que también
soporte comunicación Serial, considerar que el otro dispositivo al soportar comunicación
Serial también debe tener 2 Hilos, uno para Tx y otro Rx. El conexionado de 2 dispositivos
que soportan Serial debe ser la Tx de uno con la Rx de otro, la siguiente figura muestra el
detalle.
[Type text]
[Type text]
Ejemplo03
Ejemplo04
Hacer un contador de 0 hacia adelante, que vaya incrementando la cuenta cada
500ms y los datos mostrarlos en el Monitor Serial. No hay esquemático en este ejemplo.
[Type text]
[Type text]
8. Uso de Variables
Las variables se utilizan para guardar información de manera temporal, por ejemplo si
tenemos el numero 98 y deseamos almacenarlo en algún lugar, este lugar donde se
almacenara se conoce como variable, las variables tienen un tipo dependiendo de la
información que van a almacenar, por ejemplo no es lo mismo almacenar un “Hola” que el
numero 234, tampoco es lo mismo almacenar la letra ‘H’ que el numero 2.84.
Declaración de Variables
o tipoVariable nombreVariable;
o tipoVariable nombreVariable = valorInicial;
En ambos casos uno define que nombre colocar a la variable, los tipos de Variables
se basan en el siguiente cuadro.
[Type text]
[Type text]
[Type text]
[Type text]
Ejemplo11
Conectar el Servomotor al Arduino siguiendo el esquemático, hacer que se
posicione en 10grados y luego de 3 segundos en 120 grados, luego en otros 3 segundos
regrese a su posición inicial, asi en un bucle infinito.
Ejemplo12
Variar la posición del Servo de 0 a 180 grados con el eje con un eje del Joystick,
usar el siguiente esquemático.
[Type text]
[Type text]
[Type text]
[Type text]
10. Motores
Los motores eléctricos son la mejor forma de convertir energía eléctrica (Voltaje y
corriente) en energía mecánica (Torque y velocidad) a través de un movimiento rotatorio,
dado lo simple y útil que son se pueden encontrar en diferentes tamaños y de diferentes tipos
como los servomotores, Motores DC, Motores Paso a paso, etc. En esta oportunidad
hablaremos de los Motores DC.
8.1 Motores DC
Son motores que giran una determinada a una determinada velocidad aplicando en sus
terminales un voltaje definido, tiene 2 terminales con polarización (positivo y negativo) los
cuales al ser energizado (aplicarles una diferencia de potencial) hacen comenzar la rotación. La
diferencia de voltaje a aplicar en sus terminales dependerá del tipo de motor, por lo general
un motor DC tiene un rango de aceptación de voltaje en el cual funcionara, por ejemplo es
común tener motores DC que aceptan voltajes de 5V hasta 12V.
[Type text]
[Type text]
Para controlar el sentido de giro lo haremos por polarización en sus terminales, cuando
conectemos en el 1er terminal 12V y en el otro 0V (GND) girara en un sentido digamos
horario, al invertir este voltaje y colocar en el 1er terminal 0V (GND) y 12V en el otro terminal
girara en sentido anti horario, entonces por polarización tenemos el control de giro del motor.
El esquema dado no es el correcto por las limitaciones de voltaje y corriente, los pines
digitales de Arduino trabajan solamente con 0V (GND) y 5V y máximo cada pin puede
brindar 40mA mientras que la gran mayoría de motores trabaja con valores alrededores de
12V y consumen mínimo 500mA, si lo conectamos de esa manera estaríamos quemando el
microcontrolador. Para resolver este se usa un modulo llamado Puente de H.
[Type text]
[Type text]
8.4 Puente H
El Puente de H se denomina al circuito electrónico que permite controlar el giro de un
motor DC, generalmente está constituido de una serie de transistores, como su nombre lo
indica el puente de H transforma los niveles lógicos (0 y 1) que recibe y los entrega en otro
extremo con valores de voltaje y corriente proveniente de una fuente externa y no de la
entrada.
[Type text]
[Type text]
Ejemplo 01:
Hace girar un motor por 3 segundos en un sentido, luego detenerlo por 1 segundo, luego
hacerlo girar en sentido opuesto al primero por 3 segundos y después detenerlo por 1 segundo,
repetir este proceso infinitamente, usar el esquemático propuesto.
[Type text]
[Type text]
[Type text]
[Type text]
1. PWM
La modulación por ancho de pulso o PWM consiste en generar una señal Periódica cuyo
periodo denominemos “T”, en donde un tiempo dado “Ton” estará en estado Alto, el resto del
tiempo estará en estado bajo “Toff”.
La característica del PWM es que se puede variar el valor de Ton desde un mínimo
que es 0 hasta un máximo que es T, es decir: 0 <= Ton <= T.
Arduino posee una función de generación de PWM (valido en los pines 3,5,6,9,10 y
11), cuyo Periodo T es de aproximadamente 2ms.
[Type text]
[Type text]
Ejemplo 02:
Ejemplo 03:
Conectar según el esquemático 2 motores al driver, usando una lógica adecuada en
sentidos de giro de cada motor según la posición del chassis, hacer que el chassis avance por 3
segundos, luego por 1 segundo se queda quieto, luego por 3 segundos gire a la derecha, luego por
1 segundo se queda quiero, luego por 3 segundos gira a la izquierda, luego por 1 segundo se
queda quieto, luego por 3 segundos retroceda, hacer esto infinitamente.
[Type text]
[Type text]
2. El Modulo Bluetooth
El Modulo Bluetooth es un dispositivo puente entre señal Bluetooth y comunicación Serial,
posee 4 pines de los cuales 2 son de fuente y 2 de comunicación Serial.
[Type text]
[Type text]
Dado que el Bluetooth es Serial debería comunicarse con el Arduino en los pines 0
y 1, sin embargo no conviene dado que por estos pines el Arduino se comunica a la PC, por
consecuencia conviene usar un Serial por Software, es decir una comunicación Serial
implementada vía programa, el Serial por software utiliza una librería llamada
SoftwareSerial el cual permite crear un objeto, este objeto creado tiene las mismas
funciones que el Serial por hardware, aquí se describen los elementos básicos
Librería: SoftwareSerial.h
Objeto: SoftwareSerial sw(rxPin, txPin); //sw es el nombre del objeto, es escogido por el
que desarrolla el programa.
Funciones:
Ejemplo04:
Descargar el software Bluetooth Terminal indicado en clase e instalarlo en su Móvil o
Tablet, luego siguiendo el siguiente esquemático, leer todos los valores que ingresen por el
softwareSerial (es decir que vengan del Bluetooth) e imprimirlos en el Monitor Serial. Conectarse
desde el móvil o Tablet con el programa descargado y desde ahí enviar letras al Arduino.
Ejemplo05
Bajar el aplicativo del PlayStore “Bluetooth RC Controller” e instalarlo en su Movil o Tablet,
usando el esquemático y mismo programa que en el ejemplo04, verificar que letras envía el
aplicativo con las flechas avanzar, atrás, derecha e Izquierda, tomar nota de esas letras.
[Type text]
[Type text]
3. Control de Flujo:
En Arduino existen condicionales que se usan para tomar de decisiones en ejecución de
bloques de códigos, estos control de flujo evalúan una condición la cual se puede cumplir o no.
1 Formatos de Condición
Entre los controles de flujo, tenemos la condicional if, básicamente evalúa una condición,
de ser verdad esta ejecuta un bloque de código encerrado entre llaves, si la condición no
es verdad entonces no ejecuta el bloque de código.
if(condición)
{
//sentencias a ejecutar si la condición es verdadera
}
if(condición){
//sentencia a ejecutar si la condición es verdadera
}else{
//sentencias a ejecutar si la condición es falsa
}
if(condicion1){
}else if(condición2){
}else if(condicion3){
}else{
[Type text]
[Type text]
Ejemplo06
Usando el siguiente esquemático, controlar con los botones del programa “Bluetooth RC
Controller” el chassis móvil, controlar su avanzado, derecha, izquierda y retroceso, puede
considerar que si no se presiona ningún botón el móvil quede detenido. Haga diversas pruebas.
[Type text]