Indholdsfortegnelse:

Lyssensor (fotoresistor) med Arduino i Tinkercad: 5 trin (med billeder)
Lyssensor (fotoresistor) med Arduino i Tinkercad: 5 trin (med billeder)

Video: Lyssensor (fotoresistor) med Arduino i Tinkercad: 5 trin (med billeder)

Video: Lyssensor (fotoresistor) med Arduino i Tinkercad: 5 trin (med billeder)
Video: LDR Sensor | LDR Project | LDR Sensor Project | LDR Working Principle | Light Dependent Resistor | 2024, November
Anonim
Lyssensor (fotoresistor) Med Arduino i Tinkercad
Lyssensor (fotoresistor) Med Arduino i Tinkercad

Tinkercad -projekter »

Lad os lære at læse en fotoresistor, en lysfølsom type variabel modstand, ved hjælp af Arduinos analoge indgang. Det kaldes også en LDR (lysafhængig modstand).

Hidtil har du allerede lært at styre lysdioder med Arduinos analoge output og at læse et potentiometer, som er en anden type variabel modstand, så vi bygger videre på disse færdigheder i denne lektion. Husk, at Arduinos analoge indgange (ben mærket A0-A6) kan registrere et gradvist skiftende elektrisk signal og oversætter dette signal til et tal mellem 0 og 1023.

Billede
Billede

Udforsk prøvekredsløbet, der er indlejret her på arbejdsplanen, ved at klikke på Start simulering og klikke på fotoresistoren (brun oval med snirklet linje ned i midten), og træk derefter skyderen til lysstyrke for at justere det simulerede lysindgang.

I denne lektion bygger du selv dette simulerede kredsløb langs prøven. For valgfrit at opbygge det fysiske kredsløb skal du samle dit Arduino Uno -bord, USB -kabel, loddefrit brødbræt, en LED, modstande (220 ohm og 4,7 k ohm), fotoresistor og brødbrætstråde.

Du kan følge med praktisk talt ved hjælp af Tinkercad -kredsløb. Du kan endda se denne lektion indefra Tinkercad (gratis login kræves)! Udforsk prøvekredsløbet, og byg dit eget ved siden af det. Tinkercad Circuits er et gratis browserbaseret program, der lader dig bygge og simulere kredsløb. Det er perfekt til læring, undervisning og prototyper.

Trin 1: Byg kredsløbet

Byg kredsløbet
Byg kredsløbet
Byg kredsløbet
Byg kredsløbet

Tag et kig på brødbordskredsløbet på billedet. Det kan være nyttigt at se på en gratis kablet version af dette prøvekredsløb til sammenligning, på billedet. I dette trin opbygger du din egen version af dette kredsløb langs prøven på arbejdsplanen.

For at følge med skal du indlæse et nyt Tinkercad Circuits -vindue og bygge din egen version af dette kredsløb langs siden af prøven.

Identificer fotoresistor, LED, modstande og ledninger, der er forbundet til Arduino i Tinkercad Circuits -arbejdsplanet.

Træk en Arduino Uno og brødbræt fra komponentpanelet til arbejdsplanen ved siden af det eksisterende kredsløb.

Tilslut brødbrætets strøm (+) og jordede (-) skinner til henholdsvis Arduino 5V og jord (GND) ved at klikke for at oprette ledninger.

Forlæng strøm- og jordskinner til deres respektive busser på den modsatte kant af brødbrættet (valgfrit til dette kredsløb, men god almindelig praksis).

Sæt LED'en i to forskellige brødbræt rækker, så katoden (negativt, kortere ben) forbinder til et ben af en modstand (alt fra 100-1K ohm er fint). Modstanden kan gå i begge retninger, fordi modstande ikke er polariserede, i modsætning til lysdioder, som skal forbindes på en bestemt måde for at fungere.

Tilslut det andet modstandsben til jorden.

Led LED -anoden (positivt, længere ben) til Arduino pin 9.

