Innholdsfortegnelse:

Lyssensor (fotoresistor) med Arduino i Tinkercad: 5 trinn (med bilder)
Lyssensor (fotoresistor) med Arduino i Tinkercad: 5 trinn (med bilder)

Video: Lyssensor (fotoresistor) med Arduino i Tinkercad: 5 trinn (med bilder)

Video: Lyssensor (fotoresistor) med Arduino i Tinkercad: 5 trinn (med bilder)
Video: 🔮 Illuminate your Space: Transforming Your Home with the Brilliant Smart Home for Lights | Review! 2024, Juli
Anonim
Lyssensor (fotoresistor) med Arduino i Tinkercad
Lyssensor (fotoresistor) med Arduino i Tinkercad

Tinkercad -prosjekter »

La oss lære å lese en fotoresistor, en lysfølsom type variabel motstand, ved hjelp av Arduinos analoge inngang. Det kalles også en LDR (lysavhengig motstand).

Så langt har du allerede lært å kontrollere lysdioder med Arduinos analoge utgang, og å lese et potensiometer, som er en annen type variabel motstand, så vi bygger videre på disse ferdighetene i denne leksjonen. Husk at Arduinos analoge innganger (pinner merket A0-A6) kan oppdage et gradvis skiftende elektrisk signal, og oversetter det signalet til et tall mellom 0 og 1023.

Bilde
Bilde

Utforsk prøvekretsen som er innebygd her på arbeidsplanet ved å klikke på Start simulering og klikke på fotoresistoren (brun oval med snirklet linje nedover midten), og dra deretter glidebryteren for lysstyrke for å justere den simulerte lysinngangen.

I denne leksjonen vil du bygge denne simulerte kretsen selv langs prøven. Hvis du vil bygge den fysiske kretsen, samler du Arduino Uno -kortet, USB -kabelen, loddefri brødbrett, en LED, motstander (220 ohm og 4,7 k ohm), fotoresistor og brødbrettledninger.

Du kan følge med praktisk talt ved å bruke Tinkercad Circuits. Du kan til og med se denne leksjonen fra Tinkercad (gratis pålogging kreves)! Utforsk prøvekretsen og bygg din egen rett ved siden av den. Tinkercad Circuits er et gratis nettleserbasert program som lar deg bygge og simulere kretser. Den er perfekt for læring, undervisning og prototyper.

Trinn 1: Bygg kretsen

Bygg kretsen
Bygg kretsen
Bygg kretsen
Bygg kretsen

Ta en titt på brødbrettskretsen på bildet. Det kan være nyttig å se på en gratis kablet versjon av denne prøvekretsen for sammenligning, på bildet. I dette trinnet vil du bygge din egen versjon av denne kretsen langs siden av prøven på arbeidsplanet.

For å følge med, last opp et nytt Tinkercad Circuits -vindu og bygg din egen versjon av denne kretsen langs siden av prøven.

Identifiser fotoresistor, LED, motstander og ledninger som er koblet til Arduino i arbeidsplanet for Tinkercad Circuits.

Dra en Arduino Uno og brødbrett fra komponentpanelet til arbeidsplanet, ved siden av den eksisterende kretsen.

Koble brødbrettets strøm (+) og jordede (-) skinner til henholdsvis Arduino 5V og bakken (GND) ved å klikke for å lage ledninger.

Forleng kraft og jordskinner til sine respektive busser på motsatt kant av brødbrettet (valgfritt for denne kretsen, men god vanlig praksis).

Koble LED-en til to forskjellige brødbrettrader, slik at katoden (negativt, kortere ben) kobles til det ene benet på en motstand (alt fra 100-1K ohm er greit). Motstanden kan gå i begge retninger fordi motstander ikke er polariserte, i motsetning til lysdioder, som må være tilkoblet på en bestemt måte for å fungere.

Koble det andre motstandsbenet til bakken.

Koble LED -anoden (positivt, lengre ben) til Arduino pin 9.

