Stabilità segnale IR

Buon giorno a tutti.
So che è tanto che non scrivo ma purtroppo non avevo in mete progetti. Ora finalmente ne sto iniziando uno e come al solito cerco di procedere uno step per volta. Ovviamente prima di cominciare ad armeggiare ho cercato di documentarmi un po' ma evidentemente non è bastato.
Lo scopo ultimo del progetto sarà un cronometro/contagiri per piste con macchine radiocomandate (macchina singola).

Posto l'argomento in generale perché non saprei se si tratta in un problema di hardware o di Software.

Ho acquistato dei rilevatori IR VS1838 a tre pin con i loro LED emettitori associati. Ho quindi realizzato il circuito in modo che con il fascio IR continuo si mantenga acceso un semplice led verde che dovrebbe spegnersi se qualcosa interrompe il fascio.

Solo che avviando il programma il led si accende ma poi si spegne dopo nemmeno un secondo. Se però passo la mano a interrompere il fascio quando la tolgo il led verde blippa acceso e poi si spegne nuovamente.

Questo vorrebbe dire che la macchina verrebbe letta solo dopo essere interamente passata oltre la barriera.

Questo è lo sketch che sto usando

const int sensorPin = 2;    // select the input pin for the reciever
const int ledPin = 4;       // select the input pin for control led
const int IrPin = 11;       // select the input pin for the IR led


void setup() {
  pinMode(sensorPin, INPUT);
  pinMode(ledPin, OUTPUT);
  pinMode(IrPin, OUTPUT);
}


void loop() {
  tone (IrPin, 38000);
  int StatoRicevitore = digitalRead(sensorPin);
  if (StatoRicevitore == LOW) {
    digitalWrite (ledPin, HIGH);
  }
  digitalWrite (ledPin, LOW);

}

La scheda che sto usando è una arduino UNO

Cosa sto sbagliando?

Grazie mille a chiunque voglia aiutarmi a capire.

Credo che ti manchi un else prima del secondo digitalWrite(), altrimenti questa verrà sempre eseguita, e quindi non riuscirai mai a vedere il led acceso.

Ciao, Ale.

Grazie della risposta.
Purtroppo però non cambia la situazione.
Anche in questo caso quando libero il fascio il led verde si accende e poi spegne.
Ho provato anche con noTone a spegnere e riaccendere il led IR ma la situazione non cambia.

Sembra come se dopo un attimo di attivazione il ricevitore andasse in HIGH nuovamente.

Non credo sia il tipo di ricevitore adatto per una barriera, nasce per ricevere un segnale modulato con portante a 38 Khz, non so come si comporti con la sola presenza/interruzione della portante stessa.

Ciao, Ale.

Qualcosa tipo questo dovrebbe essere più appropriato (e più semplice da usare) per il tuo scopo.

Ciao, Ale.

Esatto. Quel sensore è fatto per ricevere impulsi di circa 600 µs (separati da pause altrettanto lunghe, quindi circa 830 Hz) trasportati dalla portante 38 kHz. Una portante continua non viene sentita (ci sono cascato venti anni fa costruendo dei sensori IR per un robottino).

1 Like

Intanto grazie mille per le risposte.
Avete perfettamente ragione, stavo vedendo sulla scheda del sensore che legge 60 microsecondi poi richiede una pausa di 900.
Valuterò il sensore suggerito da ilguargua.

Non esiste comunque un modo tramite Arduino di modulare il segnale di uscita per farlo leggere in continuo?

Al limite devo anche valutare il fatto che mi dia risposta quando il fascio riprende possa essere funzionale per l'uso che ne devo fare.

Scusate.
Ma se al posto del ricevitore che ho provato usassi qualcosa tipo questo?
Emettitore/Ricevitore

Ovviamente con l'opportuna circuitazione.

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