Collegare arduino leonardo e modulo LDR

Buongiorno a tutti ragazzi. Ho bisogno del vostro aiuto. Ho acquistato arduino Leonardo e questo sensore qui

http://www.enovaz.com/modulo-ldr-per-arduino.html

con relativo led.

Devo fare in modo che arduino capisca quando il passaggio di luce, viene interrotto. Quindi quando la luce, viene "offuscata" arduino lo deve capire, quindi eseguire operazioni.

Mi potreste aiutare in questo? grazie mille

E' un semplice rilevatore di luce che, in più, sulla scheda, monta un discriminatore che puoi regolare ... ... agendo sul trimmer regoli la soglia per cui l'uscita digitale commuta.

Attaccaci un tester (... all'uscita digitale) e regola il trimmer in modo che l'uscita cambi stato quando la luce scende sotto il valore che vuoi tu, dopo di che, al posto del tester, collegherai un pin digitale di Arduino e leggerai lo stato con delle semplici digitalRead().

Guglielmo

Ok ti ringrazio molto per la codiale risposta.

per alimentarlo però, io qui ho due inserti, uno che ha i PIN GVNS

l'altro ha i pin GVS

credo che uno serva se uso l uscita digitale, l'altro se uso l'uscita analogica.

mi potresti suggerire, come collegarlo ad arduino? grazie

Bella domanda ... ... ecco cosa succede a comprare da venditori [u]che non forniscono neanche un minimo di documentazione[/u] ... che poi NON si sa come usare ciò che si compra !

Mai usate schedine come quella e quindi posso solo tentare di "indovinare" ... ... G = GND; V = +Vcc; S = Signal ? ? ? Chissà ::)

Per evitare danni però ... o aspetti qualcuno che lo ha già usato o scrivi una eMail al venditore e gli chiedi a cosa corrispondono quei pin ... ::)

Guglielmo

... ho individuato il produttore e ... c'è un intera pagina WiKi dedicata al prodotto ... QUI :grin: :grin: :grin:

Guglielmo

ti ringrazio questa mattina quando mi sono imbattuto in questo, mandai la mail al venditore, ma per il momento non mi ha ancora risposto. cmq ti ringrazio molto, i tuoi consigli sono stati molto molto utili.

Quindi giusto per vedere se ho capito bene lo sheet.

usando il sensore in modalità DIGITAL, dovrò collegare

PIN G (del sensore) al PIN GND (di arduino) PIN V (del sensore) al PIN 5V ( di arduino) PIN N (del sensore) VUOTO PIN S (del sensore) al PIN (2 - 13 di arduino)

corretto?

Hai guardato la pagina WiKi di cui ti ho dato il link ? Usa il connettore a TRE pin (G,V,S) ... come ti ho indicato prima e ... ... come in questa foto:

|472x500

Guglielmo

Ok perfetto, userò quello, ma il collegamento è giusto come ho detto? G= GND V = 5v di arduino S = pin 2 - 13 digital pin?

esatto?

... a leggere la documentazione, lo schema (ftp://imall.iteadstudio.com/Electronic_Brick/IM120710017/SCH_IM120710017.pdf) ed ha vedere la foto ... direi di SI.

Guglielmo

scusate se insisto, ho effettuato i collegamenti come illustrato nella foto che vi allego.

Dove ho collegato

Filo Nero G(sulla scheda) GND (su arduino)
Filo Rosso V(sulla scheda) V5 (su arduino)
Filo Bianco S(sulla scheda) Pin 2 (su arduino)

Questo invece è lo sketch che ho utilizzato

int DSIGNAL = 2;

void setup() {
Serial.begin(9600);
pinMode(DSIGNAL, INPUT);
}

void loop() {

Keyboard.begin();

int DsignalState = digitalRead(DSIGNAL);
Serial.println(DsignalState);
delay(1000);
}

Caricato lo sketch su arduino Leonardo, aperto monitor seriale, quello che vedo è sempre 1. Se provo a mettere il dito sopra il sensore luce, stampa sempre e solo 1, ho anche provato a puntare il sensore sotto una luce, provato poi a toccare mettere il dito sopra. nada. da sempre e solo 1

dove sbaglio?

Hai messo bene il commutatore (guarda lo schema di cui ti ho dato il link) sulla schedina ? Hai fatto la prova con il tester che ti avevo detto di fare ?

Guglielmo

allora il tester non l ho utilizzato ancora (chiedo venia ) perchè non lo tengo con me.

Per quanto riguarda il commutatore (se intendi il trimmer) non so come regolarlo.

Se per commutatore invece intendi il tastino è in D (dovrebbe stare per Digitale)

Agendo sul trimmer, spostandolo verso destra o sinistra vedo che il numero cambia da 1 da 0 però cmq sembra un valore statico

bircastri:
Agendo sul trimmer, spostandolo verso destra o sinistra vedo che il numero cambia da 1 da 0 però cmq sembra un valore statico

Si, deve stare su “Digital” … ed è giusto che cambi da 0 a 1 … il punto in cui cambia è la soglia per l’illuminazione a cui è in quel momento … fisso il trimmer, in quel punto, variando la luminosità in più o in meno dovrebbe cambiare il valore digitale ::slight_smile:

ScreenSnapz001.jpg

Guglielmo

P.S: Ti sei studiato bene il WiKi ? Perché spiega chiaramente sia il trimmer che lo switch !

Allora mi devi perdonare, ma non sono un asso nel leggere gli schemi. Ad ogni modo, ho provato a seguire lo schema e collegare il tutto in analogico e diciamo il sensore rileva dei valori, passando da 20 a 150 ad esempio quando passo il dito sopra. Ora però volevo farlo funzionare in Digitalie.

Ho quindi fatto questo esperimento. Collegato arduino acceso, e messo il sensore sotto una lampada da tavolo, apro il monitor SERIALE, mi stampa sempre 1.

Poi agisco muovendo il trimmer dopo un pò, vedo che il valore che stampa è 0. Provo quindi a tenere il sensore sotto la lampada, tolgo il sensore dalla lampada, ma il valore che srampa è sempre lo stesso

Allora breve aggiornamento. Sono riuscito (per il momento senza tester) a tarare il trimmer, in pratica, ho puntato il led sul sensore ed ho girato il trimmer fino a quando non ha segnato il valore 1, a quel punto ho provato ad interrompere la luce ed Arduino segnava 0, riportando la luce allo stato ACCESA, arduino risegna 1. Quindi direi che il compito è stato assegnato.

Ora la mia domanda è, come faccio a settare in modo più preciso ed ottimale il trimmer? Come lo regolo dal multimetro? grazie

bircastri: Ora la mia domanda è, come faccio a settare in modo più preciso ed ottimale il trimmer? Come lo regolo dal multimetro? grazie

Esattamente come hai fatto ... sei TU che con il trimmer decidi il valore della "soglia" a cui il sistema scatta.

Quindi ... mettiti nelle condizioni di "lavoro", ovvero illumina come sarà realmente illuminato il sensore ... regola il trimmer in modo da portarlo circa al limite così che appena oscuri il sensore cambia stato.

Ovviamente il tutto è funzione anche della luce ambiente ... quindi, come detto, le regolazioni le devi fare nelle vere condizioni di lavoro ;)

