les vencimos

Arduino · Proyectos

Birdie

Birdie · AP-BIR-01

TMP36: temperatura en el monitor serie

Objetivo

Vas a leer un TMP36 por A0 y pasar la tensión a grados Celsius con la fórmula (analogRead * 5.0 / 1023.0 - 0.5) * 100. Esa cuenta supone la referencia de 5 V de la Uno, así que no la cambies por 3,3 V. El número sale en el monitor serie a 9600 baudios y debe subir si calientas el encapsulado con el dedo.

Materiales

Cant.PiezaFichaOrigenPrecio relativoEn este montaje
1Arduino Uno R3placa-uno-r3original / oficialconsultar (>10 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Uno R3 clone CH340placa-uno-ch340genérico / clonepoco (≈1–3 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1TMP36sensor-tmp36ambos (oficial y genérico)poco (≈1–3 €)Cara plana hacia ti: izquierda Vs, centro Vout, derecha GND.

La franja sale del catálogo de Hardware. No es un precio de tienda.

Cableado

Placa Pieza TMP36 Vs (patilla izquierda) TMP36 GND (patilla derecha) TMP36 Vout (patilla central) 5V de la Uno GND de la Uno A0

Código

// AP-BIR-01 TMP36 en A0. Referencia 5 V. Monitor serie 9600.
const int pinTmp = A0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  int lectura = analogRead(pinTmp);
  // (analogRead * 5.0 / 1023.0 - 0.5) * 100
  float tempC = (lectura * 5.0 / 1023.0 - 0.5) * 100.0;
  Serial.print("Temperatura C: ");
  Serial.println(tempC, 1);
  delay(500);
}

Pasos

  1. Mira el TMP36 con la cara plana hacia ti: izquierda Vs, centro Vout y derecha GND.
  2. Une Vs a 5 V y la patilla derecha al GND de la placa.
  3. Une el centro, Vout, al pin A0. Este sensor no lleva resistencia.
  4. En el IDE elige Arduino Uno, tanto si usas la R3 como el clon CH340.
  5. Carga el programa y abre el monitor serie a 9600 baudios.
  6. Anota la cifra de ambiente y apoya un dedo en el plástico, sin puentear patillas: el valor tiene que subir.

Variantes

Depuración

Software: analogread serial

Birdie · AP-BIR-02

DHT11: temperatura y humedad

Objetivo

Vas a medir temperatura y humedad con un DHT11 y la librería DHT, llamando a readTemperature y a readHumidity. El pin de datos, D2, lleva una resistencia de pull-up de 10k hacia 5 V porque el sensor suelta la línea entre bits. Las dos cifras salen por el monitor serie a 9600 baudios, con unos dos segundos entre muestras.

Materiales

Cant.PiezaFichaOrigenPrecio relativoEn este montaje
1Arduino Uno R3placa-uno-r3original / oficialconsultar (>10 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Uno R3 clone CH340placa-uno-ch340genérico / clonepoco (≈1–3 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1DHT11sensor-dht11genérico / cloneirrisorio (<1 €)Módulo de tres patillas o sensor suelto: VCC, DATA y GND.
1Resistenciasmodulo-resistenciagenérico / cloneirrisorio (<1 €)10k entre DATA y 5 V. Si el módulo ya trae la pull-up, no pongas otra.

La franja sale del catálogo de Hardware. No es un precio de tienda.

Cableado

Placa Pieza DHT11 VCC DHT11 GND DHT11 DATA Resistencia 10k 5V de la Uno GND de la Uno D2 DATA (D2) y 5V

Código

// AP-BIR-02 DHT11 en D2 con pull-up de 10k a 5 V.
// Librería DHT: instálala en el gestor del IDE. No lleva URL.
#include <DHT.h>

const int pinDht = 2;
DHT dht(pinDht, DHT11);

void setup() {
  Serial.begin(9600);
  dht.begin();
  delay(2000);
}

void loop() {
  float t = dht.readTemperature();
  float h = dht.readHumidity();
  if (isnan(t) || isnan(h)) {
    Serial.println("Lectura no valida: revisa DATA, la pull-up y el tipo DHT11");
  } else {
    Serial.print("Temperatura C: ");
    Serial.print(t, 1);
    Serial.print("  Humedad %: ");
    Serial.println(h, 1);
  }
  delay(2000);
}

Pasos

  1. Instala la librería DHT desde el gestor de librerías del IDE y reinicia el IDE si no aparece la cabecera.
  2. Alimenta el DHT11 entre 5 V y GND.
  3. Une DATA a D2 y coloca 10k entre DATA y 5 V. Si tu módulo ya trae esa resistencia, no añadas otra.
  4. Elige la placa Arduino Uno (R3 o CH340) y carga el programa.
  5. Abre el monitor serie a 9600 baudios y espera el primer par de segundos.
  6. Sopla suave cerca del sensor: la humedad relativa debe moverse, la temperatura casi no.

Variantes

Depuración

Software: serial

Birdie · AP-BIR-03

HC-SR04: distancia

Objetivo

Vas a medir una distancia en centímetros con el HC-SR04 sin librería. Generas un pulso corto de disparo en el trig por D9 y mides cuánto dura el eco en D8 con pulseIn. Ese tiempo se pasa a centímetros y se imprime en el monitor serie a 9600 baudios.

Materiales

Cant.PiezaFichaOrigenPrecio relativoEn este montaje
1Arduino Uno R3placa-uno-r3original / oficialconsultar (>10 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Uno R3 clone CH340placa-uno-ch340genérico / clonepoco (≈1–3 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1HC-SR04sensor-hc-sr04genérico / cloneirrisorio (<1 €)Cuatro patillas: VCC, trig, echo y GND. En la Uno el eco ya es de 5 V.

La franja sale del catálogo de Hardware. No es un precio de tienda.

Cableado

Placa Pieza HC-SR04 VCC HC-SR04 GND HC-SR04 trig HC-SR04 echo 5V de la Uno GND de la Uno D9 D8

Código

// AP-BIR-03 HC-SR04 sin librería. Trig en D9, echo en D8.
const int pinTrig = 9;
const int pinEcho = 8;

void setup() {
  Serial.begin(9600);
  pinMode(pinTrig, OUTPUT);
  pinMode(pinEcho, INPUT);
  digitalWrite(pinTrig, LOW);
}

void loop() {
  digitalWrite(pinTrig, LOW);
  delayMicroseconds(2);
  digitalWrite(pinTrig, HIGH);
  delayMicroseconds(10);
  digitalWrite(pinTrig, LOW);

  long duracion = pulseIn(pinEcho, HIGH, 30000UL);
  float cm = duracion * 0.0343 / 2.0;
  if (duracion == 0) {
    Serial.println("Sin eco: fuera de alcance o trig y echo cruzados");
  } else {
    Serial.print("Distancia cm: ");
    Serial.println(cm, 1);
  }
  delay(200);
}

Pasos

  1. Alimenta el HC-SR04 con 5 V y GND.
  2. Une trig a D9 y echo a D8. Déjalos escritos en un papel porque se cruzan con facilidad.
  3. Apunta el sensor a una pared o a un libro, no a una tela ni al aire libre de la habitación.
  4. Carga el programa en la Uno (R3 o CH340).
  5. Abre el monitor serie a 9600 baudios.
  6. Acerca y aleja el obstáculo entre unos 5 y 80 cm y comprueba que los centímetros siguen el movimiento.

Variantes

Depuración

Software: digitalwrite serial

Birdie · AP-BIR-04

Servo que barre 0–180

Objetivo

Vas a hacer que un servo recorra de 0 a 180 grados y vuelva, sin potenciómetro. El pulso lo genera la cabecera Servo.h que ya trae el núcleo del IDE: no instales otra librería. Verás el barrido completo y el tope mecánico del engranaje, que no siempre llega al número que escribes.

Materiales

Cant.PiezaFichaOrigenPrecio relativoEn este montaje
1Arduino Uno R3placa-uno-r3original / oficialconsultar (>10 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Uno R3 clone CH340placa-uno-ch340genérico / clonepoco (≈1–3 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Servo SG90modulo-servogenérico / clonepoco (≈1–3 €)SG90 o similar de 5 V. Un solo servo puede salir del regulador de la Uno.

La franja sale del catálogo de Hardware. No es un precio de tienda.

Cableado

Placa Pieza Servo cable de alimentación Servo cable de masa Servo cable de señal Fuente externa de 5 V, si hace falta 5V de la Uno GND de la Uno D9 GND común con la Uno, positivo solo al servo

Código

// AP-BIR-04 Barrido 0 a 180 con Servo.h del núcleo. Señal en D9.
#include <Servo.h>

Servo barrido;
const int pinServo = 9;

void setup() {
  barrido.attach(pinServo);
}

void loop() {
  for (int ang = 0; ang <= 180; ang += 1) {
    barrido.write(ang);
    delay(15);
  }
  for (int ang = 180; ang >= 0; ang -= 1) {
    barrido.write(ang);
    delay(15);
  }
}

Pasos

  1. Identifica los tres cables del servo: alimentación, masa y señal. En el SG90 suelen ser rojo, marrón y naranja.
  2. Une alimentación a 5 V, masa a GND y señal a D9.
  3. Deja el cuerno libre de chocar con la mesa en ambos extremos.
  4. Comprueba que el programa incluye Servo.h del núcleo, sin librerías añadidas.
  5. Carga el programa en la Uno (R3 o CH340).
  6. Observa un viaje de 0 a 180 y la vuelta. Si la placa se reinicia al arrancar, el servo pide más corriente de la que da el USB.

Variantes

Depuración

Software: servo

Birdie · AP-BIR-05

Servo gobernado por potenciómetro

Objetivo

Vas a mandar el ángulo de un servo con un potenciómetro leído en A0. La cuenta de 0 a 1023 se traduce a un ángulo de 0 a 180 y se envía con Servo.h, la cabecera que trae el núcleo. Al girar el cursor, el cuerno sigue la posición sin dar saltos grandes.

Materiales

Cant.PiezaFichaOrigenPrecio relativoEn este montaje
1Arduino Uno R3placa-uno-r3original / oficialconsultar (>10 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Uno R3 clone CH340placa-uno-ch340genérico / clonepoco (≈1–3 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Servo SG90modulo-servogenérico / clonepoco (≈1–3 €)Señal en D9. Alimentación de 5 V y masa a la placa.
1Potenciómetromodulo-potenciometrogenérico / cloneirrisorio (<1 €)10k lineal. Extremos a 5 V y GND, cursor a A0.

La franja sale del catálogo de Hardware. No es un precio de tienda.

Cableado

Placa Pieza Extremo del potenciómetro Otro extremo del potenciómetro Cursor del potenciómetro Servo alimentación Servo masa Servo señal 5V de la Uno GND de la Uno A0 D9

Código

// AP-BIR-05 Servo en D9 gobernado por potenciómetro en A0.
#include <Servo.h>

Servo brazo;
const int pinServo = 9;
const int pinPot = A0;

void setup() {
  brazo.attach(pinServo);
}

void loop() {
  int lectura = analogRead(pinPot);
  int angulo = map(lectura, 0, 1023, 0, 180);
  brazo.write(angulo);
  delay(15);
}

Pasos

  1. Conecta los extremos del potenciómetro a 5 V y a GND, y el cursor a A0.
  2. Conecta el servo: alimentación a 5 V, masa a GND y señal a D9.
  3. Centra el potenciómetro antes de cargar, para no arrancar contra un tope.
  4. Carga el programa, que usa Servo.h del núcleo, en la Uno R3 o CH340.
  5. Gira el eje despacio de un lado al otro y mira si el servo acompaña.
  6. Si el sentido te resulta incómodo, intercambia los extremos del potenciómetro, no el código.

Variantes

Depuración

Software: analogread servo

Birdie · AP-BIR-06

Display de 7 segmentos, un dígito

Objetivo

Vas a encender un solo dígito en un display de 7 segmentos de cátodo común. Cada segmento tiene su resistencia y entra por un pin, de D2 a D8, en el orden a, b, c, d, e, f y g. El programa fija un número para que veas la máscara antes de poner el display a contar.

Materiales

Cant.PiezaFichaOrigenPrecio relativoEn este montaje
1Arduino Uno R3placa-uno-r3original / oficialconsultar (>10 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Uno R3 clone CH340placa-uno-ch340genérico / clonepoco (≈1–3 €)Elige una de las dos placas; el montaje y los pines son los mismos.
17 segmentosmodulo-7-segmentosgenérico / cloneirrisorio (<1 €)Un dígito, cátodo común. Si el tuyo es ánodo común, esta máscara se verá invertida.
7Resistenciasmodulo-resistenciagenérico / cloneirrisorio (<1 €)Una resistencia de 220 a 330 ohmios en serie con cada segmento. No las omitas.

La franja sale del catálogo de Hardware. No es un precio de tienda.

Cableado

Placa Pieza Segmento a Segmento b Segmento c Segmento d Segmento e Segmento f Segmento g Cátodo común del display Punto decimal D2 a través de resistencia D3 a través de resistencia D4 a través de resistencia D5 a través de resistencia D6 a través de resistencia D7 a través de resistencia D8 a través de resistencia GND de la Uno sin conectar

Código

// AP-BIR-06 Un dígito, cátodo común.
// Segmentos a b c d e f g en D2 D3 D4 D5 D6 D7 D8.
const uint8_t pinSeg[7] = {2, 3, 4, 5, 6, 7, 8};
const uint8_t DIGITO = 5; // cámbialo por 0..9
const uint8_t mascaraDigito[10] = {
  0b00111111, // 0
  0b00000110, // 1
  0b01011011, // 2
  0b01001111, // 3
  0b01100110, // 4
  0b01101101, // 5
  0b01111101, // 6
  0b00000111, // 7
  0b01111111, // 8
  0b01101111  // 9
};

void mostrar(uint8_t mascara) {
  for (uint8_t i = 0; i < 7; i++) {
    if (mascara & (1 << i)) {
      digitalWrite(pinSeg[i], HIGH);
    } else {
      digitalWrite(pinSeg[i], LOW);
    }
  }
}

void setup() {
  for (uint8_t i = 0; i < 7; i++) {
    pinMode(pinSeg[i], OUTPUT);
  }
  mostrar(mascaraDigito[DIGITO]);
}

void loop() {
  // El dígito se queda fijo. Cambia DIGITO y vuelve a cargar.
}

Pasos

  1. Identifica el cátodo común del display con la hoja del fabricante o el polímetro, y únelo a GND.
  2. Pon una resistencia en serie con cada segmento a, b, c, d, e, f y g.
  3. Lleva esos segmentos a D2, D3, D4, D5, D6, D7 y D8, en ese orden.
  4. Deja el punto decimal sin conectar.
  5. Carga el programa en la Uno R3 o CH340. Debe mostrarse un 5.
  6. Cambia la constante DIGITO, vuelve a cargar y comprueba que la figura coincide con el número.

Variantes

Depuración

Software: digitalwrite

Birdie · AP-BIR-07

Contador 0–9 en 7 segmentos

Objetivo

Vas a contar de 0 a 9 en el display de 7 segmentos de cátodo común, con los mismos pines D2 a D8 de la práctica del dígito fijo. El cambio de cifra lo marca millis, así el programa sigue libre para otra tarea y no se queda dormido en un retardo. Al pasar de 9 la cuenta vuelve a 0.

Materiales

Cant.PiezaFichaOrigenPrecio relativoEn este montaje
1Arduino Uno R3placa-uno-r3original / oficialconsultar (>10 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Uno R3 clone CH340placa-uno-ch340genérico / clonepoco (≈1–3 €)Elige una de las dos placas; el montaje y los pines son los mismos.
17 segmentosmodulo-7-segmentosgenérico / cloneirrisorio (<1 €)Un dígito, cátodo común, mismo cableado que el dígito fijo.
7Resistenciasmodulo-resistenciagenérico / cloneirrisorio (<1 €)220 a 330 ohmios, una por segmento.

La franja sale del catálogo de Hardware. No es un precio de tienda.

Cableado

Placa Pieza Segmento a Segmento b Segmento c Segmento d Segmento e Segmento f Segmento g Cátodo común D2 a través de resistencia D3 a través de resistencia D4 a través de resistencia D5 a través de resistencia D6 a través de resistencia D7 a través de resistencia D8 a través de resistencia GND de la Uno

Código

// AP-BIR-07 Contador 0 a 9. Cátodo común. Segmentos en D2..D8.
// El ritmo lo lleva millis, no un delay que bloquee el bucle.
const uint8_t pinSeg[7] = {2, 3, 4, 5, 6, 7, 8};
const uint8_t mascaraDigito[10] = {
  0b00111111, 0b00000110, 0b01011011, 0b01001111, 0b01100110,
  0b01101101, 0b01111101, 0b00000111, 0b01111111, 0b01101111
};
const unsigned long intervalo = 700;
unsigned long marca = 0;
uint8_t n = 0;

void mostrar(uint8_t mascara) {
  for (uint8_t i = 0; i < 7; i++) {
    digitalWrite(pinSeg[i], (mascara & (1 << i)) ? HIGH : LOW);
  }
}

void setup() {
  for (uint8_t i = 0; i < 7; i++) {
    pinMode(pinSeg[i], OUTPUT);
  }
  mostrar(mascaraDigito[0]);
  marca = millis();
}

void loop() {
  unsigned long ahora = millis();
  if (ahora - marca >= intervalo) {
    marca = ahora;
    n++;
    if (n > 9) {
      n = 0;
    }
    mostrar(mascaraDigito[n]);
  }
}

Pasos

  1. Reutiliza el cableado del dígito fijo: cátodo común a GND y segmentos a D2-D8 con resistencia.
  2. Revisa que el orden sigue siendo a, b, c, d, e, f, g.
  3. Carga el programa en la Uno R3 o CH340.
  4. Comprueba que arranca en 0 y que cada cifra dura algo menos de un segundo.
  5. Sigue la serie hasta el 9 y confirma que vuelve a 0, no a un segmento suelto.
  6. Cambia la constante intervalo, carga de nuevo y mira si el ritmo sigue a millis.

Variantes

Depuración

Software: digitalwrite millis

Birdie · AP-BIR-08

Ocho LEDs con 74HC595

Objetivo

Vas a mover un punto de luz por ocho LED usando un 74HC595, sin librería de registro. Los datos entran por DS en D11, el reloj de desplazamiento SHCP por D12 y el cerrojo STCP por D8. shiftOut empuja un byte y un pulso en el cerrojo lo publica en Q0 a Q7.

Materiales

Cant.PiezaFichaOrigenPrecio relativoEn este montaje
1Arduino Uno R3placa-uno-r3original / oficialconsultar (>10 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Uno R3 clone CH340placa-uno-ch340genérico / clonepoco (≈1–3 €)Elige una de las dos placas; el montaje y los pines son los mismos.
174HC595modulo-74hc595genérico / cloneirrisorio (<1 €)Chip suelto en protoboard. DS, SHCP y STCP a la placa; OE a masa; MR a 5 V.
8LED 5 mmmodulo-ledgenérico / cloneirrisorio (<1 €)Ánodo hacia la salida Q del 595, cátodo hacia la resistencia y masa.
8Resistenciasmodulo-resistenciagenérico / cloneirrisorio (<1 €)220 a 330 ohmios, una por LED. El 595 no limita la corriente solo.

La franja sale del catálogo de Hardware. No es un precio de tienda.

Cableado

Placa Pieza 74HC595 DS (patilla 14) 74HC595 SHCP (patilla 11) 74HC595 STCP (patilla 12) 74HC595 VCC (patilla 16) 74HC595 GND (patilla 8) 74HC595 OE (patilla 13) a GND y MR (patilla 10) a 5V D11 D12 D8 5V de la Uno GND de la Uno habilitar salidas y no resetear

Código

// AP-BIR-08 74HC595 sin librería.
// DS D11, SHCP D12, STCP D8. OE a GND, MR a 5 V.
const int pinDatos = 11;
const int pinReloj = 12;
const int pinLatch = 8;

void publicar(uint8_t valor) {
  digitalWrite(pinLatch, LOW);
  shiftOut(pinDatos, pinReloj, MSBFIRST, valor);
  digitalWrite(pinLatch, HIGH);
}

void setup() {
  pinMode(pinDatos, OUTPUT);
  pinMode(pinReloj, OUTPUT);
  pinMode(pinLatch, OUTPUT);
  publicar(0);
}

void loop() {
  for (uint8_t i = 0; i < 8; i++) {
    publicar((uint8_t)(1 << i));
    delay(180);
  }
}

Pasos

  1. Coloca el 74HC595 con la muesca como referencia y anota las patillas 14, 11, 12, 16, 8, 13 y 10.
  2. Alimenta VCC a 5 V y GND a masa. OE a masa. MR a 5 V, no a masa.
  3. Une DS a D11, SHCP a D12 y STCP a D8.
  4. Pon cada LED de Q0 a Q7 con su resistencia hacia GND. Q0 es la patilla 15.
  5. Carga el programa en la Uno R3 o CH340.
  6. Debes ver un LED que camina. Si el sentido es el contrario, el orden Q0-Q7 está girado, no el byte.

Variantes

Depuración

Software: digitalwrite

Birdie · AP-BIR-09

Teclado 4×4: leer una tecla

Objetivo

Vas a leer una tecla de un teclado de membrana 4×4 sin la librería Keypad, barriendo filas y columnas tú mismo. Las filas salen por D2 a D5 y las columnas entran por D6 a D9 con INPUT_PULLUP. Cuando una columna cae a nivel bajo, el carácter se imprime en el monitor serie a 9600 baudios.

Materiales

Cant.PiezaFichaOrigenPrecio relativoEn este montaje
1Arduino Uno R3placa-uno-r3original / oficialconsultar (>10 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Uno R3 clone CH340placa-uno-ch340genérico / clonepoco (≈1–3 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Teclado 4×4modulo-teclado-4x4genérico / clonepoco (≈1–3 €)Membrana de ocho hilos. El orden real de filas y columnas viene serigrafiado o se prueba.

La franja sale del catálogo de Hardware. No es un precio de tienda.

Cableado

Placa Pieza Fila 1 del teclado Fila 2 del teclado Fila 3 del teclado Fila 4 del teclado Columna 1 del teclado Columna 2 del teclado Columna 3 del teclado Columna 4 del teclado Mazo de la membrana D2 D3 D4 D5 D6 D7 D8 D9 orden de filas y luego columnas

Código

// AP-BIR-09 Teclado 4x4 sin librería Keypad.
// Filas D2-D5 salidas. Columnas D6-D9 INPUT_PULLUP.
const uint8_t filas[4] = {2, 3, 4, 5};
const uint8_t columnas[4] = {6, 7, 8, 9};
const char teclas[4][4] = {
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'}
};

void setup() {
  Serial.begin(9600);
  for (uint8_t f = 0; f < 4; f++) {
    pinMode(filas[f], OUTPUT);
    digitalWrite(filas[f], HIGH);
  }
  for (uint8_t c = 0; c < 4; c++) {
    pinMode(columnas[c], INPUT_PULLUP);
  }
}

void loop() {
  for (uint8_t f = 0; f < 4; f++) {
    digitalWrite(filas[f], LOW);
    for (uint8_t c = 0; c < 4; c++) {
      if (digitalRead(columnas[c]) == LOW) {
        Serial.println(teclas[f][c]);
        delay(250);
      }
    }
    digitalWrite(filas[f], HIGH);
  }
}

Pasos

  1. Cuenta ocho contactos en la membrana y sepáralos en cuatro filas y cuatro columnas según la serigrafía.
  2. Une las filas a D2, D3, D4 y D5.
  3. Une las columnas a D6, D7, D8 y D9.
  4. Carga el programa en la Uno R3 o CH340. No instales la librería Keypad: este barrido es a mano.
  5. Abre el monitor serie a 9600 baudios.
  6. Pulsa 1, luego A, luego #. Si el grupo no coincide, invierte el orden del mazo antes de reescribir la tabla.

Variantes

Depuración

Software: digitalwrite digitalread serial

Birdie · AP-BIR-10

Zumbador: escala musical

Objetivo

Vas a tocar una escala de do mayor en un zumbador pasivo con tone, subiendo de nota en nota. Cada frecuencia suena un momento y luego se corta, para que el oído separe los grados. Si el zumbador es activo solo oirás un pitido fijo: esta práctica necesita el pasivo, el que no trae oscilador dentro.

Materiales

Cant.PiezaFichaOrigenPrecio relativoEn este montaje
1Arduino Uno R3placa-uno-r3original / oficialconsultar (>10 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Uno R3 clone CH340placa-uno-ch340genérico / clonepoco (≈1–3 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Zumbador act/pasmodulo-zumbadorgenérico / cloneirrisorio (<1 €)Tiene que ser pasivo. El activo ignora la nota y pita a su frecuencia fija.

La franja sale del catálogo de Hardware. No es un precio de tienda.

Cableado

Placa Pieza Patilla de señal del zumbador pasivo Patilla de masa del zumbador Zumbador de tres patillas, si el tuyo lo es D8 GND de la Uno VCC a 5V, señal a D8, GND a masa

Código

// AP-BIR-10 Escala de do mayor en zumbador pasivo, pin D8.
const int pinZ = 8;
const int notas[] = {262, 294, 330, 349, 392, 440, 494, 523};
const int nNotas = 8;

void setup() {
  pinMode(pinZ, OUTPUT);
}

void loop() {
  for (int i = 0; i < nNotas; i++) {
    tone(pinZ, notas[i], 280);
    delay(340);
    noTone(pinZ);
    delay(40);
  }
  delay(700);
}

Pasos

  1. Comprueba que el zumbador es pasivo. Si al darle 5 V fijo ya pita, es activo y no vale para la escala.
  2. Une la señal a D8 y la masa a GND. En un módulo de tres patillas, VCC va a 5 V y la señal sigue en D8.
  3. Carga el programa en la Uno R3 o CH340.
  4. Escucha ocho notas ascendentes y una pausa.
  5. Repite el ciclo y cuenta las notas para asegurarte de que no se come el si ni el do agudo.
  6. Tapa el zumbador un segundo con el dedo: el tono no cambia, solo el volumen.

Variantes

Depuración

Software: tone

Birdie · AP-BIR-11

Melodía corta en un array

Objetivo

Vas a guardar una melodía corta en dos arrays: uno con las frecuencias y otro con la duración de cada figura. El bucle recorre las dos tablas a la vez y llama a tone en el zumbador pasivo. Un cero en la tabla de notas es un silencio, así la pausa vive dentro del propio array.

Materiales

Cant.PiezaFichaOrigenPrecio relativoEn este montaje
1Arduino Uno R3placa-uno-r3original / oficialconsultar (>10 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Uno R3 clone CH340placa-uno-ch340genérico / clonepoco (≈1–3 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Zumbador act/pasmodulo-zumbadorgenérico / cloneirrisorio (<1 €)Pasivo, el mismo montaje que la escala. Señal en D8.

La franja sale del catálogo de Hardware. No es un precio de tienda.

Cableado

Placa Pieza Señal del zumbador pasivo Masa del zumbador Módulo de tres patillas D8 GND de la Uno VCC a 5V si el módulo lo exige

Código

// AP-BIR-11 Melodía en dos arrays. Zumbador pasivo en D8.
// Un 0 en notas[] es un silencio de la duración indicada.
const int pinZ = 8;
const int notas[] = {
  262, 262, 392, 392, 440, 440, 392,
  0,
  349, 349, 330, 330, 294, 294, 262
};
const int duracion[] = {
  280, 280, 280, 280, 280, 280, 520,
  200,
  280, 280, 280, 280, 280, 280, 560
};
const int nNotas = 15;

void setup() {
  pinMode(pinZ, OUTPUT);
}

void loop() {
  for (int i = 0; i < nNotas; i++) {
    if (notas[i] > 0) {
      tone(pinZ, notas[i], duracion[i]);
    } else {
      noTone(pinZ);
    }
    delay(duracion[i]);
    noTone(pinZ);
    delay(30);
  }
  delay(900);
}

Pasos

  1. Deja el zumbador pasivo como en la escala: señal a D8 y masa a GND.
  2. Cuenta que notas y duracion tienen el mismo número de casillas.
  3. Carga el programa en la Uno R3 o CH340.
  4. Escucha la frase completa, incluida la pausa del cero, antes de que se repita.
  5. Cambia una sola duración, carga otra vez y localiza de oído qué figura se ha movido.
  6. Sustituye el silencio por una nota y comprueba que el hueco desaparece sin tocar el bucle.

Variantes

Depuración

Software: tone

Birdie · AP-BIR-12

Sensor de inclinación

Objetivo

Vas a distinguir si un sensor de inclinación está en reposo o volcado. Es un contacto, así que se lee en D2 con INPUT_PULLUP: cerrado contra masa significa inclinado y abierto significa en reposo. El estado se escribe en el monitor serie a 9600 baudios, con una pausa corta para no llenar la pantalla de rebotes.

Materiales

Cant.PiezaFichaOrigenPrecio relativoEn este montaje
1Arduino Uno R3placa-uno-r3original / oficialconsultar (>10 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Uno R3 clone CH340placa-uno-ch340genérico / clonepoco (≈1–3 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Tiltsensor-tiltgenérico / cloneirrisorio (<1 €)Contacto basculante de dos patillas. Aquí usamos la pull-up interna.

La franja sale del catálogo de Hardware. No es un precio de tienda.

Cableado

Placa Pieza Patilla A del tilt Patilla B del tilt Las dos patillas del tilt D2 GND de la Uno no las unas a 5V y a GND a la vez

Código

// AP-BIR-12 Tilt en D2 con INPUT_PULLUP. LOW = inclinado.
const int pinTilt = 2;

void setup() {
  pinMode(pinTilt, INPUT_PULLUP);
  Serial.begin(9600);
}

void loop() {
  if (digitalRead(pinTilt) == LOW) {
    Serial.println("Inclinado");
  } else {
    Serial.println("En reposo");
  }
  delay(200);
}

Pasos

  1. Trata el tilt como un interruptor de dos patillas, no como un módulo que pida 5 V.
  2. Une una patilla a D2 y la otra a GND.
  3. No añadas resistencia: el programa activa INPUT_PULLUP.
  4. Carga el programa en la Uno R3 o CH340 y abre el monitor serie a 9600 baudios.
  5. Déjalo quieto en la mesa y anota cuál es su reposo real, por si nace cerrado.
  6. Volca el sensor y comprueba que el texto cambia y se mantiene mientras no lo endereces.

Variantes

Depuración

Software: digitalread serial

Birdie · AP-BIR-13

Reed: puerta abierta o cerrada

Objetivo

Vas a saber si una puerta está abierta o cerrada con un reed y un imán. El contacto se lee en D2 con INPUT_PULLUP y, con el imán cerca, cae a nivel bajo: eso lo tomamos como puerta cerrada. Un LED repite el estado en la mesa y el monitor serie a 9600 baudios escribe la frase.

Materiales

Cant.PiezaFichaOrigenPrecio relativoEn este montaje
1Arduino Uno R3placa-uno-r3original / oficialconsultar (>10 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Uno R3 clone CH340placa-uno-ch340genérico / clonepoco (≈1–3 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Reedsensor-reedgenérico / cloneirrisorio (<1 €)Contacto magnético de dos patillas, más el imán que lo acompaña. Pull-up interna.
1LED 5 mmmodulo-ledgenérico / cloneirrisorio (<1 €)Se enciende con la puerta cerrada. Ánodo hacia D4.
1Resistenciasmodulo-resistenciagenérico / cloneirrisorio (<1 €)220 a 330 ohmios en serie con el LED.

La franja sale del catálogo de Hardware. No es un precio de tienda.

Cableado

Placa Pieza Reed patilla A Reed patilla B D4 Cátodo del LED Reed usado como si llevara alimentación D2 GND de la Uno resistencia y ánodo del LED no lo pongas entre 5V y GND

Código

// AP-BIR-13 Reed en D2 (INPUT_PULLUP) y LED en D4.
// LOW = imán cerca = puerta cerrada.
const int pinReed = 2;
const int pinLed = 4;

void setup() {
  pinMode(pinReed, INPUT_PULLUP);
  pinMode(pinLed, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  bool cerrada = (digitalRead(pinReed) == LOW);
  digitalWrite(pinLed, cerrada ? HIGH : LOW);
  if (cerrada) {
    Serial.println("Puerta cerrada");
  } else {
    Serial.println("Puerta abierta");
  }
  delay(200);
}

Pasos

  1. Une una patilla del reed a D2 y la otra a GND. El imán no lleva cables.
  2. Monta el LED con resistencia entre D4 y GND, ánodo hacia el pin.
  3. Carga el programa en la Uno R3 o CH340 y abre el monitor serie a 9600 baudios.
  4. Aleja el imán: debe decir puerta abierta y el LED apagado.
  5. Acerca el imán en paralelo al cuerpo del reed: puerta cerrada y LED encendido.
  6. Pega el reed al marco y el imán a la hoja, alineados, y prueba el cierre real de la puerta.

Variantes

Depuración

Software: digitalread digitalwrite serial

Birdie · AP-BIR-14

Obstáculo por infrarrojo

Objetivo

Vas a detectar un obstáculo cercano con un módulo de infrarrojos digital, no una distancia en centímetros. La salida entra por D2 y, en la mayoría de estas placas, baja a nivel bajo cuando hay algo delante. El monitor serie a 9600 baudios dice si el camino está libre o hay obstáculo.

Materiales

Cant.PiezaFichaOrigenPrecio relativoEn este montaje
1Arduino Uno R3placa-uno-r3original / oficialconsultar (>10 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Uno R3 clone CH340placa-uno-ch340genérico / clonepoco (≈1–3 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1IR obstáculo / TSOPsensor-irgenérico / cloneirrisorio (<1 €)Módulo de obstáculo con salida digital. Lleva un tornillo de alcance.

La franja sale del catálogo de Hardware. No es un precio de tienda.

Cableado

Placa Pieza Módulo IR VCC Módulo IR GND Módulo IR OUT Tornillo del módulo 5V de la Uno GND de la Uno D2 ajuste de alcance, no es un pin de la Uno

Código

// AP-BIR-14 Obstáculo IR digital en D2.
// En la mayoría de módulos, LOW significa que hay algo delante.
const int pinIr = 2;

void setup() {
  pinMode(pinIr, INPUT);
  Serial.begin(9600);
}

void loop() {
  if (digitalRead(pinIr) == LOW) {
    Serial.println("Obstaculo");
  } else {
    Serial.println("Libre");
  }
  delay(120);
}

Pasos

  1. Alimenta el módulo entre 5 V y GND y une OUT a D2.
  2. No uses el receptor de un mando: esta práctica es el módulo de obstáculo, con emisor y receptor juntos.
  3. Carga el programa en la Uno R3 o CH340 y abre el monitor serie a 9600 baudios.
  4. Apunta a un espacio vacío. Si dice obstáculo sin nada delante, gira un poco el tornillo.
  5. Pon la mano a unos 8 cm y mira el cambio de frase.
  6. Prueba una superficie negra y otra blanca: el alcance no es el mismo, y eso es del óptico, no del código.

Variantes

Depuración

Software: digitalread serial

Birdie · AP-BIR-15

Motor DC con transistor y pulsador

Objetivo

Vas a arrancar un motor de continua solo mientras mantienes un pulsador. Un transistor conmuta la corriente y un diodo frena el pico al cortar. La alimentación del motor va aparte: la placa solo manda la base del transistor a través de una resistencia, y el pin de la Uno no alimenta el motor.

Materiales

Cant.PiezaFichaOrigenPrecio relativoEn este montaje
1Arduino Uno R3placa-uno-r3original / oficialconsultar (>10 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Uno R3 clone CH340placa-uno-ch340genérico / clonepoco (≈1–3 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Motor DCmodulo-motor-dcgenérico / clonepoco (≈1–3 €)Motor pequeño. Su positivo va a la pila, no a un pin de la Uno.
1BJT / MOSFETmodulo-transistorgenérico / cloneirrisorio (<1 €)NPN, por ejemplo 2N2222, o un MOSFET de canal N que conmute a masa.
1Diodo 1N4148/4007modulo-diodogenérico / cloneirrisorio (<1 €)En antiparalelo con el motor. La raya del diodo mira al positivo de la pila.
1Pulsadormodulo-pulsadorgenérico / cloneirrisorio (<1 €)Entre D2 y GND. Pull-up interna.
1Resistenciasmodulo-resistenciagenérico / cloneirrisorio (<1 €)220 a 1000 ohmios entre D3 y la base. No unas la base directo al pin.

La franja sale del catálogo de Hardware. No es un precio de tienda.

Cableado

Placa Pieza Pulsador Otra patilla del pulsador D3 Emisor del NPN Negativo de la pila del motor Positivo de la pila, diodo y motor D2 GND de la Uno resistencia de base y base del transistor colector del transistor

Código

// AP-BIR-15 Motor con transistor. Pulsador en D2, base en D3.
// El motor NO se alimenta del pin: pila aparte, masa común, diodo en antiparalelo.
// Raya del diodo hacia el positivo de la pila. Resistencia entre D3 y la base.
const int pinBoton = 2;
const int pinBase = 3;

void setup() {
  pinMode(pinBoton, INPUT_PULLUP);
  pinMode(pinBase, OUTPUT);
  digitalWrite(pinBase, LOW);
}

void loop() {
  if (digitalRead(pinBoton) == LOW) {
    digitalWrite(pinBase, HIGH);
  } else {
    digitalWrite(pinBase, LOW);
  }
}

Pasos

  1. Corta la pila del motor mientras cableas. No la conectes al conector de 5 V de la Uno.
  2. Pon el pulsador entre D2 y GND.
  3. Pon la resistencia entre D3 y la base. Emisor a GND de la placa.
  4. Negativo de la pila a ese mismo GND. Positivo de la pila a un borne del motor. El otro borne, al colector.
  5. Coloca el diodo en antiparalelo con el motor, raya hacia el positivo de la pila.
  6. Carga el programa en la Uno R3 o CH340, conecta la pila y mantén el pulsador: el motor gira solo mientras lo pulsas.
  7. Suelta el pulsador y comprueba que el motor para. Si la placa se reinicia, el motor está chupando del USB.

Variantes

Depuración

Software: digitalread digitalwrite

Birdie · AP-BIR-16

Relé a baja tensión (sin red)

Objetivo

Vas a conmutar un circuito de baja tensión, entre 5 y 12 V, con un módulo de relé mandado por un pin digital. La carga de esta práctica es un LED con su resistencia. No se toca la red de casa: los contactos del relé no ven un enchufe ni una lámpara de la instalación.

Materiales

Cant.PiezaFichaOrigenPrecio relativoEn este montaje
1Arduino Uno R3placa-uno-r3original / oficialconsultar (>10 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Uno R3 clone CH340placa-uno-ch340genérico / clonepoco (≈1–3 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Relé 5 Vmodulo-relegenérico / clonepoco (≈1–3 €)Módulo de un canal a 5 V en la bobina. Los contactos solo conmutan 5 a 12 V.
1LED 5 mmmodulo-ledgenérico / cloneirrisorio (<1 €)Carga de prueba al otro lado del contacto, no en el pin de control.
1Resistenciasmodulo-resistenciagenérico / cloneirrisorio (<1 €)220 a 330 ohmios en serie con el LED de prueba.

La franja sale del catálogo de Hardware. No es un precio de tienda.

Cableado

Placa Pieza IN del módulo de relé VCC del módulo GND del módulo Contacto COM Contacto NO Cátodo del LED D8 5V de la Uno GND de la Uno 5V de la placa, solo para el LED de prueba resistencia y ánodo del LED

Código

// AP-BIR-16 Relé en D8. Solo conmuta 5 a 12 V.
// No se toca la red de casa. Carga de prueba: LED con resistencia en NO.
// Módulo típico activo a nivel bajo: HIGH = suelto, LOW = armado.
const int pinRele = 8;

void setup() {
  pinMode(pinRele, OUTPUT);
  digitalWrite(pinRele, HIGH);
}

void loop() {
  digitalWrite(pinRele, LOW);
  delay(1000);
  digitalWrite(pinRele, HIGH);
  delay(1000);
}

Pasos

  1. Aparta cualquier cable de red. En esta práctica no se toca la red de casa.
  2. Alimenta el módulo: VCC a 5 V, GND a masa, IN a D8.
  3. En el borne de tornillo usa solo COM y NO para un circuito de 5 a 12 V.
  4. Aquí COM va a 5 V de la placa y NO al LED con resistencia. Deja NC sin usar.
  5. Carga el programa en la Uno R3 o CH340.
  6. Cada segundo debes oír el clic y ver el LED de prueba encenderse y apagarse.
  7. Si el clic va al revés del LED, estás en NC o el módulo es activo a nivel alto: corrige el borne o la lógica, sin subir de 12 V.

Variantes

Depuración

Software: digitalwrite

Birdie · AP-BIR-17

LED RGB con tres PWM

Objetivo

Vas a mezclar color en un LED RGB de cátodo común con tres PWM: rojo en D3, verde en D5 y azul en D6. analogWrite fija cada canal entre 0 y 255 y el ojo suma la luz. El cátodo común va a masa; si lo llevas a 5 V el LED no enciende como esperas.

Materiales

Cant.PiezaFichaOrigenPrecio relativoEn este montaje
1Arduino Uno R3placa-uno-r3original / oficialconsultar (>10 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Uno R3 clone CH340placa-uno-ch340genérico / clonepoco (≈1–3 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1LED RGBmodulo-led-rgbgenérico / cloneirrisorio (<1 €)Cátodo común: la patilla común es el cátodo. Tres ánodos de color.
3Resistenciasmodulo-resistenciagenérico / cloneirrisorio (<1 €)220 a 330 ohmios, una por canal.

La franja sale del catálogo de Hardware. No es un precio de tienda.

Cableado

Placa Pieza Ánodo rojo Ánodo verde Ánodo azul Cátodo común Patilla común D3 a través de resistencia D5 a través de resistencia D6 a través de resistencia GND de la Uno no la lleves a 5V si es cátodo

Código

// AP-BIR-17 RGB cátodo común. PWM en D3 rojo, D5 verde, D6 azul.
const int pinR = 3;
const int pinG = 5;
const int pinB = 6;

void color(int r, int g, int b) {
  analogWrite(pinR, r);
  analogWrite(pinG, g);
  analogWrite(pinB, b);
}

void setup() {
  pinMode(pinR, OUTPUT);
  pinMode(pinG, OUTPUT);
  pinMode(pinB, OUTPUT);
  color(0, 0, 0);
}

void loop() {
  color(255, 0, 0);
  delay(600);
  color(0, 255, 0);
  delay(600);
  color(0, 0, 255);
  delay(600);
  color(255, 80, 0);
  delay(600);
  color(0, 0, 0);
  delay(400);
}

Pasos

  1. Identifica el cátodo común. Suele ser la patilla más larga, pero confírmalo con la serigrafía de tu LED.
  2. Lleva el cátodo a GND.
  3. Pon una resistencia en el rojo hacia D3, otra en el verde hacia D5 y otra en el azul hacia D6.
  4. Carga el programa en la Uno R3 o CH340.
  5. Debes ver rojo, verde, azul y un ámbar, y luego un apagado corto.
  6. Si un color no aparece, cambia solo ese canal a 255 y los otros a 0 antes de recolocar cables.

Variantes

Depuración

Software: analogwrite pwm

Birdie · AP-BIR-18

Joystick: ejes X e Y

Objetivo

Vas a leer los dos ejes de un joystick y el pulsador del mango. VRx entra por A0, VRy por A1 y el pulsador SW por D2 con INPUT_PULLUP, así que pulsado es nivel bajo. Las tres lecturas salen en una sola línea del monitor serie a 9600 baudios.

Materiales

Cant.PiezaFichaOrigenPrecio relativoEn este montaje
1Arduino Uno R3placa-uno-r3original / oficialconsultar (>10 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Uno R3 clone CH340placa-uno-ch340genérico / clonepoco (≈1–3 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Joystickmodulo-joystickgenérico / cloneirrisorio (<1 €)Módulo con VRx, VRy, SW, 5 V y GND. El pulsador es un contacto a masa.

La franja sale del catálogo de Hardware. No es un precio de tienda.

Cableado

Placa Pieza Joystick VRx Joystick VRy Joystick SW Joystick VCC Joystick GND SW sin pull-up A0 A1 D2 5V de la Uno GND de la Uno lecturas que parpadean al soltar

Código

// AP-BIR-18 Joystick: VRx A0, VRy A1, SW D2 con INPUT_PULLUP.
const int pinX = A0;
const int pinY = A1;
const int pinSw = 2;

void setup() {
  pinMode(pinSw, INPUT_PULLUP);
  Serial.begin(9600);
}

void loop() {
  int x = analogRead(pinX);
  int y = analogRead(pinY);
  int sw = digitalRead(pinSw);
  Serial.print("X=");
  Serial.print(x);
  Serial.print(" Y=");
  Serial.print(y);
  Serial.print(" SW=");
  Serial.println(sw == LOW ? "pulsado" : "suelto");
  delay(150);
}

Pasos

  1. Une VCC del joystick a 5 V y GND a masa.
  2. Une VRx a A0, VRy a A1 y SW a D2.
  3. Carga el programa en la Uno R3 o CH340.
  4. Abre el monitor serie a 9600 baudios y no toques el mango: X e Y deben rondar el centro, cerca de 512.
  5. Empuja a los lados y luego arriba y abajo, y anota qué eje se mueve cada vez.
  6. Pulsa el mango hacia abajo: SW tiene que decir pulsado y volver a suelto al soltar.

Variantes

Depuración

Software: analogread digitalread serial

Birdie · AP-BIR-19

LCD 16×2 por I2C: un texto

Objetivo

Vas a escribir un texto de dos líneas en un LCD 16×2 con mochila I2C, usando LiquidCrystal_I2C en la dirección 0x27. En la Uno, SDA es A4 y SCL es A5. Tras init y backlight debes ver el mensaje, señal de que el bus y el contraste responden.

Materiales

Cant.PiezaFichaOrigenPrecio relativoEn este montaje
1Arduino Uno R3placa-uno-r3original / oficialconsultar (>10 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Uno R3 clone CH340placa-uno-ch340genérico / clonepoco (≈1–3 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1LCD 1602 I2Cmodulo-lcd-1602genérico / clonepoco (≈1–3 €)LCD 16×2 con mochila I2C. Dirección de partida 0x27. Alimentación a 5 V.

La franja sale del catálogo de Hardware. No es un precio de tienda.

Cableado

Placa Pieza LCD VCC LCD GND LCD SDA LCD SCL Potenciómetro de contraste de la mochila 5V de la Uno GND de la Uno A4 A5 no es un pin de la Uno

Código

// AP-BIR-19 LCD 16x2 I2C. Dirección 0x27.
// Uno: SDA en A4, SCL en A5. Librería LiquidCrystal_I2C.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  // No uses pinMode en A4 ni A5: Wire los toma como SDA y SCL.
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Hola, Birdie");
  lcd.setCursor(0, 1);
  lcd.print("Linea dos lista");
}

void loop() {
  // El texto queda fijo. Reescribirlo en cada vuelta no hace falta.
}

Pasos

  1. Instala la librería LiquidCrystal_I2C desde el gestor del IDE.
  2. Une VCC a 5 V, GND a masa, SDA a A4 y SCL a A5.
  3. No pongas pinMode en A4 ni en A5.
  4. Carga el programa en la Uno R3 o CH340, con la dirección 0x27.
  5. Gira un poco el potenciómetro de contraste de la mochila hasta que las letras se lean.
  6. Comprueba las dos líneas. Si la segunda queda vacía, el cursor de esa línea no se llegó a fijar.

Variantes

Depuración

Software: i2c

Birdie · AP-BIR-20

Lecturas en serie, una línea por muestra

Objetivo

Vas a imprimir cada muestra en una sola línea del monitor serie: el tiempo de millis, la temperatura del TMP36 y la posición de un potenciómetro. Una fila es una muestra, así puedes copiar el texto sin recomponer columnas a mano. La puerta serie va a 9600 baudios y la fórmula del TMP36 es la misma de la práctica de temperatura.

Materiales

Cant.PiezaFichaOrigenPrecio relativoEn este montaje
1Arduino Uno R3placa-uno-r3original / oficialconsultar (>10 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1Uno R3 clone CH340placa-uno-ch340genérico / clonepoco (≈1–3 €)Elige una de las dos placas; el montaje y los pines son los mismos.
1TMP36sensor-tmp36ambos (oficial y genérico)poco (≈1–3 €)Vout al A0. Patilla central, con la cara plana hacia ti.
1Potenciómetromodulo-potenciometrogenérico / cloneirrisorio (<1 €)Cursor al A1. Extremos a 5 V y GND.

La franja sale del catálogo de Hardware. No es un precio de tienda.

Cableado

Placa Pieza TMP36 Vs TMP36 GND TMP36 Vout Extremo del potenciómetro Otro extremo del potenciómetro Cursor del potenciómetro 5V de la Uno GND de la Uno A0 A1

Código

// AP-BIR-20 Una línea por muestra: millis, TMP36 en A0, potenciómetro en A1.
// Monitor serie a 9600. Separador ';' para copiar la columna.
const int pinTmp = A0;
const int pinPot = A1;
unsigned long ultima = 0;

void setup() {
  Serial.begin(9600);
  Serial.println("ms;tempC;pot");
}

void loop() {
  unsigned long ahora = millis();
  if (ahora - ultima >= 500) {
    ultima = ahora;
    int cruda = analogRead(pinTmp);
    float tempC = (cruda * 5.0 / 1023.0 - 0.5) * 100.0;
    int pot = analogRead(pinPot);
    Serial.print(ahora);
    Serial.print(';');
    Serial.print(tempC, 1);
    Serial.print(';');
    Serial.println(pot);
  }
}

Pasos

  1. Cablea el TMP36: Vs a 5 V, GND a masa, Vout a A0.
  2. Cablea el potenciómetro: extremos a 5 V y GND, cursor a A1, no a A0.
  3. Carga el programa en la Uno R3 o CH340.
  4. Abre el monitor serie a 9600 baudios y espera la cabecera ms;tempC;pot.
  5. Comprueba que cada muestra ocupa una sola línea, con dos separadores.
  6. Gira el potenciómetro y calienta el TMP36: solo debe cambiar su campo, sin partir la línea.

Variantes

Depuración

Software: analogread serial millis