martes, 12 de marzo de 2024

MANEJO BASICO DE LA LCD 16X2 PARA MOSTRAR DATOS

 MANEJO BASICO DE LA LCD 16X2 PARA MOSTRAR DATOS

Introducción a la Interfaz I2C:

I2C (Inter-Integrated Circuit) es un bus de comunicación serial de dos cables que permite la comunicación entre varios dispositivos utilizando solo dos cables: uno para la transmisión de datos (SDA) y otro para el reloj de sincronización (SCL).

El protocolo I2C es ampliamente utilizado en dispositivos electrónicos, incluidos sensores, pantallas y otros periféricos.


Pantallas LCD 16x2 con Interfaz I2C:

Existen versiones de pantallas LCD 16x2 que incluyen un módulo de interfaz I2C integrado.

Este módulo I2C reduce significativamente la cantidad de pines necesarios para controlar la pantalla LCD, ya que solo requiere dos pines (SDA y SCL) en lugar de los múltiples pines necesarios para la comunicación directa.

Clic aquí para descargar código: DESCARGAR


Introducción a la Pantalla LCD 16x2:

Una pantalla LCD 16x2 es un dispositivo de visualización de caracteres que puede mostrar dos líneas de texto, cada una con hasta 16 caracteres.

Estas pantallas son ampliamente utilizadas en proyectos de Arduino debido a su facilidad de uso y su capacidad para mostrar información de manera clara y legible.


Conexión Física:

Las pantallas LCD 16x2 se pueden conectar a Arduino utilizando un conjunto de cables y una resistencia potenciómetro para controlar el contraste.

La conexión típica implica conectar los pines de datos (D4-D7) y control (RS, RW, E) del LCD a los pines digitales del Arduino.


Librería LiquidCrystal:

Para controlar la pantalla LCD desde Arduino, se utiliza la librería LiquidCrystal.

Esta librería simplifica enormemente el proceso de enviar comandos y datos a la pantalla LCD.

Se puede incluir al principio de tu código de Arduino utilizando la siguiente línea:

#include <LiquidCrystal.h>


Ejemplo Completo:

Aquí tienes un ejemplo de código completo para mostrar "Hola, mundo!" en la pantalla LCD 16x2:


#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


void setup() {

  lcd.begin(16, 2);

  lcd.print("Hola, mundo!");

}


void loop() {

  // Aquí puedes agregar tu código loop si lo necesitas

}

Estos son los conceptos básicos para comenzar a usar una pantalla LCD 16x2 con Arduino. Puedes expandir este conocimiento para crear proyectos más complejos y mostrar información más dinámica en la pantalla.


lunes, 4 de marzo de 2024

CONTROLAR MOTORES DE BOBINADORA CON EL DRIVER L298N

 CONTROLAR MOTORES DE BOBINADORA CON EL DRIVER L298N

Descargue codigo para el anterior circuito: DESCARGAR

Objetivo:

Controlar dos motores reductores con Arduino y el puente H L298N. Este ejemplo utilizará un Arduino Uno y dos motores de corriente continua.

Sistema: El puente H L298N es un controlador de motor dual que te permite controlar la dirección y velocidad de dos motores de corriente continua. Este dispositivo tiene pines para la conexión de los motores y utiliza pulsos PWM para controlar la velocidad y direcciones para determinar el sentido de giro.

Conexión física:

·         Conecta las salidas de los motores a las salidas OUT1 y OUT2, y OUT3 y OUT4 del módulo L298N.

·         Alimenta el módulo L298N con una fuente de energía externa (asegúrate de que comparta tierra con Arduino).

·         Conecta la entrada de alimentación de Arduino a una fuente de energía.

Conexión lógica:

·         Conecta los pines de control de dirección (IN1, IN2, IN3, IN4) del módulo L298N a pines digitales de Arduino (4, 5, 6, 7 respectivamente).

·         Conecta el pin Enable A (ENA) del L298N al pin digital de Arduino 3 para controlar la velocidad del motor 1.

·         Conecta el pin Enable B (ENB) del L298N al pin digital de Arduino 9 para controlar la velocidad del motor 2.

Código en Arduino:

