Comportamento anomalo pin digitale al distacco del segnale del sensore suono KY-038, il pin va in HIGH

Salve a tutti
Ho necessità di usare il sensore suono KY-037 che comanda un relè temporizzato da codice, scritto il codice tutto apposto funziona perfettamente, ma ho notato che se a riposo quindi senza rumori scollego il Pin del segnale l'entrata di arduino va in HIGH quando invece dovrebbe rimanere in LOW. E' il classico problema di quando si usa un pulsante e bisogna inserire la resistenza altrimenti fa questo problema. Volevo evitare che in caso di malfunzionamento del sensore il relè si attivi. C'è una soluzione?
Il codice è questo:

int sensore_suono = 4;
int rele = 2;
int pulsante = 8;
unsigned long tempo_accensione_rele = 0;


void setup() {
 pinMode (sensore_suono, INPUT);
 pinMode (rele, OUTPUT);
 pinMode (pulsante, INPUT);
}

void loop() {

 //sezione sensore suono--------------------
 if (digitalRead (sensore_suono)== HIGH) {
   digitalWrite (rele, HIGH);
   tempo_accensione_rele = millis();
 }
 else {
   if (millis() - tempo_accensione_rele > 5000) { 
     digitalWrite(rele, LOW);
   }
}

 // sezione pulsante------------------------
 if (digitalRead (pulsante) == HIGH) {
  digitalWrite (rele, HIGH);
 tempo_accensione_rele = millis();
 }

 else {
   if (millis() - tempo_accensione_rele > 5000) { 
     digitalWrite(rele, LOW);
 }
 }
}

Ma perché dovresti fare una cosa del genere?
E' chiaro che se scolleghi il pin, ti ritrovi l'ingresso ad alta impedenza del micro che prende per buona qualsiasi fluttuazione del segnale, non c'è nulla di anomalo.

Se il modulo si rompe (ed è talmente semplice, che mi sembra l'ultima delle possibilità) non puoi prevedere su che livello rimarrà "bloccata" l'uscita a prescindere.

Se proprio vuoi prevenire un'eventualità simile, metti 10k o simile verso massa.

Già fatto. Inserito una resistenza da 10K il problema si risolve ma il sensore non attiva più l'uscita non rileva più alcun rumore. Forse una resistenza di valore diverso?

Mi piace sempre capire e prevenire possibili malfunzionamenti. Se non si può pazienza. Ho inserito una resistenza da 10 k verso massa il problema si risolve ma non funziona più il sensore.

Usa 100...220k.

OK provo grazie

Problema risolto con una resistenza da 100K. Grazie.

:slight_smile: .

Comunque vi svelo a che serve questo progetto così chissà qualcuno vuole replicarne uno.
Serve ad attivare sia una telecamera che un monitor (tutto a 12V) abbinati ad un vecchio citofono. Il sensore va applicato vicino il cicalino della cornetta in modo da attivare in automatico il tutto per un tot di secondi quando qualcuno suona. :wink: Grazie a tutti

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.