Taula de continguts:

Sensor de llum (fotoresistència) amb Arduino a Tinkercad: 5 passos (amb imatges)
Sensor de llum (fotoresistència) amb Arduino a Tinkercad: 5 passos (amb imatges)

Vídeo: Sensor de llum (fotoresistència) amb Arduino a Tinkercad: 5 passos (amb imatges)

Vídeo: Sensor de llum (fotoresistència) amb Arduino a Tinkercad: 5 passos (amb imatges)
Vídeo: Light Up Your Street: Smart Street Light with LDR and Transistor | Tinkercad | 60 second Design Prep 2024, Juny
Anonim
Sensor de llum (fotoresistència) amb Arduino a Tinkercad
Sensor de llum (fotoresistència) amb Arduino a Tinkercad

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.

Imatge
Imatge

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

Construeix el circuit
Construeix el circuit
Construeix el circuit
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

Codi amb blocs
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)

Construeix un circuit físic d'Arduino (opcional)
Construeix un circuit físic d'Arduino (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: