Nothing Special   »   [go: up one dir, main page]

PRÁCTICAS ARDUINO 7a12 2324

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 9

4ºABC Tecnología Robótica 3ª evaluación UD 3 Robótica con Arduino

Práctica 7: Sensor de infrarrojos

Programa Arduino para que, utilizando el sensor de infrarrojos (IR Keyes), detecte un objeto. Cuando
se produzca la detección se activará un LED. En caso contrario el LED permanecerá apagado.
Sensor de Infrarrojos (IR)
Van montados emisor y receptor en la misma placa.
El emisor transmite una frecuencia de infrarrojo y cuando encuentra un objeto
la señal se refleja y es captada por el receptor.
Distancia de detección de 2 a 40 cm. La distancia se ajusta con el
potenciómetro.

Para conectar el sensor a Arduino se van a usar cables macho-hembra.

1. Montaje con Arduino:


+Vcc → 5V
GND → GND
Out → Pin digital (2)

Nota: incorpora un LED que actúe como testigo (se encienda) cuando se acerque un objeto.
Añade una comunicación del puerto serial, por ejemplo “Objeto cercano”, cuando lo detecta; y
“despejado”, cuando no haya objetos cercanos.

1
4ºABC Tecnología Robótica 3ª evaluación UD 3 Robótica con Arduino

2. Programa:
int LED=13;
int IR=2;
int valorIR;

void setup (){


pinMode (LED, OUTPUT);
pinMode (IR, INPUT);
Serial.begin(9600);

}
void loop (){
valorIR = digitalRead(IR);
if (valorIR == LOW) {
digitalWrite (LED, HIGH);
Serial.println ("objeto cercano");
delay (1000);
}
else {
digitalWrite(LED, LOW);
Serial.println ("despejado");
delay (1000);
}
}

3. Ampliaciones:
• Ajusta el potenciómetro (con un destornillador) para que detecte el objeto a 5 cm.
4. Guarda la práctica con el nombre P6_DetectorIR.

2
4ºABC Tecnología Robótica 3ª evaluación UD 3 Robótica con Arduino

Práctica 8: Sensor de de temperatura y humedad

Diseñar un programa que monitorice la humedad y la temperatura recogida por


el sensor DHT11 conectado a la placa Arduino.
Sensor de humedad y temperatura DH11
§ Utiliza un sensor capacitivo para medir la humedad y un termistor para medir la
temperatura ambiente.
§ Es un sensor digital, por lo tanto desde Arduino leemos las medidas desde los pines
digitales.
§ Rango de temperaturas de 0 a 50ºC ±2ºC
§ Humedad: entre 20 y 80%, precisión del 5%
§ Muestrea cada segundo.
§ Para facilitar la programación se utiliza la librería DHT.h

1. Conexiones
DHT11 → Arduino
+ → +5V
- → GND
Out → Digital pin (en el ejemplo el pin 2)

3
4ºABC Tecnología Robótica 3ª evaluación UD 3 Robótica con Arduino

2. Programa:

#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

void setup() {
Serial.begin(9600);
Serial.println("DHT11 test!");

dht.begin();
}

void loop() {
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("¡Error al leer el sensor DHT11!");
return;
}
Serial.print("Humedad: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(t);
Serial.print(" *C ");
Serial.println("");
}

3. Guarda el programa con el nombre P13_TempHum.

Práctica 9 extra: Avisos de alta temperatura y baja humedad

Ampliación: Añade dos leds (por ejemplo, rojo y amarillo) con sus resistencias de 220 a los pins 8 y 9
y el código necesario para conseguir que:
• Si la temperatura supera 20ºC se encienda el LED rojo.
• Si la humedad es inferior al 40% que encienda el LED amarillo.
Guarda la práctica con el nombre P14_TemHumAvisos.

4
4ºABC Tecnología Robótica 3ª evaluación UD 3 Robótica con Arduino

Práctica 10: Motor DC y driver L298. Cambio de giro, sin variar la


velocidad

Vamos a controlar un motor de CC usando el Driver L298N,


que permite controlar dos motores y hacer que vayan adelante y
atrás y variar su velocidad.
Nota: vamos a trabajar con el Jumper regulador cerrado,
con lo que el driver se alimenta con 6-12 V (en Vmotor). Y Vlógico
se puede usar como una salida para alimentar la placa Arduino
(por ejemplo).

1. Conexiones
Como demostración, vamos a controlar un
motor DC a través de la salida B del módulo. El
pin ENB se conectará con el jumper a +5V (por lo que el
motor sólo girará a velocidad constante).
Esquema de conexión:

5
4ºABC Tecnología Robótica 3ª evaluación UD 3 Robótica con Arduino