Dra en fotoresistor fra komponentpanelet til brødbrettet, så bena kan plugges inn i to forskjellige rader.

Klikk for å lage en ledning som forbinder ett fotoresistorben til strøm.

Koble det andre benet til Arduino analog pin A0.

Dra en motstand fra komponentpanelet for å koble fotoresistorbenet til A0 med jord, og juster verdien til 4,7 k ohm.

Trinn 2: Kode med blokker

Kode med blokker
Kode med blokker

La oss bruke kodeblokkereditoren til å lytte til tilstanden til fotoresistoren, og deretter sette en LED til en relativ lysstyrke basert på hvor mye lys sensoren ser. Det kan være lurt å oppdatere minnet om LED -analog utgang i Fading LED -leksjonen.

Klikk på "Code" -knappen for å åpne kodeditoren. De grå notasjonsblokkene er kommentarer for å notere hva du har tenkt at koden din skal gjøre, men denne teksten blir ikke utført som en del av programmet.

Klikk på kategorien Variabler i kodeditoren.

For å lagre motstandsverdien til fotoresistoren, opprett en variabel som heter "sensorValue".

Dra ut en "sett" blokk. Vi lagrer tilstanden til vår fotoresistor i variabelen

sensorValue

Klikk på Input -kategorien og dra ut en "analog read pin" -blokk, og plasser den i "set" -blokken etter ordet "to"

Siden potensiometeret vårt er koblet til Arduino på pin A0, må du endre rullegardinmenyen til A0.

Klikk på kategorien Utdata og dra ut en blokk "Skriv ut til seriell skjerm".

Naviger til kategorien Variabler og dra den variable sensorValue til blokken "Skriv ut til seriell skjerm", og kontroller at rullegardinmenyen er satt til å skrive ut med en ny linje. Du kan også starte simuleringen og åpne den serielle skjermen for å kontrollere at avlesninger kommer inn og endres når du justerer sensoren. Analoge inngangsverdier varierer fra 0-1023.

Siden vi ønsker å skrive til lysdioden med et tall mellom 0 (av) og 255 (full lysstyrke), bruker vi "kart" -blokken for å gjøre kryssmultiplikasjon for oss. Naviger til kategorien Matematikk og dra ut en "kart" -blokk.

I det første sporet drar du i en sensorValue -variabel blokk, og angir deretter området fra 0 til 255.

Tilbake i kategorien Output drar du ut en analog "set pin" -blokk, som som standard sier "set pin 3 to 0." Juster den for å sette pin 9.

Dra kartblokken du lagde tidligere inn i "settnål" -blokkens "til" -felt for å skrive det justerte tallet til LED -pinnen ved hjelp av PWM.

Klikk på kategorien Kontroll og dra ut en venteblokk, og juster den for å forsinke programmet i.1 sekunder.

Trinn 3: Fotoresistor Arduino -kode forklart

Når kodeditoren er åpen, kan du klikke rullegardinmenyen til venstre og velge "Blokker + tekst" for å avsløre Arduino -koden generert av kodeblokkene. Følg med når vi utforsker koden mer detaljert.

int sensorValue = 0;

Før

oppsett ()

lager vi en variabel for å lagre gjeldende verdi som er lest fra potensiometeret. Det heter

int

fordi det er et heltall eller et helt tall.

ugyldig oppsett ()

{pinMode (A0, INNGANG); pinMode (9, OUTPUT); Serial.begin (9600); }

Inne i oppsettet er pinner konfigurert ved hjelp av

pinMode ()

funksjon. Pinne A0 er konfigurert som en inngang, slik at vi kan "lytte" til potensiometerets elektriske tilstand. Pin 9 er konfigurert som en utgang for å kontrollere LED -en. For å kunne sende meldinger, åpner Arduino en ny seriell kommunikasjonskanal med

Serial.begin ()

som tar et baudhastighetsargument (hvilken hastighet du skal kommunisere), i dette tilfellet 9600 bits per sekund.

hulrom ()

