Sommario:
- Passaggio 1: costruisci il circuito
- Passaggio 2: codifica con blocchi
- Passaggio 3: spiegazione del codice Arduino della fotoresistenza
- Passaggio 4: crea un circuito fisico Arduino (opzionale)
- Passaggio 5: quindi, prova…
Video: Sensore di luce (fotoresistenza) con Arduino in Tinkercad: 5 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
Progetti Tinkercad »
Impariamo a leggere una fotoresistenza, un tipo di resistenza variabile sensibile alla luce, utilizzando l'ingresso analogico di Arduino. È anche chiamato LDR (resistenza dipendente dalla luce).
Finora hai già imparato a controllare i LED con l'uscita analogica di Arduino e a leggere un potenziometro, che è un altro tipo di resistore variabile, quindi svilupperemo queste abilità in questa lezione. Ricorda che gli ingressi analogici di Arduino (pin contrassegnati da A0-A6) possono rilevare un segnale elettrico che cambia gradualmente e traducono quel segnale in un numero compreso tra 0 e 1023.
Esplora il circuito di esempio incorporato qui nel piano di lavoro facendo clic su Avvia simulazione e facendo clic sulla fotoresistenza (ovale marrone con una linea ondulata al centro), quindi trascina il cursore della luminosità per regolare l'ingresso della luce simulata.
In questa lezione, costruirai tu stesso questo circuito simulato insieme al campione. Per costruire facoltativamente il circuito fisico, raccogli la scheda Arduino Uno, il cavo USB, la breadboard senza saldatura, un LED, resistori (220 ohm e 4,7 k ohm), fotoresistenza e fili della breadboard.
Puoi seguire virtualmente usando i circuiti di Tinkercad. Puoi persino visualizzare questa lezione da Tinkercad (è richiesto l'accesso gratuito)! Esplora il circuito di esempio e costruisci il tuo proprio accanto ad esso. Tinkercad Circuits è un programma gratuito basato su browser che ti consente di costruire e simulare circuiti. È perfetto per l'apprendimento, l'insegnamento e la prototipazione.
Passaggio 1: costruisci il circuito
Dai un'occhiata al circuito breadboard nella foto. Può essere utile guardare una versione cablata di questo circuito di esempio per il confronto, nella foto. In questo passaggio, creerai la tua versione di questo circuito insieme al campione nel piano di lavoro.
Per seguire, carica una nuova finestra dei circuiti di Tinkercad e costruisci la tua versione di questo circuito insieme al campione.
Identifica la fotoresistenza, il LED, le resistenze e i cavi collegati ad Arduino nel piano di lavoro di Tinkercad Circuits.
Trascina un Arduino Uno e una breadboard dal pannello dei componenti al piano di lavoro, accanto al circuito esistente.
Collega i binari di alimentazione (+) e terra (-) della breadboard ad Arduino 5V e terra (GND), rispettivamente, facendo clic per creare i fili.
Estendere i binari di alimentazione e di massa ai rispettivi bus sul bordo opposto della breadboard (opzionale per questo circuito ma buona pratica comune).
Collegare il LED in due diverse file di breadboard in modo che il catodo (negativo, gamba più corta) si colleghi a una gamba di un resistore (va bene ovunque da 100-1K ohm). Il resistore può andare in entrambi gli orientamenti perché i resistori non sono polarizzati, a differenza dei LED, che devono essere collegati in un certo modo per funzionare.
Collegare l'altra gamba del resistore a terra.
Collegare l'anodo del LED (positivo, gamba più lunga) al pin 9 di Arduino.
Trascina una fotoresistenza dal pannello dei componenti alla breadboard, in modo che le sue gambe si inseriscano in due file diverse.
Fare clic per creare un cavo che collega una gamba della fotoresistenza all'alimentazione.
Collega l'altra gamba al pin analogico A0 di Arduino.
Trascinare un resistore dal pannello dei componenti per collegare la gamba del fotoresistore collegata ad A0 con massa e regolarne il valore su 4,7k ohm.
Passaggio 2: codifica con blocchi
Usiamo l'editor dei blocchi di codice per ascoltare lo stato della fotoresistenza, quindi impostiamo un LED a una luminosità relativa in base a quanta luce vede il sensore. Potresti voler rinfrescare la tua memoria dell'uscita analogica LED nella lezione Fading LED.
Fare clic sul pulsante "Codice" per aprire l'editor del codice. I blocchi di notazione grigi sono commenti per prendere nota di ciò che intendi fare per il tuo codice, ma questo testo non viene eseguito come parte del programma.
Fare clic sulla categoria Variabili nell'editor del codice.
Per memorizzare il valore di resistenza della fotoresistenza, creare una variabile denominata "sensorValue".
Trascina un blocco "set". Memorizzeremo lo stato della nostra fotoresistenza nella variabile
valore sensore
Fare clic sulla categoria Input e trascinare un blocco "pin di lettura analogica" e posizionarlo nel blocco "set" dopo la parola "to"
Poiché il nostro potenziometro è collegato ad Arduino sul pin A0, cambia il menu a discesa in A0.
Fare clic sulla categoria Output e trascinare un blocco "stampa su monitor seriale".
Passa alla categoria Variabili e trascina la tua variabile sensorValue sul blocco "stampa su monitor seriale" e assicurati che il menu a discesa sia impostato per stampare con una nuova riga. Facoltativamente, avviare la simulazione e aprire il monitor seriale per verificare che le letture arrivino e cambino quando si regola il sensore. I valori dell'ingresso analogico vanno da 0-1023.
Poiché vogliamo scrivere sul LED con un numero compreso tra 0 (spento) e 255 (massima luminosità), utilizzeremo il blocco "map" per eseguire una moltiplicazione incrociata per noi. Passa alla categoria Matematica e trascina un blocco "mappa".
Nel primo slot, trascina un blocco variabile sensorValue, quindi imposta l'intervallo da 0 a 255.
Torna nella categoria Output, trascina un blocco analogico "imposta pin", che per impostazione predefinita dice "imposta pin 3 su 0". Regolarlo per impostare il pin 9.
Trascina il blocco mappa creato in precedenza nel campo "a" del blocco "set pin" per scrivere il numero regolato sul pin LED utilizzando PWM.
Fare clic sulla categoria Controllo e trascinare un blocco di attesa e regolarlo per ritardare il programma di 0,1 secondi.
Passaggio 3: spiegazione del codice Arduino della fotoresistenza
Quando l'editor di codice è aperto, puoi fare clic sul menu a discesa a sinistra e selezionare "Blocchi + Testo" per rivelare il codice Arduino generato dai blocchi di codice. Segui mentre esploriamo il codice in modo più dettagliato.
int valoresensore = 0;
Prima di
impostare()
creiamo una variabile per memorizzare il valore corrente letto dal potenziometro. È chiamato
int
perché è un numero intero o un qualsiasi numero intero.
configurazione nulla()
{ pinMode(A0, INGRESSO); pinMode(9, USCITA); Serial.begin(9600); }
All'interno del setup, i pin sono configurati usando il
pinMode()
funzione. Il pin A0 è configurato come ingresso, quindi possiamo "ascoltare" lo stato elettrico del potenziometro. Il pin 9 è configurato come uscita per controllare il LED. Per poter inviare messaggi, Arduino apre un nuovo canale di comunicazione seriale con
Seriale.inizio()
che accetta un argomento di baud rate (quale velocità comunicare), in questo caso 9600 bit al secondo.
ciclo vuoto()
{ // legge il valore dal sensore sensorValue = analogRead(A0); // stampa la lettura del sensore in modo da conoscere il suo intervallo Serial.println(sensorValue);
Qualsiasi cosa dopo una serie di barre
//
è un commento, che aiuta le persone a capire in un linguaggio semplice cosa è destinato a fare il programma, ma non è incluso nel programma eseguito da Arduino. Nel ciclo principale, una funzione chiamata
analogRead();
controlla lo stato del pin A0 (che sarà un numero intero da 0-1023) e memorizza quel valore nella variabile
valore sensore
// mappa la lettura del sensore su un intervallo per il LED
analogWrite(9, map(sensorValue, 0, 1023, 0, 255)); ritardo(100); // Attendi 100 millisecondi }
La riga che segue il commento successivo sta facendo molto contemporaneamente. Ricordare
analogWrite()
accetta due argomenti, il numero del pin (9 nel nostro caso) e il valore da scrivere, che dovrebbe essere compreso tra 0 e 255. La funzione inline
carta geografica()
accetta cinque argomenti: il numero da valutare (la variabile del sensore in continua evoluzione), il minimo e il massimo previsti e il minimo e il massimo desiderati. Così il
carta geografica()
la funzione nel nostro caso sta valutando il sensorValue in ingresso e facendo qualche moltiplicazione incrociata per ridimensionare l'uscita da 0-1023 a 0-255. Il risultato viene restituito nel secondo argomento di
analogWrite();
impostando la luminosità del LED collegato al pin 9.
Passaggio 4: crea un circuito fisico Arduino (opzionale)
Per programmare il tuo Arduino Uno fisico, dovrai installare il software gratuito (o plug-in per l'editor web), quindi aprirlo. Varie fotocellule hanno valori diversi, quindi se il tuo circuito fisico non funziona, potrebbe essere necessario cambiare il resistore ad esso associato. Scopri di più sui divisori di tensione nella lezione Instructables Electronics Class sui resistori.
Collega il circuito Arduino Uno collegando componenti e fili in modo che corrispondano alle connessioni mostrate qui in Circuiti Tinkercad. Per una guida più approfondita su come lavorare con la tua scheda fisica Arduino Uno, dai un'occhiata alla lezione Arduino gratuita di Instructables.
Copia il codice dalla finestra del codice di Tinkercad Circuits e incollalo in uno schizzo vuoto nel tuo software Arduino, oppure fai clic sul pulsante di download (freccia rivolta verso il basso) e apri
il file risultante utilizzando Arduino. Puoi anche trovare questo esempio nel software Arduino navigando su File -> Esempi -> 03. Analog -> AnalogInOutSerial.
Collega il cavo USB e seleziona la scheda e la porta nel menu Strumenti del software.
Carica il codice e usa la mano per coprire il sensore dalla ricezione della luce e/o illuminare il sensore!
Apri il monitor seriale per osservare i valori del sensore. È probabile che i valori del mondo reale non si estenderanno fino a 0 o fino a 1023, a seconda delle condizioni di illuminazione. Sentiti libero di regolare l'intervallo 0-1023 al minimo osservato e al massimo osservato per ottenere il massimo intervallo di espressione della luminosità sul LED.
Passaggio 5: quindi, prova…
Ora che hai imparato a leggere una fotoresistenza e a mappare la sua uscita per controllare la luminosità di un LED, sei pronto per applicare quelle e altre abilità che hai imparato finora.
Puoi sostituire il LED con un altro tipo di uscita, come un servomotore, e creare un codice per riflettere l'attuale livello di luce del sensore come una determinata posizione lungo un indicatore?
Prova a sostituire la tua fotoresistenza con altri ingressi analogici come un sensore di distanza a ultrasuoni o un potenziometro.
Scopri di più su come monitorare gli ingressi digitali e analogici di Arduino tramite il computer utilizzando il monitor seriale.
Consigliato:
Luce notturna con rilevamento della luce commutabile: 8 passaggi (con immagini)
Luce notturna con rilevamento della luce commutabile: questa istruzione mostra come ho violato un sensore di luce notturna in modo che possa essere spento manualmente. Leggi attentamente, fai attenzione a eventuali circuiti aperti e chiudi la tua area se necessario prima del test dell'unità
Interruttore della luce attivato dal movimento con sensore di luce: 5 passaggi
Interruttore della luce attivato dal movimento con sensore di luce: l'interruttore della luce attivato dal movimento ha molte applicazioni sia a casa che in ufficio. Questo, tuttavia, ha aggiunto il vantaggio di incorporare un sensore di luce, in modo che questa luce possa attivarsi solo di notte
Misuratore di luce Arduino fai da te con sensore BH1750: 6 passaggi (con immagini)
Esposimetro fai-da-te Arduino con sensore BH1750: in questo Instructable ti mostrerò come costruire un esposimetro con un grande display LCD Nokia 5110 utilizzando Arduino. Costruire un esposimetro è una grande esperienza di apprendimento. Quando avrai finito di costruire questo progetto avrai una migliore comprensione
Lampada LED Wireless Arduino con abbinamento di luce con fotoresistenza: 4 passaggi
Lampada LED wireless per l'abbinamento della luce Arduino con fotoresistenza: questa istruzione descrive in dettaglio i passaggi necessari per costruire una rudimentale lampada LED con rilevamento della luce wireless utilizzando Arduino Unos e una fotoresistenza. Una possibile applicazione per questo dispositivo sarebbe l'illuminazione di una stanza che non ha finestre con artifici
Circuito OLED a lume di candela con fotoresistenza per il controllo dell'intensità (TfCD): 4 passaggi (con immagini)
Circuito a lume di candela OLED con fotoresistenza per il controllo dell'intensità (TfCD): in questo tutorial ti mostriamo come realizzare un circuito che mostri lo sfarfallio di (O) LED come una candela e reagisca all'intensità dell'ambiente. Con una minore intensità luminosa è necessaria una minore emissione di luce dalle sorgenti luminose. Con questa applicazione