Go Down

Topic: Problema con Barriera IR (Read 5438 times) previous topic - next topic

Michele Menniti

OK, grazie, comunque se posso permettermi, prova a fargli usare il CHANGE invece del rising, in questo modo avremo due eventi ad ogni interruzione
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

toti94

Quote
Comunque prova anche cambiando modalità dell'interrupt. Da quel che ho capito, il tuo sensore dovrebbe portare il pin a 0 quando viene interrotto

Forse ho capito male ma il ricevitore da 0 quando riceve il segnale e 1 quando viene interrotto ? o il contrario?
Comunque il led mi lampeggia sempre e ogni tanto si ferma per poco, ho usato questo codice:
Code: [Select]
#define led 6
#define rx 2
void setup()
{
pinMode(11, OUTPUT);
pinMode (rx, INPUT);
pinMode (led, OUTPUT);
digitalWrite (led, LOW);
OCR2A = 210;
TCCR2A = 0b01000011;
TCCR2B = 0b00001001;
Serial.begin (9600);
attachInterrupt(0,trovato,LOW);
}
void trovato ()
{
  digitalWrite (led, HIGH);
  delay (500);
  digitalWrite (led, LOW);
}
void loop ()
{
int i= digitalRead (rx);
Serial.println (i);
}

Anche mettendo "RISING" a posto di "LOW" il risultato non cambia, mentre con "CHANGE" l'unica cosa che cambia è che all'inizio invece di stare acceso fisso sta spento fisso ovviamente
Allego un video per farvi vedere il risultato.
Sinceramente dal lampeggio del led .... non capisco se il rx riceve o no   :.

Michele Menniti

Allora usa un po' il cervello, se ti muovi a casaccio, a casaccio lampeggerà il LED ammesso che stia funzionando il sensore; Quindi devi darti una regola:
1 - collega ed alimenta tutto e premi il RESET di Arduino (lascia il CHANGE)
2 - mantieni a vista LED e sensore (fascio "collegato") per 15 secondi, il LED deve restare spento senza MAI lampeggiare
3 - dopo i 15 secondi prendi un oggetto e fallo "dondolare" tra LED e sensore, cioè fai in modo da collegare e scollegare il fascio almeno 4-     5 volte, il LED dovrebbe accendersi e spegnersi anche in modo casuale, non importa, basta che dia diversi segni di vita.
4 - a questo punto interrompi in modo fisso il fascio per 15 secondi ed il LED dovrebbe bloccarsi, mi dovrai dire tu se resta sempre spento o sempre acceso
5 - dopo i 15 secondi ripeti la manovra del punto 3
Fammi un riepilogo dettagliato di tutto ciò che succede in realtà punto per punto, e lascia perdere i video, per ora.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

toti94

Allora quando non ostruisco il fascio, il led lampeggia e a volte rimane acceso pe run po'.
Quando tolgo e rimetto l'oggetto per ostruire il fascio il led lampeggia.
Quando rimango con l'oggetto fermo ad interrompere il fascio, il led rimane per lo più acceso ma a volte fa qualche lampeggio e poi rimane acceso

Michele Menniti

Prova ad aggiungere una R da 10k tra l'uscita del sensore e 5V e ripeti le prove. Questo comportamento mostra apparente instabilità del sensore. Ti sei ricordato di mettere in serie al positivo del sensore una R da 100 ohm e poi un C da 4,7-47µF tra positivo e negativo del sensore? Guarda che è importante!
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

toti94

Si ho messo tutte le resistenze e il condensatore l'ho messo da 10 nano farad e anche con la resistenza da 10k tra l'uscita e 5v, il led ha lo stesso comportamento

Michele Menniti

10nF? solito odio verso i condensatori eh? con un 4,7µF c'è più o meno la differenza che passa tra un pidocchio e un cavallo, contento tu...
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

toti94

Quote
Tra pin 3 e pin 2 devi mettere un C elettrolitico da minimo 4,7µF a massimo 47µF col + sul 3 e - sul 2

quindi 10µf rientra nel range direi

Michele Menniti

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

toti94

e infatti l'ho messo da 10 micro farad XD ho sbagliato a scrivere

Michele Menniti

no, così non si può, continua a divertirti, quando scopri qualcosa di interessante ne riparliamo, a starti dietro c'è solo da impazzire
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

toti94

Mi sa che faccio prima a comprare un ricevitore nuovo....

Michele Menniti

direi di sì, TSSOP34838 e andiamo sul sicuro.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

toti94


Go Up