{// les verdien fra sensoren sensorValue = analogRead (A0); // skriv ut sensoravlesningen slik at du kjenner rekkevidden Serial.println (sensorValue);

Alt etter et sett med skråstreker

//

er en kommentar, som hjelper folk å forstå klart og tydelig hva programmet er ment å gjøre, men er ikke inkludert i programmet Arduino kjører. I hovedløkken kalles en funksjon

analogRead ();

sjekker tilstanden til pin A0 (som vil være et helt tall fra 0-1023), og lagrer denne verdien i variabelen

sensorValue

// tilordne sensoravlesningen til et område for LED -en

analogWrite (9, kart (sensorValue, 0, 1023, 0, 255)); forsinkelse (100); // Vent i 100 millisekund (er)}

Linjen som følger den neste kommentaren gjør mye på en gang. Huske

analogWrite ()

tar to argumenter, pin -tallet (9 i vårt tilfelle) og verdien som skal skrives, som skal være mellom 0 og 255. Inline -funksjonen

kart()

tar fem argumenter: tallet som skal evalueres (den stadig skiftende sensorvariabelen), forventet minimum og forventet maksimum, og ønsket min og maks. Så

kart()

funksjon i vårt tilfelle er å evaluere den innkommende sensorValue, og gjøre litt kryssmultiplikasjon for å skalere utgangen fra 0-1023 til 0-255. Resultatet returneres til det andre argumentet til

analogWrite ();

innstilling av lysstyrken til LED -en som er koblet til pinne 9.

Trinn 4: Bygg en fysisk Arduino -krets (valgfritt)

Bygg en fysisk Arduino -krets (valgfritt)
Bygg en fysisk Arduino -krets (valgfritt)

For å programmere din fysiske Arduino Uno må du installere gratis programvare (eller plugin for webredigereren) og deretter åpne den. Ulike fotoceller har forskjellige verdier, så hvis din fysiske krets ikke fungerer, må du kanskje endre motstanden som er parret med den. Lær mer om spenningsdelere i leksjonen Instructables Electronics Class om motstander.

Koble opp Arduino Uno -kretsen ved å koble til komponenter og ledninger for å matche tilkoblingene som vises her i Tinkercad Circuits. For en mer grundig gjennomgang av arbeidet med ditt fysiske Arduino Uno-brett, sjekk ut gratis Instructables Arduino-klasse.

Kopier koden fra Tinkercad Circuits -kodevinduet og lim den inn i en tom skisse i Arduino -programvaren, eller klikk på nedlastingsknappen (pil nedover) og åpne

den resulterende filen ved hjelp av Arduino. Du kan også finne dette eksemplet i Arduino -programvaren ved å navigere til Fil -> Eksempler -> 03. Analog -> AnalogInOutSerial.

Koble til USB -kabelen og velg kortet og porten i programvareverktøy -menyen.

Last opp koden og bruk hånden din for å dekke sensoren fra å motta lys, og/eller skinne et lys på sensoren din!

Åpne den serielle skjermen for å observere sensorverdiene. Det er sannsynlig at verdiene i den virkelige verden ikke vil strekke seg helt til 0 eller helt til 1023, avhengig av lysforholdene dine. Juster gjerne 0-1023-området til ditt observerte minimum og observerte maksimum for å få maksimal lysstyrkeuttrykk på LED-en.

Trinn 5: Prøv deretter …

Nå som du har lært å lese en fotoresistor og kartlegge utgangen for å kontrollere lysstyrken til en LED, er du klar til å bruke de og andre ferdighetene du har lært så langt.

Kan du bytte ut LED -en for en annen type utgang, som en servomotor, og lage en kode for å gjenspeile sensorens nåværende lysnivå som en bestemt posisjon langs en måler?

Prøv å bytte ut fotoresistoren din for andre analoge innganger, for eksempel en ultralydavstandssensor eller potensiometer.

Lær mer om hvordan du overvåker Arduinos digitale og analoge innganger via datamaskinen ved hjelp av seriell skjerm.

Anbefalt: