Sensores avanzados en Arduino
1. Clasificación general #
| Tipo de sensor | Ejemplos | Salida |
|---|
| Analógicos | MQ-2, LM35, LDR | analogRead() |
| Digitales | HC-SR04, DHT22, MPU6050 | Librerías / pulsos |
2. Sensor ultrasónico HC-SR04 - Distancia (digital) #
¿Qué mide? #
- Distancia por eco de ultrasonido (hasta 4-5 metros).
Conexiones: #
| Pin HC-SR04 | Arduino |
|---|
| VCC | 5V |
| GND | GND |
| TRIG | 9 |
| ECHO | 10 |
Código básico: #
1const int trig = 9;
2const int echo = 10;
3
4void setup() {
5 Serial.begin(9600);
6 pinMode(trig, OUTPUT);
7 pinMode(echo, INPUT);
8}
9
10void loop() {
11 digitalWrite(trig, LOW);
12 delayMicroseconds(2);
13 digitalWrite(trig, HIGH);
14 delayMicroseconds(10);
15 digitalWrite(trig, LOW);
16
17 long duracion = pulseIn(echo, HIGH);
18 float distancia = duracion * 0.034 / 2;
19
20 Serial.print("Distancia: ");
21 Serial.print(distancia);
22 Serial.println(" cm");
23 delay(500);
24}
3. Sensor de gas MQ-x - Gases inflamables, humo (analógico y digital) #
Variantes: #
- MQ-2: Gas combustible, humo
- MQ-3: Alcohol
- MQ-7: Monóxido de carbono
Conexión típica: #
| Pin MQ-x | Arduino |
|---|
| AOUT | A0 (analógico) |
| DOUT | 2 (digital) |
| VCC/GND | 5V y GND |
Código básico: #
1const int gasPin = A0;
2
3void setup() {
4 Serial.begin(9600);
5}
6
7void loop() {
8 int lectura = analogRead(gasPin);
9 Serial.print("Lectura de gas: ");
10 Serial.println(lectura);
11 delay(1000);
12}
4. Sensor DHT22 (o DHT11) - Temperatura y humedad (digital) #
Requiere librería: #
DHT sensor library (Adafruit)
Adafruit Unified Sensor
Conexión: #
| DHT Pin | Arduino |
|---|
| VCC | 5V |
| GND | GND |
| DATA | 2 |
Código básico: #
1#include <DHT.h>
2
3#define DHTPIN 2
4#define DHTTYPE DHT22 // o DHT11
5
6DHT dht(DHTPIN, DHTTYPE);
7
8void setup() {
9 Serial.begin(9600);
10 dht.begin();
11}
12
13void loop() {
14 float h = dht.readHumidity();
15 float t = dht.readTemperature();
16
17 Serial.print("Humedad: ");
18 Serial.print(h);
19 Serial.print(" %\tTemperatura: ");
20 Serial.print(t);
21 Serial.println(" °C");
22
23 delay(2000);
24}
5. Acelerómetro y giroscopio MPU6050 (I2C) #
Mide: #
- Aceleración (X, Y, Z)
- Giro (giroscopio)
Requiere librerías: #
MPU6050 o Adafruit MPU6050
- Usa protocolo I2C
Conexión típica: #
| MPU6050 | Arduino UNO |
|---|
| VCC | 5V |
| GND | GND |
| SDA | A4 |
| SCL | A5 |
Código básico: #
1#include <Wire.h>
2#include <MPU6050.h>
3
4MPU6050 mpu;
5
6void setup() {
7 Serial.begin(9600);
8 Wire.begin();
9 mpu.initialize();
10
11 if (mpu.testConnection()) {
12 Serial.println("MPU6050 conectado");
13 } else {
14 Serial.println("Fallo al conectar MPU6050");
15 }
16}
17
18void loop() {
19 int16_t ax, ay, az;
20 mpu.getAcceleration(&ax, &ay, &az);
21
22 Serial.print("AX: "); Serial.print(ax);
23 Serial.print(" AY: "); Serial.print(ay);
24 Serial.print(" AZ: "); Serial.println(az);
25
26 delay(500);
27}
6. Tabla resumen #
| Sensor | Salida | Protocolo | Librería necesaria |
|---|
| HC-SR04 | Digital (pulsos) | No | No |
| MQ-2 | Analógico/Digital | No | No |
| DHT11/DHT22 | Digital | Unidato | ✅ DHT.h |
| MPU6050 | I2C | I2C | ✅ MPU6050.h |
7. Proyecto sugerido #
“Estación ambiental avanzada”
- Sensor DHT22 (temp/humedad)
- MQ-2 (calidad del aire)
- HC-SR04 (distancia)
- Pantalla OLED para mostrar valores
Resumen del tema
Conceptos clave #
- Sensor Ultrasónico HC-SR04: emisión de ráfagas acústicas mediante pin
TRIG y medición del tiempo de eco con pulseIn(ECHO, HIGH) para calcular la distancia (d=t×0.034/2).
- Sensores Electroquímicos de Gas MQ-x: detección de gases inflamables, alcohol o monóxido mediante salida analógica proporcional (
AOUT) y comparador digital (DOUT).
- Sensor Digital DHT11/DHT22: medición combinada de temperatura y humedad ambiental a través de bus de un solo hilo con la librería
DHT.h.
- Unidad de Medición Inercial MPU6050: acelerómetro y giroscopio triaxial de 6 grados de libertad comunicado mediante protocolo I2C con
Wire.h.
Qué debes recordar #
La integración de sensores avanzados combina lectura analógica directa, medición precisa de pulsos temporizados (pulseIn) y protocolos digitales seriales como I2C.