Partes del arduino
LEDS en Arduino
Estructura
La estructura bsica del lenguaje de programacin Arduino es
bastante simple y se organiza
en al menos dos partes o funciones que encierran bloques de
declaraciones.
void setup()
{
statements;
}
void loop()
{
statements;
}
Ambas funciones son requeridas para que el programa funcione.
setup()
La funcin setup debera contener la declaracin
de cualquier variable al comienzo del programa.
Es la primera funcin a ejecutar en el programa,
es ejecutada una vez y es usada para asignar
pinMode o inicializar las comunicaciones serie.
loop()
La funcin loop se ejecuta a continuacin e incluye
el cdigo que se ejecuta contnuamente leyendo entradas, activando salidas, etc. Esta
funcin es el ncleo de todos los programas
Arduino
y hace la mayor parte del trabajo.
Tipos de variables
byte
Byte almacena un valor numrico de 8 bits sin puntos decimales. Tienen un rango
de 0 a 255.
byte someVariable = 180; //declara 'someVariable' como un tipo byte
int
Enteros son los tipos de datos primarios para almacenamiento de nmeros sin
puntos decimales
y almacenan un valor de 16 bits con un rango de -32,768 a 32,767.
int someVariable = 1500; //declara 'someVariable' como tipo int
long
Tipo de datos de tamao extendido para enteros largos, sin puntos decimales,
almacenados en
un valor de 32 bits con un rango de -2,146,483,648 a 2,147,483,647.
long someVariable = 90000; //declara 'someVariable' como tipo long
float
Un tipo de datos para nmeros en punto otante, o nmeros que tienen un punto
decimal. Los
Operadores aritmticos
Los operadores aritmticos incluyen
suma, resta, multiplicacin y divisin.
Retornan la suma, diferencia, producto
o cociente (respectivamente).
y = y+3;
x = x-7;
i = j*6;
r = r/5;
Asignaciones compuestas
Las asignaciones compuestas combinan
una operacin aritmtica con una
asignacin de variable.
x++; //lo mismo que x = x+1
x--; //lo mismo que x = x-1
x += y; //lo mismo que x = x+y
x -= y; //lo mismo que x = x-y
x *= y; //lo mismo que x = x*y
x /= y; //lo mismo que x = x/y
operadores de comparacin
x
x
x
x
x
x
== y; //x es igual a y
!= y; //x no es igual a y
< y; //x es menor que y
> y; //x es mayor que y
<= y; //x es menor o igual que y
>= y; //x es mayor o igual que y
operadores lgicos
AND lgico:
if(x>0 && x<5) //verdadero slo si las dos
expresiones son ciertas
OR lgico:
if(x>0 || y>0) //verdadero si al menos una
expresin es cierta
NOT lgico:
if(!(x>0)) //verdadero slo si la expresin es falsa
Entradas y Salidas
ENTORNO DE
PROGRAMACIN
[Link] tarjeta
[Link] Puerto serial
[Link] el cdigo
4. Compilar
[Link] el programa
LED
Secuencia de luces
LED - RGB
RGB
LDR
Un fotorresistor o resistencia dependiente
de la luz ( LDR ) o fotoclula es una resistencia
cuya resistencia disminuye con el aumento de
intensidad de luz incidente, para su conexin se
necesita realizar un divisor de voltaje
LDR
const int led=11;
const int LDR=A0;
int valor;
void setup() {
[Link](9600
pinMode(led,OUTPUT);
}
void loop()
{
valor=analogRead(LDR);
analogWrite(led,valor);
[Link](' ');
[Link](valor);
delay(500);
}
Rel
Servo Motor
Servo Motor
#include <Servo.h>
Servo miServo;
const int pulso=A0;
const int motor=22;
float angulo=0;
void setup(){
[Link](9600);
[Link](13,500,2500);
}
void loop(){
angulo= analogRead(pulso)/5.69;
[Link](angulo);
[Link](angulo);
delay(500);
}
Control de velocidad de un motor
DC-PWM
Funciones para LCD
millis(); //nos da como resultado el tiempo transcurrido en
milisegundos.
// PINES RS,E,D4,D5,D6,D7
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
[Link](16, 2);
//INICIALIZA LCD 16X2
[Link](0, 0);
//COLUMNA1,FILA1
[Link]("Arduino"); //Imprime en la pantalla
[Link]();
// APAGA LCD
[Link]();
// Enciende el LCD
[Link]();
//Limpia la pantalla
[Link](); // desplaza todo la pantalla hacia la
izquierda
Pantalla LCD
Datos seriales
Diseo de caracteres
// include the library code:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
byte feliz[8] = {
0b00000,
0b00000,
0b01010,
0b00000,
0b00000,
0b10001,
0b01110,
0b00000
};
byte triste[8] = {
0b00000,
0b00000,
0b01010,
0b00000,
0b00000,
0b00000,
0b01110,
0b10001
};
void setup() {
[Link](1, feliz);
[Link](2, triste);
[Link](16, 2);
[Link]("Arduino");
}
void loop() {
[Link](4, 1);
[Link](1);
delay(2000);
[Link](4, 1);
[Link](2);
delay(2000);
}
Teclado matricial
Teclado Matricial
#include <Keypad.h>
// usar este codigo
const byte filas = 4;
const byte columnas = 4;
char teclas[filas][columnas]={
{'0','1','2','3'},
{'4','5','6','7'},
{'8','9','A','B'},
{'C','D','E','F'}
};
byte pinFilas[filas]={30,32,34,36};
byte pinColumnas[columnas]={22,24,26,28};
Keypad teclado=Keypad(makeKeymap(teclas),pinFilas,pinColumnas,filas,columnas);
// usar hasta aqui
char tecla;
void setup(){
[Link](9600);
}
void loop(){
tecla=[Link]();
if(tecla!=NO_KEY){
[Link](tecla);
[Link](" ");
[Link](tecla-48);
}
}
Sensor CNY70
Azul Emisor
Seal infrarroja
Rojo Receptor
CNY
70
Reflejo de
superficie
Conexin
El CNY70 devuelve por la pata de salida
correspondiente, segn el montaje, un voltaje
relacionado con la cantidad de rayo reflectado por el
objeto. Para el montaje A, se leer del emisor un '1'
cuando se refleje luz y un '0' cuando no se refleje.
Para el montaje B los valores se leen del colector, y
son los contrarios al montaje A.
Aplicaciones
Seguidor de lnea:
Con lectura digital 1 0
Identificador de colores:
Con lectura anloga 0 a 1023
Recomendacin: Usar las superficies de
incidencia muy cerca del sensor para
mejor toma de datos.
SENSOR HC-SR04
Caractersticas tcnicas:
Los mdulos incluyen transmisores ultrasnicos, el receptor y el circuito de
control.
Nmero de pines:
o VCC: Alimentacin +5V (4.5V min 5.5V max)
o TRIG: Trigger entrada (input) del sensor
o ECHO: Echo salida (output) del Sensor
o GND
Corriente de reposo: < 2mA
Corriente de trabajo: 15mA
ngulo de medicin: 30
ngulo de medicin efectivo: < 15
Deteccin de 2cm a 400cm o 1" a 13 pies
(Sirve a ms de 4m, pero el fabricante no garantiza una buena medicin).
Resolucin La precisin puede variar entre los 3mm o 0.3cm.
Dimensiones: 45mm
x20mm x15mm
Frecuencia de trabajo: 40KHz
Funcionamiento
Enviar un Pulso "1" de al menos de 10uS por el Pin Trigger
(Disparador). El sensor enviar 8 Pulsos de 40KHz (Ultrasonido) y
coloca su salida Echo a alto (seteo), se debe detectar este evento
e iniciar un conteo de tiempo. La salida Echo se mantendr en alto
hasta recibir el eco reflejado por el obstculo a lo cual el sensor
pondr su pin Echo a bajo, es decir, terminar de contar el tiempo.
Se recomienda dar un tiempo de aproximadamente 50ms de
esperadespusde terminar la cuenta. La distancia es
proporcional a la duracin del pulso y puedes calcularla
pulseIn()
Sintaxis
pulseIn (pin, valor)
pulseIn (pin, valor de tiempo de espera)
Parmetros
pin: el nmero del pin en el que desea leer el
pulso. (Int)
valor: tipo de impulso a leer: o ALTA o BAJA . (Int)
Tiempo de espera (opcional): el nmero de
microsegundos que esperar a que el pulso para
empezar; por defecto es de un segundo (unsigned
long)
Cdigo
Conexin
MODULO BLUETOOTH HC-06
Voltaje de alimentacin:
3.3VDC 6VDC.
Voltaje de operacin:
3.3VDC.
Baud rate ajustable:
1200, 2400, 4800, 9600,
19200, 38400, 57600,
115200.
Tamao:
1.73 in x 0.63 in x 0.28 in
(4.4 cm x 1.6 cm x 0.7
cm)
HC-06
Cdigo
App inventor 2 - Android
[Link]
edu
/
Cuenta de Google.
Programacin de bloques.
Software libre.
Entorno App inventor 2
Barras
Matlab - Arduino
Para versiones superiores a
la 2010a del MATLAB
En arduino
Conectar la placa ARDUINO a travs del cable USB.
Verificar por cual COM quedo conectado. Nos dirijimos a Inicio>Equipo Click derecho
>Administrar>Administrador de dispositivos>Puertos>Arduino Mega 2560, al lado
derecho de Arduino Mega 2560 sale el COMX, siendo X un nuevo entre 0 y 6
usualmente.
Dentro del ARDUINO ir a Herramientas>Tarjeta y elegir la placa ARDUINO MEGA 2560
Dentro del Arduino: Archivo>Abrir Buscamos dentro de los archivos descargados en la
siguiente direccin: ArduinoIO>pde>adiosrv>[Link]
Teniendo el adiosrv abierto le damos a cargar y esperamos hasta que diga Carga
terminada.
Cerramos el ARDUINO para dejar de tener el puerto ocupado, as poder establecer
ahora la conexin a travs del MATLAB.
En matlab
Se abre como administrador el MATLAB, MATLAB
>Click dereho>Ejecutar como administrador.
El directorio Current Folder lo ubicamos dentro de la
carpeta ArduinoIO.
Procedemos a realizar la instalacin adecuada
insertando los comandos:
Digitamos install_arduino (sin comillas).
Ahora digitamos a=arduino('COMX') (sin comillas). Donde X es el
puerto usado por el arduino
LM35 Sensor de
Temperatura
L293D Puente H
Sentido del
motor
Control de velocidad con
Puente H
Cdigo
int pin2=9; //Entrada 2 del L293D
int pin7=10; //Entrada 7 del L293D
int pote=A0; //Potencimetro
int valorpote;
int pwm1;
int pwm2;
//Variable que recoge el valor del
//Variable del PWM 1
//Variable del PWM 2
void setup()
{
pinMode(pin2,OUTPUT);
pinMode(pin7, OUTPUT);
}
void loop()
{
//Almacenamos el valor del potencimetro en la
variable
valorpote=analogRead(pote);
//Como la entrada analgica del Arduino es de 10
potencimetro
TSL235F