Sesonre IR

Salve a tutti, ho un ricevitore e trasmettitore IR e vorrei usarli per un sensore.
Al momento il progetto è semplicemente quello di accendere un led quando c'è un'ostacolo nella linea d'aria fra trasmettirore e ricevitore. Ho già visto qualcosa in rete ma nulla che fosse alla mia altezza (print video per la distanza ecc.)..
Sapreste darmi una mano riguardo alla programmazione ? Il circuitino pensato è questo

Premetto di essere nuovo nel campo arduino e del suo linguaggio ma non in quello della programmazione.

Ah, di diverso rispetto alla foto c'è che ho ivertito il ground e la vcc nel ricevitore

leggi i valori del sensore e scrivili via seriale al pc, poi osserva il loro variare al passaggio della tua mano... sono sicuro ti verranno un sacco di idee...

Il led mi sembra orientato male, non punta verso il ricevitore...

Per inviare sulla seriale i valori letti sul ricevitore:
dentro la "setup()":
Serial.begin(9600);

nella "loop":
Serial.println(analogRead(INPUT_PIN));

Il ricevitore é un ricevitore per telecomando a infrarosso. Ha integrato un filtro (la frequenza é tra 30 e 40 kHz a secondo del modello) e un amplificatore. Non funziona come sensore ottico da rivelare l' interuzione del fascio ottico.
Come piloti il led?
Il led invia la luce infrarossa verso il alto e il rilevatore la rileva di lato (parte bombata).
Ciao Uwe

per forza, il pin 12 dell'arduino non è collegato alla resistenza che va al led, son su due file diverse quindi non c'è continuità :wink:

uwefed:
Il ricevitore é un ricevitore per telecomando a infrarosso. Ha integrato un filtro (la frequenza é tra 30 e 40 kHz a secondo del modello) e un amplificatore.

ah già, devi inviare una portante digitale modulata a 38 kHz, senno' "non ti vede".

Ci sono più errori di collegamento sulla Breadbord.
Forse é necessario chiarire come sono collegati i contatti della breadbord:

Le file lunghe sopra e sotto possono essere in mezzo collegate o interotte a secondo del modello.

Da sotto, con l'adesivo tolto:

Ciao Uwe

Giusto, scusatemi ma sarà stato un errore di distrazione. Vi ringrazio comunque per la vostra gentilezza e disponibilità :slight_smile:

lesto:
leggi i valori del sensore e scrivili via seriale al pc, poi osserva il loro variare al passaggio della tua mano... sono sicuro ti verranno un sacco di idee...

non so ancora usare la parte del seriale :frowning: Ma in ogni caso con il codice: Serial.println(analogRead(INPUT_PIN)); che faccio esattamente ?
Devo implementare librerie o particolari variabili ?

sciorty:
Giusto, scusatemi ma sarà stato un errore di distrazione. Vi ringrazio comunque per la vostra gentilezza e disponibilità :slight_smile:

lesto:
leggi i valori del sensore e scrivili via seriale al pc, poi osserva il loro variare al passaggio della tua mano... sono sicuro ti verranno un sacco di idee...

non so ancora usare la parte del seriale :frowning: Ma in ogni caso con il codice: Serial.println(analogRead(INPUT_PIN)); che faccio esattamente ?
Devo implementare librerie o particolari variabili ?

stampi sulla seriale quello che c'e' tra parentesi... cioe' quello che leggi dal sensore.

Versione estesa:

int valore=analogRead(INPUT_PIN);
Serial.println(valore);

jumpjack:
Versione estesa:

int valore=analogRead(INPUT_PIN);

Serial.println(valore);

Ok, e questo è un punto a mio favore perchè mi hai chiarito molte cose :smiley:
Perciò ho provato questo codice

che mi torna una serie di zeri perchè evidentemente o è collegato male, oppure non vede proprio il led.
Preciso che il pin12 stavolta l'ho collegato bene e che il ground del ricevitore è nel piedino centrale :smiley:

sciorty:

jumpjack:
Versione estesa:

int valore=analogRead(INPUT_PIN);

Serial.println(valore);

Ok, e questo è un punto a mio favore perchè mi hai chiarito molte cose :smiley:
Perciò ho provato questo codice

che mi torna una serie di zeri perchè evidentemente o è collegato male, oppure non vede proprio il led.
Preciso che il pin12 stavolta l'ho collegato bene e che il ground del ricevitore è nel piedino centrale :smiley:

Se non metti sotto Loop la lettura del sensore... come fa a cambiare quello che viene scritto sul serialmonitor quando cambia lo stato del sensore? :wink:

Cmq invece di postare screenshot, basta che incolli il codice dentro le tag (code)(/code) sul forum (ma le parentesi devono essere quadre, e comunque puoi usare il pulsante # in alto)

jumpjack:
Se non metti sotto Loop la lettura del sensore... come fa a cambiare quello che viene scritto sul serialmonitor quando cambia lo stato del sensore? :wink:

Cmq invece di postare screenshot, basta che incolli il codice dentro le tag (code)(/code) sul forum (ma le parentesi devono essere quadre, e comunque puoi usare il pulsante # in alto)

Grazie della dritta :smiley: Comunque nel loop ho messo

digitalWrite(led, HIGH);
         Serial.println(valore);
         valore=analogRead(sensor);

e mi ritorna dei valori approssimabili a 220..anche se sconnetto il pin11 che è l'input :\

Ok ragazzi ce l'ho fatta, ho sbagliato la funzione di lettura che era digital e non analog :smiley:
Vi ringrazio tutti veramente !

Posto il codice se qualcuno volesse usufruirne :slight_smile:

int sensor=A0;
int avviso=13;
int valore;
void setup()
{
  Serial.begin(9600); 
  pinMode(sensor, INPUT);
  pinMode(avviso, OUTPUT);
}
void loop ()
{
  valore=analogRead(sensor);
  
  if (valore==0){                        'quando il valore è 0 c' è comunicazione         
    digitalWrite(avviso, LOW);  
  }
    else{
      digitalWrite(avviso, HIGH);
  };
}

uwefed:
Il ricevitore é un ricevitore per telecomando a infrarosso. Ha integrato un filtro (la frequenza é tra 30 e 40 kHz a secondo del modello) e un amplificatore. Non funziona come sensore ottico da rivelare l' interuzione del fascio ottico.
Come piloti il led?
Il led invia la luce infrarossa verso il alto e il rilevatore la rileva di lato (parte bombata).
Ciao Uwe

Avevi ragione, infatti provando con il telecomando della tv mettendogli la mano davanti riceve lo stesso.
Da quello che mi dici suppongo che la causa sia il led..quindi che tipo di led dovrei prendere per riuscire nel lavoro in cui speravo ?