arduino jd
DESCRIPTION
ArduinoTRANSCRIPT
![Page 1: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/1.jpg)
![Page 2: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/2.jpg)
Partes del arduino
![Page 3: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/3.jpg)
LEDS en Arduino
![Page 4: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/4.jpg)
Estructura• La estructura básica del lenguaje de programación 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.
![Page 5: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/5.jpg)
setup()La función setup debería contener la declaración de cualquier variable al comienzo del programa.Es la primera función a ejecutar en el programa, es ejecutada una vez y es usada para asignarpinMode o inicializar las comunicaciones serie.
loop()La función loop se ejecuta a continuación e incluye el código que se ejecuta contínuamente -leyendo entradas, activando salidas, etc. Esta función es el núcleo de todos los programas Arduinoy hace la mayor parte del trabajo.
![Page 6: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/6.jpg)
Tipos de variablesbyteByte almacena un valor numérico de 8 bits sin puntos decimales. Tienen un rango de 0 a 255.byte someVariable = 180; //declara 'someVariable' como un tipo byte
intEnteros son los tipos de datos primarios para almacenamiento de números sin puntos decimalesy almacenan un valor de 16 bits con un rango de -32,768 a 32,767.int someVariable = 1500; //declara 'someVariable' como tipo int
longTipo de datos de tamaño extendido para enteros largos, sin puntos decimales, almacenados enun 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
floatUn tipo de datos para números en punto otante, o números que tienen un punto decimal. Losnúmeros en punto otante tienen mayor resolución que los enteros y se almacenan como valor de32 bits con un rango de -3.4028235E+38 a 3.4028235E+38.float someVariable = 3.14; //declara 'someVariable' como tipo float
![Page 7: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/7.jpg)
Operadores aritméticos
• Los operadores aritméticos incluyen suma, resta, multiplicación y división. Retornan la suma, diferencia, producto o cociente (respectivamente).
• y = y+3;• x = x-7;• i = j*6;• r = r/5;
![Page 8: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/8.jpg)
Asignaciones compuestas
Las asignaciones compuestas combinan una operación aritmética con una asignación de variable.
x++; //lo mismo que x = x+1x--; //lo mismo que x = x-1
x += y; //lo mismo que x = x+yx -= y; //lo mismo que x = x-yx *= y; //lo mismo que x = x*yx /= y; //lo mismo que x = x/y
![Page 9: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/9.jpg)
operadores de comparación
• x == y; //x es igual a y• x != y; //x no es igual a y• x < y; //x es menor que y• x > y; //x es mayor que y• x <= y; //x es menor o igual que y• x >= y; //x es mayor o igual que y
![Page 10: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/10.jpg)
operadores lógicos
AND lógico:if(x>0 && x<5) //verdadero sólo si las dos expresiones son ciertas
OR lógico:if(x>0 || y>0) //verdadero si al menos una expresión es cierta
NOT lógico:if(!(x>0)) //verdadero sólo si la expresión es falsa
![Page 11: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/11.jpg)
Entradas y Salidas
![Page 12: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/12.jpg)
ENTORNO DE PROGRAMACIÓN
![Page 13: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/13.jpg)
1.Seleccionar tarjeta
![Page 14: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/14.jpg)
2.Seleccionar Puerto serial
![Page 15: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/15.jpg)
3.Escribir el código
![Page 16: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/16.jpg)
4. Compilar
![Page 17: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/17.jpg)
5.Cargar el programa
![Page 18: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/18.jpg)
LED
![Page 19: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/19.jpg)
Secuencia de luces
![Page 20: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/20.jpg)
LED - RGB
![Page 21: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/21.jpg)
RGB
![Page 22: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/22.jpg)
LDR
• Un fotorresistor o resistencia dependiente de la luz ( LDR ) o fotocélula es una resistencia cuya resistencia disminuye con el aumento de intensidad de luz incidente, para su conexión se necesita realizar un divisor de voltaje
![Page 23: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/23.jpg)
LDR
![Page 24: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/24.jpg)
const int led=11;const int LDR=A0;int valor;
void setup() {Serial.begin(9600pinMode(led,OUTPUT);}
void loop(){valor=analogRead(LDR);analogWrite(led,valor);
Serial.println(' '); Serial.println(valor);
delay(500);}
![Page 25: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/25.jpg)
Relé
![Page 26: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/26.jpg)
![Page 27: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/27.jpg)
![Page 28: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/28.jpg)
Servo Motor
![Page 29: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/29.jpg)
![Page 30: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/30.jpg)
Servo Motor
![Page 31: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/31.jpg)
#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); }
![Page 32: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/32.jpg)
Control de velocidad de un motor DC-PWM
![Page 33: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/33.jpg)
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);
• lcd.begin(16, 2); //INICIALIZA LCD 16X2 • lcd.setCursor(0, 0); //COLUMNA1,FILA1 • lcd.print("Arduino"); //Imprime en la pantalla• lcd.noDisplay(); // APAGA LCD • lcd.display(); // Enciende el LCD• lcd.clear(); //Limpia la pantalla• lcd.autoscroll(); // desplaza todo la pantalla hacia la izquierda
![Page 34: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/34.jpg)
Pantalla LCD
![Page 35: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/35.jpg)
![Page 36: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/36.jpg)
![Page 37: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/37.jpg)
![Page 38: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/38.jpg)
Datos seriales
![Page 39: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/39.jpg)
Diseño 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 };
![Page 40: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/40.jpg)
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); }
![Page 41: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/41.jpg)
Teclado matricial
![Page 42: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/42.jpg)
Teclado Matricial#include <Keypad.h>// usar este codigoconst 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 aquichar tecla;
void setup(){Serial.begin(9600);}
void loop(){tecla=teclado.getKey();if(tecla!=NO_KEY){ Serial.println(tecla); Serial.println(" "); Serial.println(tecla-48); }}
![Page 43: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/43.jpg)
Sensor CNY70
• Azul Emisor– Señal infrarroja
• Rojo Receptor– Reflejo de superficie
CNY
70
![Page 44: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/44.jpg)
Conexión
• El CNY70 devuelve por la pata de salida correspondiente, según 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.
![Page 45: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/45.jpg)
Aplicaciones
• Seguidor de línea:– Con lectura digital 1 ó 0
• Identificador de colores:– Con lectura análoga 0 a 1023
Recomendación: Usar las superficies de incidencia muy cerca del sensor para mejor toma de datos.
![Page 46: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/46.jpg)
![Page 47: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/47.jpg)
![Page 48: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/48.jpg)
SENSOR HC-SR04 • Características técnicas:• Los módulos incluyen transmisores ultrasónicos, el receptor y el circuito de control.• Número de pines:
– o VCC: Alimentación +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 medición: 30º• Ángulo de medición efectivo: < 15º• Detección de 2cm a 400cm o 1" a 13 pies • (Sirve a más de 4m, pero el fabricante no garantiza una buena medición).• “Resolución” La precisión puede variar entre los 3mm o 0.3cm.
• Dimensiones: 45mm x 20mm x 15mm
• Frecuencia de trabajo: 40KHz
![Page 49: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/49.jpg)
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 obstáculo 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 espera después de terminar la cuenta. La distancia es proporcional a la duración del pulso y puedes calcularla
![Page 50: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/50.jpg)
pulseIn()
• Sintaxis • pulseIn (pin, valor)
pulseIn (pin, valor de tiempo de espera) • Parámetros • pin: el número 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 número de
microsegundos que esperar a que el pulso para empezar; por defecto es de un segundo (unsigned long)
![Page 51: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/51.jpg)
Código
![Page 52: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/52.jpg)
![Page 53: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/53.jpg)
Conexión
![Page 54: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/54.jpg)
MODULO BLUETOOTH HC-06
• Voltaje de alimentación: 3.3VDC – 6VDC.
• Voltaje de operación: 3.3VDC.
• Baud rate ajustable: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200.
• Tamaño: 1.73 in x 0.63 in x 0.28 in
(4.4 cm x 1.6 cm x 0.7 cm)
![Page 55: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/55.jpg)
HC-06
![Page 56: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/56.jpg)
Código
![Page 57: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/57.jpg)
App inventor 2 - Android• http://ai2.appinventor.mit.edu/
• Cuenta de Google.• Programación de bloques.• Software libre.
![Page 58: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/58.jpg)
Entorno App inventor 2
![Page 59: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/59.jpg)
Barras
![Page 60: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/60.jpg)
Matlab - Arduino
Para versiones superiores a la 2010a del MATLAB
![Page 61: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/61.jpg)
En arduino
• Conectar la placa ARDUINO a través 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 dirección: 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 conexión a través del MATLAB.
![Page 62: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/62.jpg)
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 instalación 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
![Page 63: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/63.jpg)
LM35 – Sensor de Temperatura
![Page 64: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/64.jpg)
L293D – Puente H
![Page 65: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/65.jpg)
Sentido del motor
![Page 66: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/66.jpg)
Control de velocidad con Puente H
![Page 67: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/67.jpg)
![Page 68: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/68.jpg)
![Page 69: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/69.jpg)
![Page 70: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/70.jpg)
Códigoint pin2=9; //Entrada 2 del L293Dint pin7=10; //Entrada 7 del L293Dint pote=A0; //Potenciómetro int valorpote; //Variable que recoge el valor del
potenciómetroint pwm1; //Variable del PWM 1int pwm2; //Variable del PWM 2 void setup(){ pinMode(pin2,OUTPUT); pinMode(pin7, OUTPUT);} void loop(){ //Almacenamos el valor del potenciómetro en la variable valorpote=analogRead(pote);
//Como la entrada analógica del Arduino es de 10 bits, el rango va de 0 a 1023. //En cambio, la salidas del Arduio son de 8 bits, quiere decir, rango entre 0 a 255. //Por esta razón tenemos que mapear el número de un rango a otro usando este código. pwm1 = map(valorpote, 0, 1023, 0, 255); pwm2 = map(valorpote, 0, 1023, 255, 0); //El PWM 2 esta invertido respecto al PWM 1 //Sacamos el PWM de las dos salidas usando analogWrite(pin,valor)
analogWrite(pin2,pwm1); analogWrite(pin7,pwm2);}
![Page 71: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/71.jpg)
TSL235F
![Page 72: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/72.jpg)
![Page 73: Arduino JD](https://reader036.vdocuments.pub/reader036/viewer/2022081420/563dba42550346aa9aa411a9/html5/thumbnails/73.jpg)