Skip to main content
Estos ejemplos muestran cómo usar Cod-ES con hardware de mayor complejidad: motores paso a paso (PAP) y pantallas LCD con interfaz I2C. Cada módulo se activa con una directiva #define antes de incluir la librería.

Motor PAP (paso a paso)

Controla la posición de un motor paso a paso en función del valor leído de un potenciómetro conectado al pin analógico A0. El motor se mueve solo la diferencia entre la posición actual y la anterior.
Conecta el motor paso a paso a los pines 8, 9, 10 y 11 mediante un driver de motor (por ejemplo, ULN2003 para motores 28BYJ-48 o similar). Conecta el potenciómetro entre 5 V, GND y la patilla central al pin A0.
Este ejemplo requiere activar el módulo Motor PAP. Agrega #define INCLUIR_MOTOR_PAP antes de #include <Cod-ES.h>.
MotorPAP.ino

Diagrama de conexión

1

Driver del motor → pines 8, 9, 10 y 11

Las cuatro entradas de control del driver (IN1, IN2, IN3, IN4 en el ULN2003) se conectan a los pines 8, 9, 10 y 11 respectivamente. El driver se alimenta con 5 V y GND independientes.
2

Potenciómetro → A0

El pin central (cursor) del potenciómetro va al pin A0. Los extremos van a 5 V y GND. Girando el potenciómetro se controla la posición del motor.

Explicación línea por línea

1

#define INCLUIR_MOTOR_PAP

Activa el módulo MotorPAP de Cod-ES, que envuelve la clase Stepper de Arduino en español. Debe declararse antes de #include <Cod-ES.h>.
2

constante entero PASOS = 100

Define el número de pasos por revolución del motor. constante equivale a const en Arduino estándar. Este valor depende del motor físico utilizado (un 28BYJ-48 tiene 2048 pasos por revolución en modo completo).
3

MotorPAP motor(PASOS, 8, 9, 10, 11)

Crea un objeto de la clase MotorPAP. Los argumentos son: pasos por revolución y los cuatro pines de control del motor en el driver.
4

motor.ajustarVelocidad(30)

Equivale a stepper.setSpeed(30). Configura la velocidad del motor en RPM. A mayor valor, más rápido gira el motor (dentro de los límites físicos del hardware).
5

entero valor = leerPin(0, ANALOGICO)

Lee el valor del potenciómetro en el pin A0 (especificado como 0). El valor está entre 0 y 1023.
6

motor.paso(valor - previo)

Equivale a stepper.step(valor - previo). Mueve el motor el número de pasos igual a la diferencia entre la posición actual del potenciómetro y la anterior. Si no hubo cambio, el motor no se mueve. Un valor negativo gira en sentido contrario.
7

previo = valor

Guarda el valor actual como referencia para el próximo ciclo, de modo que solo se mueva la diferencia incremental.

LCD I2C

Muestra texto en una pantalla LCD 16x2 conectada por el bus I2C. Al iniciar la placa, enciende el backlight y escribe ”!Hola, mundo!” en la primera fila.
Conecta el módulo LCD I2C de la siguiente manera: SDA al pin A4, SCL al pin A5, VCC a 5 V y GND a GND. La dirección I2C predeterminada es 0x27 (puede variar según el módulo; usa un escáner I2C si no funciona).
Este ejemplo requiere activar el módulo LCD I2C. Agrega #define INCLUIR_LCD_I2C antes de #include <Cod-ES.h>.
LCD.ino

Diagrama de conexión del módulo I2C

1

GND → GND

Referencia de tierra compartida entre el módulo y la placa Arduino.
2

VCC → 5 V

Alimentación del módulo LCD I2C.
3

SDA → pin A4

Línea de datos del bus I2C. En Arduino Uno y Nano, SDA está en el pin A4.
4

SCL → pin A5

Línea de reloj del bus I2C. En Arduino Uno y Nano, SCL está en el pin A5.

Explicación línea por línea

1

#define INCLUIR_LCD_I2C

Activa el módulo LCD_I2C de Cod-ES. Debe declararse antes de #include <Cod-ES.h>.
2

LCD_I2C lcd(0x27, 16, 2)

Crea un objeto de la clase LCD_I2C. Los argumentos son: dirección I2C del módulo (0x27), número de columnas (16) y número de filas (2). Ajusta la dirección si tu módulo usa 0x3F u otra.
3

lcd.inicializar()

Inicializa la comunicación I2C con el display y lo prepara para recibir texto. Debe llamarse en inicio antes de cualquier otra operación sobre el LCD.
4

lcd.encenderLuz()

Enciende el backlight (retroiluminación) del display. Por defecto el backlight está apagado tras la inicialización.
5

lcd.ajustarCursor(1, 0)

Posiciona el cursor en la columna 1, fila 0 (segunda columna, primera fila). Los índices comienzan en 0. Equivale a lcd.setCursor(1, 0) en la librería LiquidCrystal_I2C estándar.
6

lcd.imprimirCadena("!Hola, mundo!")

Escribe la cadena de texto en la posición actual del cursor. Equivale a lcd.print("!Hola, mundo!").
7

bucle (vacío)

El bloque bucle está vacío porque el ejemplo solo escribe el mensaje una vez al inicio. El LCD retiene el contenido mientras esté alimentado.
Si la pantalla muestra cuadros en lugar de texto, ajusta el contraste girando el potenciómetro del módulo I2C con un destornillador pequeño. Si no aparece nada, verifica la dirección I2C con un escáner y actualiza el valor 0x27 en el constructor.

Plantilla

El archivo Plantilla.ino es el punto de partida recomendado para crear nuevos sketches con Cod-ES. Incluye la librería y define los bloques mínimos inicio y bucle con comentarios guía.
Plantilla.ino
Para usar módulos opcionales (Servo, Serie, Ultrasonico, MotorPAP, LCD_I2C), agrega el #define correspondiente antes de #include <Cod-ES.h>:

Referencia de módulos opcionales

Referencia rápida de palabras clave usadas