Capo d'Orlando
Offline
God Member
Karma: 2
Posts: 652
|
 |
« on: April 02, 2011, 10:43:01 am » |
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.
|
|
|
|
|
Logged
|
|
|
|
|
Capo d'Orlando
Offline
God Member
Karma: 2
Posts: 652
|
 |
« Reply #1 on: April 02, 2011, 10:53:19 am » |
Ah, di diverso rispetto alla foto c'è che ho ivertito il ground e la vcc nel ricevitore
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Tesla Member
Karma: 83
Posts: 8239
:(){:|:&};:
|
 |
« Reply #2 on: April 02, 2011, 02:22:41 pm » |
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...
|
|
|
|
|
Logged
|
|
|
|
|
Rome
Offline
God Member
Karma: 1
Posts: 972
Arduino rocks
|
 |
« Reply #3 on: April 02, 2011, 02:31:00 pm » |
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));
|
|
|
|
|
Logged
|
|
|
|
|
BZ (I)
Offline
Brattain Member
Karma: 162
Posts: 15739
+39 349 2158303
|
 |
« Reply #4 on: April 02, 2011, 02:36:39 pm » |
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
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Full Member
Karma: 0
Posts: 189
Arduino rocks
|
 |
« Reply #5 on: April 02, 2011, 02:43:49 pm » |
per forza, il pin 12 dell'arduino non è collegato alla resistenza che va al led, son su due file diverse quindi non c'è continuità 
|
|
|
|
|
Logged
|
|
|
|
|
Rome
Offline
God Member
Karma: 1
Posts: 972
Arduino rocks
|
 |
« Reply #6 on: April 02, 2011, 02:45:15 pm » |
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". http://jumpjack.wordpress.com/category/infrarossi/
|
|
|
|
|
Logged
|
|
|
|
|
BZ (I)
Offline
Brattain Member
Karma: 162
Posts: 15739
+39 349 2158303
|
 |
« Reply #7 on: April 02, 2011, 02:55:30 pm » |
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
|
|
|
|
|
Logged
|
|
|
|
|
Capo d'Orlando
Offline
God Member
Karma: 2
Posts: 652
|
 |
« Reply #8 on: April 03, 2011, 04:34:11 am » |
Giusto, scusatemi ma sarà stato un errore di distrazione. Vi ringrazio comunque per la vostra gentilezza e disponibilità  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  Ma in ogni caso con il codice: Serial.println(analogRead(INPUT_PIN)); che faccio esattamente ? Devo implementare librerie o particolari variabili ?
|
|
|
|
|
Logged
|
|
|
|
|
Rome
Offline
God Member
Karma: 1
Posts: 972
Arduino rocks
|
 |
« Reply #9 on: April 03, 2011, 04:35:56 am » |
Giusto, scusatemi ma sarà stato un errore di distrazione. Vi ringrazio comunque per la vostra gentilezza e disponibilità  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  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);
|
|
|
|
|
Logged
|
|
|
|
|
Capo d'Orlando
Offline
God Member
Karma: 2
Posts: 652
|
 |
« Reply #10 on: April 03, 2011, 05:31:19 am » |
Versione estesa: int valore=analogRead(INPUT_PIN); Serial.println(valore); Ok, e questo è un punto a mio favore perchè mi hai chiarito molte cose  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 
|
|
|
|
|
Logged
|
|
|
|
|
Rome
Offline
God Member
Karma: 1
Posts: 972
Arduino rocks
|
 |
« Reply #11 on: April 03, 2011, 05:48:14 am » |
Versione estesa: int valore=analogRead(INPUT_PIN); Serial.println(valore); Ok, e questo è un punto a mio favore perchè mi hai chiarito molte cose  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  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? ;-) 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)
|
|
|
|
|
Logged
|
|
|
|
|
Capo d'Orlando
Offline
God Member
Karma: 2
Posts: 652
|
 |
« Reply #12 on: April 03, 2011, 06:35:45 am » |
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? ;-)
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  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 :\
|
|
|
|
|
Logged
|
|
|
|
|
Capo d'Orlando
Offline
God Member
Karma: 2
Posts: 652
|
 |
« Reply #13 on: April 03, 2011, 07:55:41 am » |
Ok ragazzi ce l'ho fatta, ho sbagliato la funzione di lettura che era digital e non analog  Vi ringrazio tutti veramente !
|
|
|
|
|
Logged
|
|
|
|
|
Capo d'Orlando
Offline
God Member
Karma: 2
Posts: 652
|
 |
« Reply #14 on: April 03, 2011, 08:31:33 am » |
Posto il codice se qualcuno volesse usufruirne  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); }; }
|
|
|
|
|
Logged
|
|
|
|
|
|