Sto provando un paio di sensori PIR che mi sono arrivati da poco. Li ho testati singolarmente e funzionano correttamente, quando c'è movimento l'ingresso va a HIGH e accendo un buzzer.
Il mio problema (che sarà sicuramente una stupidata) è che non riesco ad accendere lo stesso buzzer usando i due ingressi nello stesso sketch, ma il buzzer si attiva solo con un PIR, con l'altro niente da fare.
Copio il codice che sicuramente si capirà meglio.
int statoSensoreEsterno;
int statoSensoreCorridoio;
int buzzer = 52;
int contatoreEsterno = 0;
void setup() {
Serial.begin(115200);
pinMode(50, INPUT);
pinMode(51, INPUT);
pinMode(buzzer , OUTPUT);
pinMode(53, INPUT);
}
void loop() {
//SENSORE ESTERNO
statoSensoreEsterno = digitalRead(50);
if (statoSensoreEsterno == HIGH) digitalWrite(buzzer, HIGH);
else if (statoSensoreEsterno == LOW) digitalWrite(buzzer, LOW);
//SENSORE CORRIDOIO
statoSensoreCorridoio = digitalRead(53);
if (statoSensoreCorridoio == HIGH) digitalWrite(buzzer, HIGH);
else if (statoSensoreCorridoio == LOW) digitalWrite(buzzer, LOW);
delay(200);
}
Praticamente così com'è mi attiva il buzzer solo con il sensoreCorridoio, l'esterno non si attiva.
Come detto sopra, provandoli separatamente, il buzzer si attiva in entrambi i casi.
sai che non capisco la domanda ? ... sono rinco forse ahahahahhahaha
puoi cambiare la condizione dell'output dove ti pare nello sketch, tu hai detto che il buzzer funziona solo su un pir e l'altro no, io ti ho messo una condizione OR senza troppe righe ... non ti funziona così?
if (digitalRead(50)== 1 || digitalRead(53)== 1) digitalWrite(buzzer, 1);
else digitalWrite(buzzer, 0);
La soluzione è questa, perchè non puoi mettere a LOW il buzzer quando il primo oppure il secondo input è LOW.
Il buzzer deve essere acceso se il primo oppure ( OR || ) il secondo è HIGH
Credo ci sia una altro errore, più che altro concettuale: i pin 50, 51, 52 e 53 della MEGA sono riservati alla comunicazione SPI e, anche se utilizzabili, è meglio non usarli.
Porco giuda avete ragione, sono proprio fuori in questo periodo..
Se anche un sensore si attiva, c'è la l'altro che mi tiene l'uscita disattivata.. Praticamente per funzionare dovrebbero attivarsi tutti e due contemporaneamente..
cyberhs, non sapevo questa cosa, cambio subito i pin, grazie per la segnalazione.
Vi ringrazio tutti quanti per l'aiuto e vi auguro una buona serata!