Træk en fotoresistor fra komponentpanelet til dit brødbræt, så benene sættes i to forskellige rækker.

Klik for at oprette en ledning, der forbinder et fotoresistorben til strømmen.

Tilslut det andet ben til Arduino analog pin A0.

Træk en modstand fra komponentpanelet for at forbinde fotoresistorbenet, der er forbundet til A0 med jord, og juster dens værdi til 4,7k ohm.

Trin 2: Kode med blokke

Kode med blokke
Kode med blokke

Lad os bruge kodeblokke -editoren til at lytte til fotoresistorens tilstand og derefter indstille en LED til en relativ lysstyrke baseret på, hvor meget lys sensoren ser. Du vil måske opdatere din hukommelse om LED -analog output i Fading LED -lektionen.

Klik på knappen "Kode" for at åbne kodeeditoren. De grå notationsblokke er kommentarer til at notere, hvad du har til hensigt, at din kode skal gøre, men denne tekst udføres ikke som en del af programmet.

Klik på kategorien Variabler i kodeeditoren.

For at gemme modstandsværdien af fotoresistoren skal du oprette en variabel med navnet "sensorValue".

Træk en "sæt" -blok ud. Vi gemmer tilstanden for vores fotoresistor i variablen

sensorVærdi

Klik på Input -kategorien, og træk en "analog læsestift" -blok ud, og placer den i "sæt" -blokken efter ordet "til"

Da vores potentiometer er forbundet til Arduino på pin A0, skal du ændre rullemenuen til A0.

Klik på kategorien Output, og træk en blok "udskriv til seriel skærm" ud.

Naviger til kategorien Variabler og træk din variable sensorValue til blokken "udskriv til seriel skærm", og sørg for, at rullemenuen er indstillet til at udskrive med en ny linje. Start eventuelt simuleringen, og åbn den serielle skærm for at kontrollere, at aflæsninger kommer ind og ændres, når du justerer sensoren. Analoge inputværdier spænder fra 0-1023.

Da vi vil skrive til LED'en med et tal mellem 0 (slukket) og 255 (fuld lysstyrke), vil vi bruge "kort" -blokken til at udføre krydsmultiplikation for os. Naviger til matematik -kategorien, og træk en "kort" -blok ud.

I den første slot skal du trække i en sensorValue -variabel blok og derefter indstille området fra 0 til 255.

Tilbage i Output -kategorien skal du trække en analog "set pin" -blok ud, som som standard siger "sæt pin 3 til 0." Juster den for at indstille pin 9.

Træk kortblokken, du tidligere lavede, ind i feltet "sæt pin" -blokken "til" for at skrive det justerede nummer til LED -stiften ved hjælp af PWM.

Klik på kategorien Kontrol, og træk en venteblok ud, og juster den for at forsinke programmet i.1 sekunder.

Trin 3: Fotoresistor Arduino -kode forklaret

Når kodeeditoren er åben, kan du klikke på rullemenuen til venstre og vælge "Blokke + tekst" for at afsløre Arduino -koden genereret af kodeblokkene. Følg med, når vi udforsker koden mere detaljeret.

int sensorValue = 0;

Før

Opsætning()

opretter vi en variabel til lagring af den aktuelle værdi, der er læst fra potentiometeret. Det hedder

int

fordi det er et helt tal eller et helt tal.

ugyldig opsætning ()

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

Inde i opsætningen konfigureres stifter ved hjælp af

pinMode ()

fungere. Pin A0 er konfigureret som et input, så vi kan "lytte" til potentiometerets elektriske tilstand. Pin 9 er konfigureret som en udgang til at styre LED'en. For at kunne sende beskeder åbner Arduino en ny seriel kommunikationskanal med

Serial.begin ()

som tager et baudhastighedsargument (hvilken hastighed der skal kommunikeres), i dette tilfælde 9600 bits pr. sekund.

hulrum ()

