16 x 2 LCD que no muestra entradas analógicas alimentadas a ATmega168

1

Estoy experimentando algunos problemas al obtener una pantalla de entradas analógicas (corriente y voltaje) alimentadas a A0 y A1 de ATmega168 respectivamente. Creo que el cableado y el programa son correctos ya que el mismo circuito funciona perfectamente bien en la simulación de Proteus. Incluso he intentado mostrar "Hello World" contenido en los ejemplos del IDE, pero no había ninguna pantalla. Estoy usando Arduino Diecimila o Duemilanove con el kit de programación ATmega168 con microcontrolador conectado externamente a una placa de pruebas.

Aquí está mi código:

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int relayPin =7;
int buzzerPin=6;               
intled2Pin=8;

void setup() {

  Serial.begin(9600);  
  lcd.begin(16, 2);
  pinMode(relayPin, OUTPUT); 
  pinMode(buzzerPin, OUTPUT);
  pinMode(led1Pin, OUTPUT);
  pinMode(led2Pin, OUTPUT);

}

void loop() {

  float sensorValue = analogRead(A0);
  float voltage = sensorValue * (5.0 / 1023.0)*28.35;
  lcd.setCursor(0, 0);
  lcd.print(voltage);
  lcd.print("V,");
  float sensorValue1 = analogRead(A1);
  float current = sensorValue1 * (5.0 / 1023.0);
  lcd.setCursor(9, 0);
  lcd.print(current);
  lcd.print("A,");
  float Power = (voltage * current)/1000; 
  lcd.setCursor(0, 1);
  lcd.print(Power);
  lcd.print("kW");

  if ((current >=3.0 && current <=4.0) && (voltage >=90 && voltage <=120)){

    digitalWrite (led1Pin,HIGH); // blink green led

  } else {

    digitalWrite (led2Pin,HIGH);//blink red led
    delay(300);
    digitalWrite (led2Pin,LOW);
    delay(300);

  }
  if(current >4.0 && current<4.3) {

    digitalWrite (led2Pin,HIGH); // blink red led
    delay(300);
    digitalWrite (led2Pin,LOW);
    delay(300);

  }
  if(voltage >120 && voltage<130) {

    digitalWrite (led2Pin,HIGH);//blink red led
    delay(300);
    digitalWrite (led2Pin,LOW);
    delay(300);

  }

  if(current >=4.3) {

    delay(1000);
    digitalWrite (relayPin,HIGH); // activate relay for trip
    digitalWrite(buzzerPin,HIGH); // sound buzzer or alarm

  }
  if(voltage >= 130) {

    delay(1000);
    digitalWrite (relayPin,HIGH);//activate relay for trip
    digitalWrite(buzzerPin,HIGH);//sound buzzer or alarm

  }


}
    
pregunta Samson Wasonga

0 respuestas

Lea otras preguntas en las etiquetas