#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define I2C_ADDRESS 0x27 // Dirección de la pantalla I2C
#define SCREEN_WIDTH 16 // Ancho de la pantalla
#define SCREEN_HEIGHT 2 // Altura de la pantalla
#define INJECTOR_PIN_1 9 // Pin del inyector 1
#define INJECTOR_PIN_2 10 // Pin del inyector 2
#define INJECTOR_PIN_3 11 // Pin del inyector 3
#define INJECTOR_PIN_4 12 // Pin del inyector 4
#define RPM_PIN A0 // Pin del potenciómetro de RPM
#define TIME_PIN A1 // Pin del potenciómetro de tiempo
int rpm = 0;
int time = 0;
LiquidCrystal_I2C lcd(I2C_ADDRESS, SCREEN_WIDTH, SCREEN_HEIGHT); // Inicializa la pantalla I2C
void setup() {
lcd.init(); // Inicializa la pantalla
lcd.backlight(); // Enciende la retroiluminación de la pantalla
lcd.clear(); // Limpia la pantalla
lcd.setCursor(0, 0); // Establece el cursor en la primera línea de la pantalla
lcd.print("RPM:"); // Imprime el texto "RPM:" en la pantalla
pinMode(INJECTOR_PIN_1, OUTPUT); // Configura el pin del inyector 1 como salida
pinMode(INJECTOR_PIN_2, OUTPUT); // Configura el pin del inyector 2 como salida
pinMode(INJECTOR_PIN_3, OUTPUT); // Configura el pin del inyector 3 como salida
pinMode(INJECTOR_PIN_4, OUTPUT); // Configura el pin del inyector 4 como salida
}
void loop() {
// Lee el valor del potenciómetro de RPM y conviértelo en RPM
rpm = map(analogRead(RPM_PIN), 0, 1023, 100, 3000);
// Lee el valor del potenciómetro de tiempo y conviértelo en tiempo de apertura del inyector en ms
time = map(analogRead(TIME_PIN), 0, 1023, 1, 15);
lcd.setCursor(5, 0); // Establece el cursor en la posición 5 de la primera línea de la pantalla
lcd.print(rpm); // Imprime el valor actual de "rpm" en la pantalla
lcd.print(" "); //
lcd.setCursor(0, 1); // Establece el cursor en la primera columna de la segunda línea de la pantalla
lcd.print("Time:"); // Imprime el texto "Time:" en la pantalla
lcd.setCursor(6, 1); // Establece el cursor en la posición 6 de la segunda línea de la pantalla
lcd.print(time); // Imprime el valor actual de "time" en la pantalla
lcd.print("ms"); // Imprime el texto "ms" en la pantalla
digitalWrite(INJECTOR_PIN_1, HIGH); // Enciende el inyector 1
digitalWrite(INJECTOR_PIN_2, HIGH); // Enciende el inyector 2
digitalWrite(INJECTOR_PIN_3, HIGH); // Enciende el inyector 3
digitalWrite(INJECTOR_PIN_4, HIGH); // Enciende el inyector 4
delay(time); // Espera el tiempo de apertura de los inyectores
digitalWrite(INJECTOR_PIN_1, LOW); // Apaga el inyector 1
digitalWrite(INJECTOR_PIN_2, LOW); // Apaga el inyector 2
digitalWrite(INJECTOR_PIN_3, LOW); // Apaga el inyector 3
digitalWrite(INJECTOR_PIN_4, LOW); // Apaga el inyector 4
}