Salve a tutti, ho provato a spostare i pin dell'lcd da digitale ad analogico ma mi ha dato problemi in quanto lcd appena attaccato funziona bene ma poi dopo qualche passaggio all'interno del programma si riempie di caratteri non inerenti al programma. Ecco qui il codice
#include <LiquidCrystal.h>
LiquidCrystal lcd(A0, A1, A2, A3, A4, A5);
int pir_signal1 = 2; // pin al quale ho collegato il sensore1
int pir_signal2 = 3; //pin al quale ho collegato sensore2
int led_Red = 5; // pin al quale ho collegato il led Rosso
int led_Green = 4; // pin al quale ho collegato il led Verde
int Button = 6; //pin al quale ho collegato il bottone
int Buzzer = 13; //pin al quale ho collegato il buzzer
int Signal1 = 0;
int Signal2 = 0;
int Stato = 0;
int Val = 0;
void setup() {
delay(3000); //tempo per settare sensori
// imposto i pin dei led in OUTPUT
pinMode(led_Red, OUTPUT);
pinMode(led_Green, OUTPUT);
pinMode(Button, INPUT);
pinMode(Buzzer, OUTPUT);
// inizializzo lcd
lcd.begin(16, 2);
lcd.print("Allarme Arduino");
// spengo i led
digitalWrite(led_Red, LOW);
digitalWrite(led_Green, LOW);
}
void loop() {
//leggo le risposte dai sensori pir e bottone
Signal1 = digitalRead(pir_signal1);
Signal2 = digitalRead(pir_signal2);
Val = digitalRead(Button);
// imposto stato del programma
if (Val == HIGH) Stato = Stato + 1;
if (Stato == 2) Stato = 0;
lcd.setCursor(0, 1);
if (Stato == 0) {
lcd.print(" **ON** ");
if (Signal1 || Signal2) {
lcd.setCursor(0, 1);
lcd.print("*ALLARME*");
digitalWrite(led_Red, HIGH);
digitalWrite(led_Green, LOW);
delay(500);
digitalWrite(led_Red, LOW);
digitalWrite(led_Green, HIGH);
tone(Buzzer, 1000);
}
else {
digitalWrite(led_Red, LOW);
digitalWrite(led_Green, HIGH);
noTone (Buzzer);
}
}
else {
lcd.print(" **OFF** ");
}
delay(100);
}
Devo implementare un tastierino numerico che ha sette pin e non so quali posso spostare nell'analogico.