2. Código en Arduino
El programa básicamente activa el motor en un sentido por 4 segundos, luego detiene el motor por 0.5
segundos, después activa el motor en sentido inverso por 4 segundos y por último detiene el motor por 5
segundos. Luego repite la acción indefinidamente.
int IN3 = 5; // Motor no gira
int IN4 = 4; digitalWrite (IN4, LOW);
void setup() delay(5000);
{ // Motor gira en sentido inverso
pinMode (IN4, OUTPUT); // Input4 conectada al pin 4 digitalWrite (IN3, HIGH);
pinMode (IN3, OUTPUT); // Input3 conectada al pin 5 delay(4000);
} // Motor no gira
void loop() digitalWrite (IN3, LOW);
{ delay(5000);
// Motor gira en un sentido }
digitalWrite (IN4, HIGH);
digitalWrite (IN3, LOW);
delay(4000);
3. Guarda la práctica con el nombre P11_MotorCD_VCte

Práctica 11: Motor DC. Control de la velocidad con L298N

Si queremos controlar la velocidad del motor, tenemos que hacer uso de PWM. Este PWM será aplicado a
los pines de activación de cada salida o pines ENA y ENB respectivamente. Por tanto, para variar la velocidad de
un motor hay que quitar su jumper.

1. Esquema de conexión
Se sigue con la misma alimentación (6.-12 voltios), el jumper regulador activo. Y, de la misma forma que
en la práctica anterior, Vlogico se puede usar como salida de 5 V para la placa Arduino

6
4ºABC Tecnología Robótica 3ª evaluación UD 3 Robótica con Arduino

2. Código en Arduino
El programa controla la velocidad de un motor DC aplicando PWM al pin ENB del módulo L298N.
int IN3 = 5; // Input3 conectada al pin 5
int IN4 = 4; // Input4 conectada al pin 4
int ENB = 3; // ENB conectada al pin 3 de Arduino
void setup()
{
pinMode (ENB, OUTPUT);
pinMode (IN3, OUTPUT);
pinMode (IN4, OUTPUT);
}
void loop()
{
//Preparamos la salida para que el motor gire en un sentido
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);
// Aplicamos PWM al pin ENB, haciendo girar el motor, cada 2 seg aumenta la velocidad
analogWrite(ENB,55);
delay(2000);
analogWrite(ENB,105);
delay(2000);
analogWrite(ENB,255);
delay(2000);
// Apagamos el motor y esperamos 5 seg
analogWrite(ENB,0);
delay(5000);
}
3. Guarda la práctica con el nombre P12_MotorDC_Vvariable

7
4ºABC Tecnología Robótica 3ª evaluación UD 3 Robótica con Arduino

Práctica 12. Órdenes por Bluetooth

Diseña un programa que permita enviar órdenes desde el móvil a


Arduino mediante Bluetooth:
Bluetooth es una red inalámbrica de corto alcance pensada para
conectar pares de dispositivos y crear una pequeña red punto a punto, (sólo
2 dispositivos). En nuestro caso Arduino y un teléfono móvil.
Vamos a utilizar en estos ejemplos un módulo esclavo de bluetooth
HC -06.
El dispositivo tiene que “emparejarse” y compartir una contraseña los
datos puedan intercambiarse. Por defecto, estos módulos tienen la
contraseña 1234, aunque tanto esto como el nombre, pueden ser actualizados mediante unos comandos
especiales, llamados AT.
Utilizaremos una APP para el móvil llamada Arduino Bluetooth Controler para enviar información a
Arduino.

Vamos a hacer un programa de prueba, en el que utilizan las teclas R y T para encender y apagar un led
rojo, respectivamente. Y las teclas V y B para hacer lo mismo con un led verde.
Conexiones:

8
4ºABC Tecnología Robótica 3ª evaluación UD 3 Robótica con Arduino

1. Programa:
/*Programa que lee caracteres recibidos por el modulo bluetooth desde un smartphone
* y enciende o apaga dos leds independientemente
* V -> enciende led verde
* B -> apaga led verde
* R -> enciende led rojo
* T -v apaga led rojo
*/

#include <SoftwareSerial.h>
#define ledVerde 10
#define ledRojo 12
char dato=0; //variable para guardar el caracter que envie el movil
SoftwareSerial BT1(3,4); // RX, TX recordar que se cruzan (unir 3-TX)
void setup() {
pinMode (ledVerde, OUTPUT);
pinMode (ledRojo, OUTPUT);
BT1.begin(9600);
}

void loop() {
if (BT1.available()) // comprobamos si hay dato que leer del modulo
dato= BT1.read(); //si lo hay se lee y se guarda

if (dato=='V')
{
digitalWrite(ledVerde, HIGH);
}

else if (dato=='B')
{
digitalWrite(ledVerde, LOW);
}
else if (dato=='R')
{
digitalWrite(ledRojo, HIGH);
}
else if (dato=='T')
{
digitalWrite(ledRojo, LOW);
}
}

2. Activa el Bluetooth del teléfono y conéctalo al módulo AZULN (N es un número del 1 al 9)


3. Si te pide la contraseña, introduce:1234.
4. Abre el programa Arduino Bluetooth Controler del móvil y conéctalo al módulo AZULN.
5. Selecciona el modo Terminal Mode para pode introducir caracteres.
6. Guarda el programa con el nombre P13_bluetooth.

También podría gustarte