Guglielmo

ok Gugliemo sei un grande, sono stati preziosissimi i tuoi consigli.

Ti spiego cosa dovrei fare. Dovrei montare 4 sensori led su arduino. Questi sensori saranno montati sotto una pista, un sensore per ogni corsia, sopra, ci sarà un led 1w alta luminosità puntato sul sensore, un led ogni modulo.

Quando la macchina passa sopra, interromperà la luce ed arduino dovrà inviare un carattere al pc. Questo lo faccio tramite Arduino Leonardo, che ha la possibilità anche di scrivere ed emulare una tastiera.

Attualmente per fare questo leggo sempre tutti e 4 i valori dei PIN (Digital 2,3,4,5), in base al valore che cambia scrivo un carattere piuttosto che un altro.

La mia perplessità è questa, così facendo leggo ad ogni ciclo tutti e 4 i valori, c'è un modo per leggere il valore da arduino, solo se cambia lo stato???

Quale è il problema a leggere in continuazione tutti e 4 i valori ? ? ? :o ... ... non mi sembra che nella tua applicazione Arduino debba fare altre cose, quindi ... se non legge i valori cosa altro gli fai fare ? Non sei mica su un PC dove comunque possono girare altri programmi, su Arduino sei nel loop() e qualche cosa gli devi far fare :D

Anzi, scegliendo opportunamente i pin ... e lavorando un po' [u]a basso livello[/u] (... leggendo direttamente il PORTx) ... con una sola lettura avresti tutti e 4 i tuoi pin, tutti in un singolo byte, un bit per pin (... e 4 inutilizzati) ;)

Guglielmo

ciao Gugliemo,

grazie ancora per i tuoi consigli. allora la cosa mi stuzzia non poco.

Ti chiederei questo.

Come faccio con il multimetro, a controllare il valore del modulo LDR???

2) più importante mi dai qualche dettaglio in più su come leggere questi valori con il PORTx???

grazie mille

bircastri: Come faccio con il multimetro, a controllare il valore del modulo LDR???

Esattamente come stai facendo ora con Arduino ... lo metti in portata Volt, puntale nero a GND e puntale rosso a 'S' ... regolando come sai il trimmer vedi scattare il comparatore (... che poi è quello che vedi su Arduino)

bircastri: 2) più importante mi dai qualche dettaglio in più su come leggere questi valori con il PORTx???

Presente come è fatto veramente il ATmega328P ...

|500x331

... come vedi, a parte la numerazione dei pin che da Arduino (in rosso) esiste la nomenclatura ufficiale Atmel (in nero).

Se vuoi sveltire devi sceglierti 4 pin che siano sulla stessa porta ... le porte sono identificate da PBx, PCx, PDx con x che va da 0 a 7 (... indica il bit all'interno della "porta" che è di 1 byte) ... e ovviamente scegline 4 che attualmente non usi e che non ti servono.

"Digerito" questo e scelti i tuoi 4 pin [u]sullo stesso "port"[/u] ... dimmeli e andiamo avanti al passo successivo :D

Guglielmo