Hola estoy haciendo un programa que me permite calcular la logitud que debe tener un cable de diferentes calibres , el calibre del cable lo selecciono con un pulsador y el resultado lo muestro en una pantalla LCD; estoy utlizando la formula de la resitividad para hacerlo. El microcontrolador que estoy utlizando es el Attiny85 el programa ya se subio correctamente pero al mostralo el resultado en la pantalla lcd los valores que aparecen son ceros, el mismo programa lo probe con un Arduino Uno y funciona correctamente. Podrian ayudarme a solucionarlo porfavor, de antemano les doy las gracias por su ayuda. Les adjunto el codigo para que lo revisen.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd( 0x27, 20, 4);
int contador = 8;
#define seleccionador 1
#define seleccionador2 A3
int resistorPin = A2; // connect the resistor to this pin
int sensorValue = 0;
float Vin = 5;
float Vout = 0;
float Rref = 216;
float R = 0;
float D;
void setup() {
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Comuni Analogica");
lcd.print(0, 1);
lcd.print("Ingrese el calibre");
pinMode(seleccionador, INPUT);
pinMode(seleccionador2, INPUT);
}
void loop() {
int valor1 = digitalRead(seleccionador);
int valor2 = digitalRead(seleccionador2);
if (valor1 == HIGH) {
contador = contador + 2;
if (contador == 26) {
contador = 10;
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Ha seleccionado AVG");
lcd.setCursor(0, 1);
lcd.print(contador);
}
if (contador == 24 && valor2 == HIGH) {
lcd.clear();
float radioCuad = 0.000000317;
sensorValue = analogRead(resistorPin);
Vout = (Vin * sensorValue) / 1023;
R = Rref * (1 / ((Vin / Vout) - 1));
int l = (R * 3.14 * radioCuad ) / 0.000000167;
lcd.setCursor(0, 1);
lcd.print("Resitencia: ");
lcd.setCursor(13, 1);
lcd.print(R);
lcd.setCursor(17, 1);
lcd.print("ohm");
lcd.setCursor(0, 2);
lcd.print("Longitud: ");
lcd.print(l);
lcd.setCursor(15, 2);
lcd.print("m");
}
if (contador == 22 && valor2 == HIGH) {
lcd.clear();
float radioCuad = 0.000000103;
sensorValue = analogRead(resistorPin);
Vout = (Vin * sensorValue) / 1023;
R = Rref * (1 / ((Vin / Vout) - 1));
int l = (R * 3.14 * radioCuad ) / 0.000000167;
lcd.setCursor(0, 1);
lcd.print("Resitencia: ");
lcd.setCursor(13, 1);
lcd.print(R);
lcd.setCursor(17, 1);
lcd.print("ohm");
lcd.setCursor(0, 2);
lcd.print("Longitud: ");
lcd.print(l);
lcd.setCursor(15, 2);
lcd.print("m");
}
if (contador == 20 && valor2 == HIGH) {
lcd.clear();
float radioCuad = 0.000000164;
sensorValue = analogRead(resistorPin);
Vout = (Vin * sensorValue) / 1023;
R = Rref * (1 / ((Vin / Vout) - 1));
int l = (R * 3.14 * radioCuad ) / 0.000000167;
lcd.setCursor(0, 1);
lcd.print("Resitencia: ");
lcd.setCursor(13, 1);
lcd.print(R);
lcd.setCursor(17, 1);
lcd.print("ohm");
lcd.setCursor(0, 2);
lcd.print("Longitud: ");
lcd.print(l);
lcd.setCursor(15, 2);
lcd.print("m");
}
if (contador == 18 && valor2 == HIGH) {
lcd.clear();
float radioCuad = 0.000000262;
sensorValue = analogRead(resistorPin);
Vout = (Vin * sensorValue) / 1023;
R = Rref * (1 / ((Vin / Vout) - 1));
int l = (R * 3.14 * radioCuad ) / 0.000000167;
lcd.setCursor(0, 1);
lcd.print("Resitencia: ");
lcd.setCursor(13, 1);
lcd.print(R);
lcd.setCursor(17, 1);
lcd.print("ohm");
lcd.setCursor(0, 2);
lcd.print("Longitud: ");
lcd.print(l);
lcd.setCursor(15, 2);
lcd.print("m");
}
if (contador == 16 && valor2 == HIGH) {
lcd.clear();
float radioCuad = 0.000000416;
sensorValue = analogRead(resistorPin);
Vout = (Vin * sensorValue) / 1023;
R = Rref * (1 / ((Vin / Vout) - 1));
int l = (R * 3.14 * radioCuad ) / 0.000000167;
lcd.setCursor(0, 1);
lcd.print("Resitencia: ");
lcd.setCursor(13, 1);
lcd.print(R);
lcd.setCursor(17, 1);
lcd.print("ohm");
lcd.setCursor(0, 2);
lcd.print("Longitud: ");
lcd.print(l);
lcd.setCursor(15, 2);
lcd.print("m");
}
if (contador == 14 && valor2 == HIGH) {
lcd.clear();
float radioCuad = 0.000000464;
sensorValue = analogRead(resistorPin);
Vout = (Vin * sensorValue) / 1023;
R = Rref * (1 / ((Vin / Vout) - 1));
int l = (R * 3.14 * radioCuad ) / 0.000000167;
lcd.setCursor(0, 1);
lcd.print("Resitencia: ");
lcd.setCursor(13, 1);
lcd.print(R);
lcd.setCursor(17, 1);
lcd.print("ohm");
lcd.setCursor(0, 2);
lcd.print("Longitud: ");
lcd.print(l);
lcd.setCursor(15, 2);
lcd.print("m");
}
if (contador == 12 && valor2 == HIGH) {
lcd.clear();
float radioCuad = 0.00000105;
sensorValue = analogRead(resistorPin);
Vout = (Vin * sensorValue) / 1023;
R = Rref * (1 / ((Vin / Vout) - 1));
int l = (R * 3.14 * radioCuad ) / 0.000000167;
lcd.setCursor(0, 1);
lcd.print("Resitencia: ");
lcd.setCursor(13, 1);
lcd.print(R);
lcd.setCursor(17, 1);
lcd.print("ohm");
lcd.setCursor(0, 2);
lcd.print("Longitud: ");
lcd.print(l);
lcd.setCursor(15, 2);
lcd.print("m");
}
if (contador == 10 && valor2 == HIGH) {
lcd.clear();
float radioCuad = 0.00000167;
sensorValue = analogRead(resistorPin);
Vout = (Vin * sensorValue) / 1023;
R = Rref * (1 / ((Vin / Vout) - 1));
int l = (R * 3.14 * radioCuad ) / 0.000000167;
lcd.setCursor(0, 1);
lcd.print("Resitencia: ");
lcd.setCursor(13, 1);
lcd.print(R);
lcd.setCursor(17, 1);
lcd.print("ohm");
lcd.setCursor(0, 2);
lcd.print("Longitud: ");
lcd.print(l);
lcd.setCursor(15, 2);
lcd.print("m");
}
delay(200);
}