#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // Dirección de la pantalla LCD I2C y tamaño (16 columnas, 2 filas)
// Función para mostrar el código de colores de una resistencia en la pantalla LCD
void displayResistorColorCode(int resistanceValue) {
// Valores de resistencias y su respectivo índice en el arreglo
String colors[] = {"Ne", "Ma", "Ro", "Na", "Am", "Ve", "Az", "Vi", "Gr", "Bl"};
// Determinar los dígitos de la resistencia
int firstDigit = (resistanceValue / 100) % 10;
int secondDigit = (resistanceValue / 10) % 10;
int thirdDigit = resistanceValue % 10;
// Mostrar el código de colores en la pantalla LCD
lcd.setCursor(0, 0);
lcd.print("Resistencia:");
lcd.setCursor(0, 1);
lcd.print(colors[firstDigit]);
lcd.print(" ");
lcd.print(colors[secondDigit]);
lcd.print(" ");
lcd.print(colors[thirdDigit]);
lcd.print(" ");
lcd.print(resistanceValue);
}
int getResistor(){
int r2 = 330;
int voltajeEntrada = 5;
float voltajeSalida = analogRead(A0) * voltajeEntrada / 1023.0;
Serial.println(voltajeSalida);
int r1 = r2 * (voltajeEntrada/voltajeSalida)-r2;
Serial.println(r1);
return r1;
}
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.begin(16, 2);
}
void loop() {
int resistorValue = getResistor(); // Por ejemplo, una resistencia de 22 Ohm
displayResistorColorCode(resistorValue);
delay(5000); // Esperar 5 segundos antes de mostrar el siguiente valor
}