Arduino JD
Arduino JD
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
1.Seleccionar tarjeta
3.Escribir el cdigo
4. Compilar
5.Cargar el programa
LED
Secuencia de luces
LED - RGB
RGB
LDR
LDR
void setup() {
Serial.begin(9600
pinMode(led,OUTPUT);
}
void loop()
{
valor=analogRead(LDR);
analogWrite(led,valor);
Serial.println(' ');
Serial.println(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(){
Serial.begin(9600);
miServo.attach(13,500,2500);
}
void loop(){
angulo= analogRead(pulso)/5.69;
miServo.write(angulo);
Serial.println(angulo);
delay(500);
}
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() {
lcd.createChar(1, feliz);
lcd.createChar(2, triste);
lcd.begin(16, 2);
lcd.print("Arduino");
}
void loop() {
lcd.setCursor(4, 1);
lcd.write(1);
delay(2000);
lcd.setCursor(4, 1);
lcd.write(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(){
Serial.begin(9600);
}
void loop(){
tecla=teclado.getKey();
if(tecla!=NO_KEY){
Serial.println(tecla);
Serial.println(" ");
Serial.println(tecla-48);
}
}
Sensor CNY70
Azul Emisor
Seal infrarroja
Rojo Receptor
CNY
70
Reflejo de
superficie
Conexin
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
Dimensiones: 45mm
x20mm x15mm
Funcionamiento
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
HC-06
Cdigo
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>adiosrv.pde
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
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;
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