{// læs værdien fra sensoren sensorValue = analogRead (A0); // udskriv sensorlæsningen, så du kender dens rækkevidde Serial.println (sensorValue);

Alt efter et sæt skråstreger

//

er en kommentar, som hjælper folk med at forstå i almindeligt sprog, hvad programmet er beregnet til at gøre, men er ikke inkluderet i det program, din Arduino kører. I hovedsløjfen kaldes en funktion

analogRead ();

kontrollerer tilstanden af pin A0 (som vil være et helt tal fra 0-1023), og gemmer denne værdi i variablen

sensorVærdi

// kortlæg sensorens læsning til et område for LED'en

analogWrite (9, map (sensorValue, 0, 1023, 0, 255)); forsinkelse (100); // Vent på 100 millisekund (er)}

Linjen efter den næste kommentar gør meget på en gang. Husk

analogWrite ()

tager to argumenter, pin -nummeret (9 i vores tilfælde) og værdien til at skrive, som skal være mellem 0 og 255. Inline -funktionen

kort()

tager fem argumenter: tallet, der skal evalueres (sensorens variabel, der altid ændrer sig), det forventede minimum og forventede maksimum og det ønskede min og max. Så

kort()

funktion i vores tilfælde er at evaluere den indkommende sensorValue og foretage krydsmultiplikation for at skalere output fra 0-1023 til 0-255. Resultatet returneres til det andet argument af

analogWrite ();

indstilling af lysstyrken på LED'en tilsluttet pin 9.

Trin 4: Byg et fysisk Arduino -kredsløb (valgfrit)

Byg et fysisk Arduino -kredsløb (valgfrit)
Byg et fysisk Arduino -kredsløb (valgfrit)

For at programmere din fysiske Arduino Uno skal du installere den gratis software (eller plugin til web -editoren) og derefter åbne den. Forskellige fotoceller har forskellige værdier, så hvis dit fysiske kredsløb ikke fungerer, skal du muligvis ændre den modstand, der er parret med den. Lær mere om spændingsdelere i lektionen Instructables Electronics Class om modstande.

Tilslut Arduino Uno -kredsløbet ved at tilslutte komponenter og ledninger, så de matcher forbindelserne vist her i Tinkercad -kredsløb. For en mere dybdegående gennemgang af arbejdet med dit fysiske Arduino Uno-bord, kan du tjekke den gratis Instructables Arduino-klasse.

Kopier koden fra Tinkercad Circuits -kodevinduet, og indsæt den i en tom skitse i din Arduino -software, eller klik på download -knappen (pil nedad) og åbn

den resulterende fil ved hjælp af Arduino. Du kan også finde dette eksempel i Arduino -softwaren ved at navigere til Fil -> Eksempler -> 03. Analog -> AnalogInOutSerial.

Tilslut dit USB -kabel, og vælg dit kort og port i softwarens menu i Værktøjer.

Upload koden, og brug din hånd til at dække sensoren fra at modtage lys, og/eller skinne et lys på din sensor!

Åbn den serielle skærm for at observere dine sensorværdier. Det er sandsynligt, at den virkelige verdens værdier ikke vil strække sig helt til 0 eller helt til 1023, afhængigt af dine lysforhold. Du er velkommen til at justere 0-1023-området til dit observerede minimum og observerede maksimum for at få det maksimale lysstyrkeudtryksområde på LED'en.

Trin 5: Prøv derefter …

Nu hvor du har lært at læse en fotoresistor og kortlægge dens output for at styre lysstyrken på en LED, er du klar til at anvende de og andre færdigheder, du har lært hidtil.

Kan du skifte LED'en ud for en anden type output, som en servomotor, og oprette en kode til at afspejle sensorens aktuelle lysniveau som en bestemt position langs en måler?

Prøv at udskifte din fotoresistor til andre analoge indgange, f.eks. En ultralydsafstandssensor eller potentiometer.

Lær mere om, hvordan du overvåger din Arduinos digitale og analoge input via computeren ved hjælp af Serial Monitor.

Anbefalede: