Hola, que tal tengo un problema con mi codigo, me tira el erorr en LCD.h, la libreria ya esta incluida, que es LiquidCrystal_I2C-1.1.2
Dejo mi codigo para ver si me pueden ayudar
#include <SoftwareSerial.h> //Libreria bluetooth
//Librerias Display LCD
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <LCD.h>
#define I2C_ADDR 0x27 //Bus I2C
LiquidCrystal_I2C lcd(I2C_ADDR, 2, 1, 0, 4, 5, 6, 7); //Se define la variable para el Display LCD
//int sensorMetal = 3; //Sensor de metales
//int bocina = 2; //Buzzer
//Rueda 1
int motor1pin1 = 13;
int motor1pin2 = 12;
int enableA = 11;
//Rueda 2
int motor2pin1 = 8;
int motor2pin2 = 9;
int enableB = 10;
//Rueda 4
int motor4pin1 = 5;
int motor4pin2 = 6;
int enableA2 = 7;
//Rueda 3
int motor3pin1 = 3;
int motor3pin2 = 4;
int enableB2 = 2;
void setup()
{
pinMode(motor1pin1, OUTPUT);
pinMode(motor1pin2, OUTPUT);
pinMode(motor2pin1, OUTPUT);
pinMode(motor2pin2, OUTPUT);
pinMode(motor3pin1, OUTPUT);
pinMode(motor3pin2, OUTPUT);
pinMode(motor4pin1, OUTPUT);
pinMode(motor4pin2, OUTPUT);
//pinMode(sensorMetal, INPUT);
//pinMode(bocina, OUTPUT);
lcd.begin (16,2); // Inicializar el display con 16 columnas y 2 filas
lcd.setBacklightPin(3,POSITIVE);
lcd.setBacklight(HIGH);
Serial.begin(9600); //Inicializar el puerto Serial a 9600 Baudios
Serial2.begin(9600); //Inicializar el puerto nuevo Serial_2 a 9600 Baudios
}
void loop()
{
//Movilidad del vehiculo
char direccion = ' ';
if(Serial2.available() > 0)
{
direccion = Serial2.read();
delay(10);
Serial.println(direccion);
}
if(direccion == 'W') //El vehiculo avanza
{
Avanzar();
}
if(direccion == 'S') //El vehiculo retocede
{
Retroceder();
}
if(direccion == 'A') //El vehiculo gira a la izquierda
{
GiroIzquierda();
}
if(direccion == 'D') //El vehiculo gira a la derecha
{
GiroDerecha();
}
if(direccion == 'X') //Detiene el vehiculo
{
Neutro();
}
if(direccion == 'C') //Enciende alarma
{
Alarma(bocina);
}
//Sensor detector de metales
delay(200);
int estado = digitalRead(sensorMetal);
Serial.println(estado);
if (estado == HIGH)
{
lcd.clear();
lcd.setCursor(0,0); // Se situa el cursor en la columna 0 fila 0
lcd.print("NO HAY METALES"); // Se escribe en la fila 0
Serial.println("NO HAY METALES");
delay(100);
}
else
{
lcd.clear();
lcd.setCursor(0,0); // Se situa el cursor en la columna 0 fila 0
lcd.print("METAL DETECTADO"); // Se escribe en la fila 0
Serial.println("METAL DETECTADO");
Alarma(bocina);
delay(100);
}
}
void Avanzar() //Funcion que hace avanzar el vehiculo
{
analogWrite(enableA, 255);
digitalWrite(motor1pin1, LOW);
digitalWrite(motor1pin2, HIGH);
analogWrite(enableB, 255);
digitalWrite(motor2pin1, HIGH);
digitalWrite(motor2pin2, LOW);
analogWrite(enableA2, 225);
digitalWrite(motor3pin1, HIGH);
digitalWrite(motor3pin2, LOW);
analogWrite(enableB2, 225);
digitalWrite(motor4pin1, HIGH);
digitalWrite(motor4pin2, LOW);
delay(100);
}
void Retroceder() //Funcion que hace retroceder el vehiculo
{
analogWrite(enableA, 255);
digitalWrite(motor1pin1, HIGH);
digitalWrite(motor1pin2, LOW);
analogWrite(enableB, 255);
digitalWrite(motor2pin1, LOW);
digitalWrite(motor2pin2, HIGH);
analogWrite(enableB2, 255);
digitalWrite(motor3pin1, LOW);
digitalWrite(motor3pin2, HIGH);
analogWrite(enableA2, 255);
digitalWrite(motor4pin1, LOW);
digitalWrite(motor4pin2, HIGH);
delay(100);
}
void GiroDerecha() //Funcion que gira el vehiculo a la derecha
{
analogWrite(enableA, 128);
digitalWrite(motor1pin1, HIGH);
digitalWrite(motor1pin2, LOW);
analogWrite(enableB, 128);
digitalWrite(motor2pin1, LOW);
digitalWrite(motor2pin2, HIGH);
analogWrite(enableB2, 128);
digitalWrite(motor3pin1, HIGH);
digitalWrite(motor3pin2, LOW);
analogWrite(enableA2, 128);
digitalWrite(motor4pin1, HIGH);
digitalWrite(motor4pin2, LOW);
delay(100);
}
void GiroIzquierda() //Funcion que gira el vehiculo a la izquierda
{
analogWrite(enableA, 128);
digitalWrite(motor1pin1, LOW);
digitalWrite(motor1pin2, HIGH);
analogWrite(enableB, 128);
digitalWrite(motor2pin1, HIGH);
digitalWrite(motor2pin2, LOW);
analogWrite(enableB2, 128);
digitalWrite(motor3pin1, HIGH);
digitalWrite(motor3pin2, LOW);
analogWrite(enableA2, 128);
digitalWrite(motor4pin1, HIGH);
digitalWrite(motor4pin2, LOW);
delay(100);
}
void Neutro() //Funcion que detiene el vehiculo
{
analogWrite(enableA, 0);
digitalWrite(motor1pin1, LOW);
digitalWrite(motor1pin2, LOW);
analogWrite(enableB, 0);
digitalWrite(motor2pin1, LOW);
digitalWrite(motor2pin2, LOW);
analogWrite(enableB2, 0);
digitalWrite(motor3pin1, LOW);
digitalWrite(motor3pin2, LOW);
analogWrite(enableA2, 0);
digitalWrite(motor4pin1, LOW);
digitalWrite(motor4pin2, LOW);
delay(100);
}
void Alarma(int buzzer) //Funcion que enciende alarma
{
digitalWrite(buzzer, HIGH);
delay(500);
digitalWrite(buzzer, LOW);
delay(500);
}
void Luces(int ledDelantero1, int ledDelantero2, int ledTrasero1, int ledTrasero2, char parametro)
{
if(parametro == 'R')
{
digitalWrite(ledDelantero1, HIGH);
digitalWrite(ledDelantero2, HIGH);
digitalWrite(ledTrasero1, HIGH);
digitalWrite(ledTrasero2, HIGH);
}
if(parametro == 'R')
{
digitalWrite(ledDelantero1, HIGH);
digitalWrite(ledDelantero2, HIGH);
digitalWrite(ledTrasero1, LOW);
digitalWrite(ledTrasero2, LOW);
}
if(parametro == 'T')
{
digitalWrite(ledDelantero1, LOW);
digitalWrite(ledDelantero2, LOW);
digitalWrite(ledTrasero1, HIGH);
digitalWrite(ledTrasero2, HIGH);
}
if(parametro == 'Y')
{
digitalWrite(ledDelantero1, LOW);
digitalWrite(ledDelantero2, LOW);
digitalWrite(ledTrasero1, LOW);
digitalWrite(ledTrasero2, LOW);
}
}
Ahi cosas que es del auto que estoy haciendo, deberia detectar metales cuando pasa arriba de ellos y mostrar en el display i2c se detecto metales
pero culpa de la libreria no puede ser
Gracias