Taula de continguts:
- Pas 1: Construeix el circuit
- Pas 2: Codi amb blocs
- Pas 3: explicació del codi Arduino de la fotoresistència
- Pas 4: Creeu un circuit Arduino físic (opcional)
- Pas 5: després, proveu …
Vídeo: Sensor de llum (fotoresistència) amb Arduino a Tinkercad: 5 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
Projectes Tinkercad »
Aprenem a llegir un fotoresistor, un tipus de resistència variable sensible a la llum, mitjançant l’entrada analògica d’Arduino. També s’anomena LDR (resistència dependent de la llum).
Fins ara ja heu après a controlar els LED amb la sortida analògica d’Arduino i a llegir un potenciòmetre, que és un altre tipus de resistència variable, de manera que aprofundirem en aquestes habilitats en aquesta lliçó. Recordeu que les entrades analògiques d’Arduino (pins marcats com A0-A6) poden detectar un senyal elèctric que canvia gradualment i tradueix aquest senyal en un número entre 0 i 1023.
Exploreu el circuit de mostra incrustat aquí al pla de treball fent clic a Inicia la simulació i fent clic al fotoresistor (oval marró amb una línia esglaonada pel centre) i arrossegueu el control lliscant de brillantor per ajustar l'entrada de llum simulada.
En aquesta lliçó, construireu aquest circuit simulat al costat de la mostra. Per construir opcionalment el circuit físic, recopileu la vostra placa Arduino Uno, cable USB, placa de soldadura sense soldadura, un LED, resistències (220 ohm i 4,7 k ohm), fotoresistència i cables de la placa.
Podeu seguir-lo virtualment utilitzant Tinkercad Circuits. Fins i tot podeu veure aquesta lliçó des de Tinkercad (cal iniciar sessió gratuïta). Exploreu el circuit de mostra i creeu-ne el vostre al costat. Tinkercad Circuits és un programa gratuït basat en navegador que us permet construir i simular circuits. És perfecte per aprendre, ensenyar i crear prototips.
Pas 1: Construeix el circuit
Mireu el circuit de taulers de la imatge. Pot ser útil mirar una versió de cable lliure d’aquest circuit de mostra per a la comparació, a la imatge. En aquest pas, crearà la vostra pròpia versió d’aquest circuit al costat de la mostra al pla de treball.
Per continuar, carregueu una nova finestra de circuits de Tinkercad i creeu la vostra pròpia versió d’aquest circuit al costat de la mostra.
Identifiqueu el fotoresistor, el LED, les resistències i els cables connectats a l’Arduino al pla de treball dels circuits de Tinkercad.
Arrossegueu un Arduino Uno i una placa de configuració des del tauler de components fins al pla de treball, al costat del circuit existent.
Connecteu els rails d'alimentació (+) i de terra (-) de la taula de pa a Arduino 5V i terra (GND), respectivament, fent clic per crear cables.
Amplieu els rails d’alimentació i terra als seus respectius autobusos a la vora oposada de la placa de control (opcional per a aquest circuit, però una bona pràctica habitual).
Connecteu el LED a dues files diferents de taulers perquè el càtode (negatiu, pota més curta) es connecti a una pota d’una resistència (entre 100-1K ohms està bé). La resistència pot anar en qualsevol orientació perquè les resistències no estan polaritzades, a diferència dels LED, que han de connectar-se d’una manera determinada per funcionar.
Connecteu una altra cama de resistència a terra.
Connecteu l’ànode LED (cama positiva i més llarga) al pin 9 d’Arduino.
Arrossegueu un fotoresistor des del tauler de components a la taula de treball, de manera que les seves potes es connectin a dues files diferents.
Feu clic per crear un cable que connecti una pota de fotoresistència a l'alimentació.
Connecteu l'altra pota al pin analògic A0 d'Arduino.
Arrossegueu una resistència des del tauler de components per connectar la pota de la fotoresistència connectada a A0 amb terra i ajusteu-ne el valor a 4,7 k ohms.
Pas 2: Codi amb blocs
Utilitzem l'editor de blocs de codi per escoltar l'estat del fotoresistor i, a continuació, configurem un LED amb una brillantor relativa segons la quantitat de llum que veu el sensor. És possible que vulgueu actualitzar la memòria de la sortida analògica de LED a la lliçó de Fading LED.
Feu clic al botó "Codi" per obrir l'editor de codi. Els blocs de notació gris són comentaris per prendre nota del que voleu que faci el vostre codi, però aquest text no s’executa com a part del programa.
Feu clic a la categoria Variables de l'editor de codi.
Per emmagatzemar el valor de resistència del fotoresistor, creeu una variable anomenada "sensorValue".
Arrossegueu un bloc "set". Emmagatzemarem l’estat del nostre fotoresistor a la variable
sensorValue
Feu clic a la categoria Entrada i arrossegueu un bloc "pin de lectura analògic" i col·loqueu-lo al bloc "set" després de la paraula "a"
Com que el nostre potenciòmetre està connectat a l'Arduino al pin A0, canvieu el menú desplegable a A0.
Feu clic a la categoria de sortida i arrossegueu el bloc "imprimeix al monitor sèrie".
Aneu a la categoria Variables i arrossegueu el sensorValue variable al bloc "imprimeix al monitor sèrie" i assegureu-vos que el menú desplegable estigui configurat per imprimir amb una nova línia. Opcionalment, inicieu la simulació i obriu el monitor sèrie per comprovar que les lectures entren i canvien quan ajusteu el sensor. Els valors d'entrada analògica oscil·len entre 0-1023.
Com que volem escriure al LED amb un número entre 0 (apagat) i 255 (brillantor total), utilitzarem el bloc "mapa" per fer-nos una multiplicació creuada. Aneu a la categoria de matemàtiques i arrossegueu un bloc de "mapa".
A la primera ranura, arrossegueu un bloc variable sensorValue i, a continuació, configureu l’interval de 0 a 255.
De nou a la categoria de sortida, arrossegueu un bloc analògic "fixa el pin", que per defecte diu "estableix el pin 3 a 0." Ajusteu-lo al pin 9.
Arrossegueu el bloc de mapa que heu creat anteriorment al camp "a" del bloc "fixa el pin" per escriure el número ajustat al pin LED mitjançant PWM.
Feu clic a la categoria Control i arrossegueu un bloc d'espera i ajusteu-lo per retardar el programa durant 1 segon.
Pas 3: explicació del codi Arduino de la fotoresistència
Quan l'editor de codi està obert, podeu fer clic al menú desplegable de l'esquerra i seleccionar "Blocs + Text" per mostrar el codi Arduino generat pels blocs de codi. Seguiu-ho mentre explorem el codi amb més detall.
int sensorValue = 0;
Abans de
setup ()
creem una variable per emmagatzemar el valor actual llegit des del potenciòmetre. Es diu
int
perquè és un nombre enter o qualsevol número enter.
configuració nul·la ()
{pinMode (A0, INPUT); pinMode (9, OUTPUT); Serial.begin (9600); }
Dins de la configuració, els pins es configuren mitjançant el fitxer
pinMode ()
funció. El pin A0 es configura com a entrada, de manera que podem "escoltar" l'estat elèctric del potenciòmetre. El pin 9 es configura com una sortida per controlar el LED. Per poder enviar missatges, Arduino obre un nou canal de comunicació en sèrie amb
Serial.begin ()
que pren un argument de velocitat en bauds (quina velocitat comunicar), en aquest cas 9600 bits per segon.
bucle buit ()
{// llegiu el valor del sensor sensorValue = analogRead (A0); // imprimiu la lectura del sensor perquè conegueu el seu rang Serial.println (sensorValue);
Qualsevol cosa després d'un conjunt de barres diagonals
//
és un comentari que ajuda a la gent a entendre en llenguatge senzill el que el programa està destinat a fer, però no està inclòs al programa que executa Arduino. Al bucle principal, una funció anomenada
analogRead ();
comprova l'estat del pin A0 (que serà un número enter de 0-1023) i emmagatzema aquest valor a la variable
sensorValue
// assigneu la lectura del sensor a un interval per al LED
analogWrite (9, mapa (sensorValue, 0, 1023, 0, 255)); retard (100); // Espera 100 mil·lisegons}
La línia següent al següent comentari està fent moltes coses alhora. Recordeu
analogWrite ()
pren dos arguments, el número de pin (9 en el nostre cas) i el valor per escriure, que hauria d’estar entre 0 i 255. La funció en línia
mapa ()
adopta cinc arguments: el nombre a avaluar (la variable del sensor en constant canvi), el mínim i el màxim esperats, i el mínim i el màxim desitjats. Doncs el
mapa ()
La nostra funció és avaluar el sensorValue entrant i fer una multiplicació creuada per reduir la sortida de 0-1023 a 0-255. El resultat es torna al segon argument de
analogWrite ();
configurant la brillantor del LED connectat al pin 9.
Pas 4: Creeu un circuit Arduino físic (opcional)
Per programar el vostre Arduino Uno físic, haureu d’instal·lar el programari gratuït (o el connector per a l’editor web) i obrir-lo. Diverses fotocèl·lules tenen valors diferents, de manera que si el vostre circuit físic no funciona, és possible que hàgiu de canviar la resistència que hi està associada. Obteniu més informació sobre els divisors de tensió a la lliçó sobre resistències de la classe Electrònica Instructables.
Connecteu el circuit Arduino Uno endollant components i cables perquè coincideixin amb les connexions que es mostren aquí als circuits de Tinkercad. Per obtenir un treball més profund sobre el treball amb la vostra placa física Arduino Uno, consulteu la classe gratuïta Instructables Arduino.
Copieu el codi de la finestra del codi de Tinkercad Circuits i enganxeu-lo en un esbós buit al vostre programari Arduino o feu clic al botó de descàrrega (fletxa cap avall) i obriu
També podeu trobar aquest exemple al programari Arduino si aneu a Fitxer -> Exemples -> 03. Analog -> AnalogInOutSerial.
Connecteu el cable USB i seleccioneu la placa i el port al menú Eines del programari.
Pengeu el codi i utilitzeu la mà per tapar el sensor de la recepció de llum i / o fer-li brillar una llum.
Obriu el monitor sèrie per observar els valors del sensor. És probable que els valors del món real no s’estenguin fins a 0 ni fins a 1023, segons les condicions d’il·luminació. No dubteu a ajustar el rang 0-1023 al mínim observat i al màxim observat per obtenir el rang màxim d’expressió de la brillantor al LED.
Pas 5: després, proveu …
Ara que heu après a llegir una fotoresistència i a mapar-ne la sortida per controlar la brillantor d’un LED, esteu preparats per aplicar aquestes i altres habilitats que heu après fins ara.
Podeu canviar el LED per un altre tipus de sortida, com ara un servomotor, i crear algun codi que reflecteixi el nivell de llum actual del sensor com una determinada posició al llarg d’un indicador?
Proveu de canviar el fotoreistor per altres entrades analògiques, com ara un sensor de distància ultrasònic o un potenciòmetre.
Obteniu més informació sobre com controlar les entrades digitals i analògiques del vostre Arduino a través de l’ordinador mitjançant el monitor sèrie.
Recomanat:
Llum de bicicleta molt brillant amb PCB de panells de llum personalitzats: 8 passos (amb imatges)
Llum molt brillant per a bicicletes amb PCB de panells de llum personalitzats: si teniu una bicicleta, sabreu fins a quin punt poden resultar desagradables els sots als pneumàtics i al cos. Ja tenia prou bufat els pneumàtics, així que vaig decidir dissenyar el meu propi panell led amb la intenció d’utilitzar-lo com a llum de bicicleta. Un que se centra en ser E
Llum LED de bricolatge: llum d'ànim moderna d'escriptori amb control remot: 8 passos (amb imatges)
Llum LED de bricolatge: làmpada moderna d'ànim d'escriptori amb control remot: en aquest article repassaré el procés que vaig fer per construir aquesta impressionant làmpada d'ànim LED en forma de piràmide. Vaig utilitzar l'auró per a l'estructura principal i algunes espines de caoba per obtenir més resistència. Per a les llums he utilitzat llums LED RGB que vénen en una tira de 16 peus
Làmpada LED sense fils Arduino que combina llum amb fotoresistència: 4 passos
Làmpada LED sense fils Arduino que coincideix amb la llum mitjançant fotoresistència: en aquesta instrucció es detallen els passos necessaris per construir una làmpada LED sense fil sensible a la llum rudimentària mitjançant Arduino Unos i un fotoresistor. Una possible aplicació d’aquest dispositiu seria il·luminar una habitació que no tingui finestres amb artifici
Circuit de llum de vela OLED amb fotoresistència per al control de la intensitat (TfCD): 4 passos (amb imatges)
Circuit de llum d’espelmes OLED amb fotoresistència per al control d’intensitat (TfCD): en aquest instructiu us mostrem com fer un circuit que mostri el LED (O) que parpelleja com una espelma i reaccioni a la intensitat de l’entorn. Amb una intensitat de llum més baixa es necessita una sortida de llum més baixa de les fonts de llum. Amb aquesta aplicació
Sabre de llum basat en Arduino amb efectes de llum i so: 14 passos (amb imatges)
Sabre de llum basat en Arduino amb efectes de llum i so: Hola jedi! Aquest instructiu tracta de fer un sabre de llum que sembli, soni i funcioni com el de la pel·lícula. L'única diferència: no pot tallar metall: (Aquest dispositiu es basa en la plataforma Arduino i li dono moltes funcions i funcions, però