/*

 Programa: ControlMotoresBobinadora

 Programa para controlar motores de la bobinadora

 Movimiento independiente de cada motor conectado al

 driver l298N


El programa controla dos motores de una bobinadora de forma independiente.

Los motores pueden moverse hacia adelante, hacia atrás y detenerse, y las velocidades

de cada motor son controlables mediante las variables velocidadMotor1 y velocidadMotor2.  El código está estructurado de manera modular, lo que facilita la comprensión y modificación de las funciones de control de motores.

*/

 

// Declaración de variables para el primer motor (MOTOR 1)

int enaPin1 = 3; // Pin ENA conectado al pin 3 del Arduino

int in1Pin1 = 4; // Pin IN1 conectado al pin 4 del Arduino

int in2Pin1 = 5; // Pin IN2 conectado al pin 5 del Arduino

 

// Declaración de variables para el segundo motor  (MOTOR 2)

int enbPin2 = 9; // Pin ENB conectado al pin 9 del Arduino

int in3Pin2 = 6; // Pin IN3 conectado al pin 6 del Arduino

int in4Pin2 = 7; // Pin IN4 conectado al pin 7 del Arduino

 

// Declarar variables para controlar las velocidades de cada motor

int velocidadMotor1 = 255;

int velocidadMotor2 = 255;

 

 

void setup() {

  // Establecer modo de los pines a usar para el primer motor

  pinMode(enaPin1, OUTPUT); // usado para habilitar PWM para controlar velocidad

  pinMode(in1Pin1, OUTPUT);

  pinMode(in2Pin1, OUTPUT);

 

  // Establecer modo de los pines a usar para el segundo motor

  pinMode(enbPin2, OUTPUT);

  pinMode(in3Pin2, OUTPUT);

  pinMode(in4Pin2, OUTPUT);

}

 

// Funciones para controlar el primer motor

void motor1Adelante() {

  digitalWrite(in1Pin1, HIGH);

  digitalWrite(in2Pin1, LOW);

  analogWrite(enaPin1, velocidadMotor1); // Velocidad máxima (0-255)

}

 

void motor1Atras() {

  digitalWrite(in1Pin1, LOW);

  digitalWrite(in2Pin1, HIGH);

  analogWrite(enaPin1, velocidadMotor1); // Velocidad máxima (0-255)

}

 

void detenerMotor1() {

  digitalWrite(in1Pin1, LOW);

  digitalWrite(in2Pin1, LOW);

  analogWrite(enaPin1, 0);

}

 

// Funciones para controlar el segundo motor

void motor2Adelante() {

  digitalWrite(in3Pin2, HIGH);

  digitalWrite(in4Pin2, LOW);

  analogWrite(enbPin2, velocidadMotor2); // Velocidad máxima (0-255)

}

 

void motor2Atras() {

  digitalWrite(in3Pin2, LOW);

  digitalWrite(in4Pin2, HIGH);

  analogWrite(enbPin2, velocidadMotor2); // Velocidad máxima (0-255)

}

 

void detenerMotor2() {

  digitalWrite(in3Pin2, LOW);

  digitalWrite(in4Pin2, LOW);

  analogWrite(enbPin2, 0);

}

 

void loop() {

  // Controlar el primer motor

  motor1Adelante();

  delay(4000);

 

  detenerMotor1();

  delay(2000);

   

  motor1Atras();

  delay(4000);

 

 

 

  // Controlar el segundo motor

  motor2Adelante();

  delay(4000);

 

  detenerMotor2();

  delay(2000);

 

  motor2Atras();

  delay(4000);

}

 

En resumen, el programa controla dos motores de una bobinadora de forma independiente. Los motores pueden moverse hacia adelante, hacia atrás y detenerse, y las velocidades de cada motor son controlables mediante las variables velocidadMotor1 y velocidadMotor2.

El código está estructurado de manera modular, lo que facilita la comprensión y modificación de las funciones de control de motores.


MANEJO BASICO DE LA LCD 16X2 PARA MOSTRAR DATOS

  MANEJO BASICO DE LA LCD 16X2 PARA MOSTRAR DATOS Introducción a la Interfaz I2C: I2C (Inter-Integrated Circuit) es un bus de comunicación s...