Curso C para Arduino

📘 Clasificación general

Tipo de sensorEjemplosSalida
AnalógicosMQ-2, LM35, LDRanalogRead()
DigitalesHC-SR04, DHT22, MPU6050Librerías / pulsos

🔸 1. Sensor ultrasónico HC-SR04 – Distancia (digital)

📦 ¿Qué mide?

  • Distancia por eco de ultrasonido (hasta 4-5 metros).

🧪 Conexiones:

Pin HC-SR04Arduino
VCC5V
GNDGND
TRIG9
ECHO10

✅ 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}

🔸 2. 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-xArduino
AOUTA0 (analógico)
DOUT2 (digital)
VCC/GND5V 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}

🔸 3. Sensor DHT22 (o DHT11) – Temperatura y humedad (digital)

📦 Requiere librería:

  • DHT sensor library (Adafruit)
  • Adafruit Unified Sensor

🧪 Conexión:

DHT PinArduino
VCC5V
GNDGND
DATA2

✅ 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}

🔸 4. 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:

MPU6050Arduino UNO
VCC5V
GNDGND
SDAA4
SCLA5

✅ 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}

📋 Tabla resumen

SensorSalidaProtocoloLibrería necesaria
HC-SR04Digital (pulsos)NoNo
MQ-2Analógico/DigitalNoNo
DHT11/DHT22DigitalUnidatoDHT.h
MPU6050I2CI2CMPU6050.h

🧪 Proyecto sugerido

“Estación ambiental avanzada”

  • Sensor DHT22 (temp/humedad)
  • MQ-2 (calidad del aire)
  • HC-SR04 (distancia)
  • Pantalla OLED para mostrar valores