Talaan ng mga Nilalaman:

Light Sensor (Photoresistor) Sa Arduino sa Tinkercad: 5 Hakbang (na may Mga Larawan)
Light Sensor (Photoresistor) Sa Arduino sa Tinkercad: 5 Hakbang (na may Mga Larawan)

Video: Light Sensor (Photoresistor) Sa Arduino sa Tinkercad: 5 Hakbang (na may Mga Larawan)

Video: Light Sensor (Photoresistor) Sa Arduino sa Tinkercad: 5 Hakbang (na may Mga Larawan)
Video: how to use an LDR in tinker cad | LDR circuit with arduino simulation in tinkercad 2024, Hulyo
Anonim
Light Sensor (Photoresistor) Sa Arduino sa Tinkercad
Light Sensor (Photoresistor) Sa Arduino sa Tinkercad

Mga Proyekto ng Tinkercad »

Alamin natin kung paano basahin ang isang photoresistor, isang sensitibong ilaw na uri ng variable resistor, gamit ang Arduino's Analog Input. Tinatawag din itong isang LDR (light-dependant resistor).

Sa ngayon natutunan mo na makontrol ang mga LED na may analog output ng Arduino, at basahin ang isang potensyomiter, na kung saan ay isa pang uri ng variable resistor, kaya bubuo kami sa mga kasanayang nasa araling ito. Tandaan na ang mga analog input ng Arduino (pin na minarkahan ng A0-A6) ay maaaring makakita ng isang unti-unting pagbabago ng signal ng elektrisidad, at isasalin ang signal na iyon sa isang numero sa pagitan ng 0 at 1023.

Larawan
Larawan

Galugarin ang sample circuit na naka-embed dito sa workplane sa pamamagitan ng pag-click sa Start Simulation at pag-click sa photoresistor (brown oval na may squiggly line pababa sa gitna), pagkatapos ay i-drag ang slider ng brightness upang ayusin ang simulate light input.

Sa araling ito, mabubuo mo ang simulated circuit na ito sa iyong tabi sa sample. Upang opsyonal na maitayo ang pisikal na circuit, tipunin ang iyong Arduino Uno board, USB cable, solderless breadboard, isang LED, resistors (220 ohm at 4.7k ohm), photoresistor, at mga wire ng breadboard.

Maaari mong sundin ang halos paggamit ng Tinkercad Circuits. Maaari mo ring tingnan ang araling ito mula sa loob ng Tinkercad (kinakailangang libreng pag-login)! Galugarin ang sample circuit at bumuo ng iyong sariling karapatan sa tabi nito. Ang Tinkercad Circuits ay isang libreng programa na batay sa browser na hinahayaan kang bumuo at gayahin ang mga circuit. Perpekto ito para sa pag-aaral, pagtuturo, at prototyping.

Hakbang 1: Buuin ang Circuit

Buuin ang Circuit
Buuin ang Circuit
Buuin ang Circuit
Buuin ang Circuit

Tingnan ang circuitboard ng tinapay na nakalarawan. Maaari itong maging kapaki-pakinabang upang tumingin sa isang libreng bersyon na wired ng sample na circuit na ito para sa paghahambing, nakalarawan. Sa hakbang na ito, bubuo ka ng iyong sariling bersyon ng circuit na ito kasama ang panig sa sample sa workplane.

Upang sumunod, mag-load ng bagong window ng Tinkercad Circuits at bumuo ng iyong sariling bersyon ng circuit na ito kasama ang panig ng sample.

Kilalanin ang photoresistor, LED, resistors, at mga wire na konektado sa Arduino sa Tinkercad Circuits workplane.

I-drag ang isang Arduino Uno at breadboard mula sa mga sangkap ng panel sa lugar ng trabaho, sa tabi ng umiiral na circuit.

Ikonekta ang lakas ng breadboard (+) at ground (-) riles sa Arduino 5V at ground (GND), ayon sa pagkakabanggit, sa pamamagitan ng pag-click upang lumikha ng mga wire.

Palawakin ang kapangyarihan at mga daang-bakal sa lupa sa kani-kanilang mga bus sa tapat ng gilid ng breadboard (opsyonal para sa circuit na ito ngunit mahusay na karaniwang kasanayan).

I-plug ang LED sa dalawang magkakaibang mga row ng breadboard upang ang cathode (negatibo, mas maikli ang binti) ay kumokonekta sa isang binti ng isang risistor (kahit saan mula sa 100-1K ohms ay mabuti). Ang risistor ay maaaring pumunta sa alinman sa oryentasyon sapagkat ang mga resistor ay hindi naka-polarize, hindi katulad ng mga LED, na dapat na konektado sa isang tiyak na paraan upang gumana.

Ikonekta ang iba pang binti ng risistor sa lupa.

I-wire ang LED anode (positibo, mas mahabang binti) sa Arduino pin 9.

I-drag ang isang photoresistor mula sa mga sangkap ng panel sa iyong breadboard, kaya't ang mga binti nito ay naka-plug sa dalawang magkakaibang mga hilera.

Mag-click upang lumikha ng isang kawad na kumokonekta sa isang paa ng photoresistor sa lakas.

Ikonekta ang iba pang mga binti sa Arduino analog pin A0.

I-drag ang isang risistor mula sa mga bahagi ng panel upang ikonekta ang photoresistor leg na konektado sa A0 na may lupa, at ayusin ang halaga nito sa 4.7k ohms.

Hakbang 2: Code Na May Mga Bloke

Code Na May Mga Bloke
Code Na May Mga Bloke

Gamitin natin ang editor ng mga bloke ng code upang makinig sa estado ng photoresistor, pagkatapos ay magtakda ng isang LED sa isang kamag-anak na ilaw batay sa kung gaano karaming ilaw ang nakikita ng sensor. Maaari mong hilingin na i-refresh ang iyong memorya ng LED analog output sa araling Fading LED.

I-click ang pindutang "Code" upang buksan ang code editor. Ang kulay abong mga bloke ng Notasyon ay mga komento para sa pagtatala ng kung ano ang balak mong gawin ng iyong code, ngunit ang teksto na ito ay hindi naisagawa bilang bahagi ng programa.

Mag-click sa kategorya ng Mga variable sa code editor.

Upang maiimbak ang halaga ng paglaban ng photoresistor, lumikha ng isang variable na pinangalanang "sensorValue".

I-drag ang isang "itakda" na bloke. Iimbak namin ang estado ng aming photoresistor sa variable

sensorValue

Mag-click sa kategorya ng Input at i-drag ang isang "analog read pin" block, at ilagay ito sa "set" block pagkatapos ng salitang "to"

Dahil ang aming potensyomiter ay konektado sa Arduino sa pin A0, baguhin ang dropdown sa A0.

I-click ang kategorya ng Output at i-drag ang isang "i-print sa serial monitor" na bloke.

Mag-navigate sa kategorya ng Mga Variable at i-drag ang iyong variable sensorValue papunta sa "i-print sa serial monitor" na bloke, at siguraduhin na ang dropdown ay nakatakda upang mai-print gamit ang isang bagong linya. Opsyonal na simulan ang simulation at buksan ang serial monitor upang ma-verify ang mga pagbabasa na papasok at nagbabago kapag inaayos mo ang sensor. Ang mga halaga ng input ng analog ay mula sa 0-1023.

Dahil nais naming sumulat sa LED na may isang numero sa pagitan ng 0 (off) at 255 (buong ilaw), gagamitin namin ang "map" block upang makagawa ng ilang cross-multiplication para sa amin. Mag-navigate sa kategoryang Math at i-drag ang isang "map" na bloke.

Sa unang puwang, i-drag ang isang sensorValue variable block, pagkatapos ay itakda ang saklaw mula 0 hanggang 255.

Bumalik sa kategorya ng Output, i-drag ang isang analog na "set pin" na bloke, na bilang default ay sinasabi na "itakda ang pin 3 hanggang 0." Ayusin ito upang itakda ang pin 9.

I-drag ang block block na ginawa mo nang mas maaga sa "set pin" block's "sa" patlang upang isulat ang naayos na numero sa LED pin gamit ang PWM.

I-click ang kategorya ng Pagkontrol at i-drag ang isang paghihintay, at ayusin ito upang maantala ang programa sa loob ng.1 segundo.

Hakbang 3: Ipinaliwanag ang Photoresistor Arduino Code

Kapag ang editor ng code ay bukas, maaari mong i-click ang dropdown menu sa kaliwa at piliin ang "Blocks + Text" upang ipakita ang Arduino code na nabuo ng mga bloke ng code. Sundin habang tinutuklasan namin ang code nang mas detalyado.

int sensorValue = 0;

Bago ang

setup ()

Lumilikha kami ng isang variable upang maiimbak ang kasalukuyang halaga na nabasa mula sa potensyomiter. Ang tawag dito

int

sapagkat ito ay isang integer, o anumang buong numero.

walang bisa ang pag-setup ()

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

Sa loob ng pag-setup, ang mga pin ay naka-configure gamit ang

pinMode ()

pagpapaandar Ang Pin A0 ay na-configure bilang isang input, kaya maaari naming "makinig" sa elektrikal na estado ng potensyomiter. Ang Pin 9 ay na-configure bilang isang output upang makontrol ang LED. Upang makapagpadala ng mga mensahe, magbubukas ang Arduino ng isang bagong serial channel ng komunikasyon

Serial.begin ()

na tumatagal ng isang argumento ng rate ng baud (kung anong bilis makipag-usap), sa kasong ito 9600 bits bawat segundo.

walang bisa loop ()

{// basahin ang halaga mula sa sensor sensorValue = analogRead (A0); // i-print ang pagbabasa ng sensor upang malaman mo ang saklaw nito Serial.println (sensorValue);

Anumang bagay pagkatapos ng isang hanay ng mga slash

//

ay isang komento, na makakatulong sa mga tao na maunawaan sa payak na wika kung ano ang nais na gawin ng programa, ngunit hindi kasama sa program na pinapatakbo ng Arduino. Sa pangunahing loop, isang tawag na tinawag

analogRead ();

sinusuri ang estado ng pin A0 (na magiging isang buong numero mula 0-1023), at iniimbak ang halagang nasa variable

sensorValue

// mapa ang pagbabasa ng sensor sa isang saklaw para sa LED

analogWrite (9, mapa (sensorValue, 0, 1023, 0, 255)); pagkaantala (100); // Maghintay para sa (100) millisecond}

Ang linya kasunod ng susunod na komento ay gumagawa nang maraming sabay-sabay. Tandaan

analogWrite ()

tumatagal ng dalawang argumento, ang numero ng pin (9 sa aming kaso), at ang halagang isusulat, na dapat ay nasa pagitan ng 0 at 255. Ang pagpapaandar na naka-linya

mapa ()

tumatagal ng limang mga argumento: ang bilang upang suriin (ang palaging nagbabago ang variable ng sensor), ang inaasahang minimum at inaasahang maximum, at ang nais na min at max. Kaya ang

mapa ()

Ang pagpapaandar sa aming kaso ay sinusuri ang papasok na sensorValue, at ginagawa ang ilang cross multiplication upang sukatin ang output pababa mula 0-1023 hanggang 0-255. Ang resulta ay ibinalik sa pangalawang argumento ng

analogWrite ();

na nagtatakda ng ningning ng LED na konektado sa pin 9.

Hakbang 4: Bumuo ng isang Physical Arduino Circuit (opsyonal)

Bumuo ng isang Physical Arduino Circuit (opsyonal)
Bumuo ng isang Physical Arduino Circuit (opsyonal)

Upang mai-program ang iyong pisikal na Arduino Uno, kakailanganin mong i-install ang libreng software (o plugin para sa web editor), pagkatapos ay buksan ito. Ang iba't ibang mga photocell ay may iba't ibang mga halaga, kaya kung ang iyong pisikal na circuit ay hindi gumagana, maaaring kailanganin mong baguhin ang risistor na ipinares sa ito. Matuto nang higit pa tungkol sa mga divider ng boltahe sa aralin na Instructables Electronics Class sa mga resistor.

I-wire ang Arduino Uno circuit sa pamamagitan ng pag-plug sa mga bahagi at wires upang tumugma sa mga koneksyon na ipinakita dito sa Tinkercad Circuits. Para sa isang mas malalim na paglalakad sa pagtatrabaho sa iyong pisikal na Arduino Uno board, suriin ang libreng klase ng Mga Instructable Arduino.

Kopyahin ang code mula sa window ng code ng Tinkercad Circuits at i-paste ito sa isang walang laman na sketch sa iyong Arduino software, o i-click ang download button (pababang nakaharap na arrow) at buksan

ang nagresultang file gamit ang Arduino. Maaari mo ring makita ang halimbawang ito sa Arduino software sa pamamagitan ng pag-navigate sa File -> Mga Halimbawa -> 03. Analog -> AnalogInOutSerial.

I-plug ang iyong USB cable at piliin ang iyong board at port sa menu ng Mga Tool ng software.

I-upload ang code at gamitin ang iyong kamay upang masakop ang sensor mula sa pagtanggap ng ilaw, at / o magningning ng ilaw sa iyong sensor!

Buksan ang serial monitor upang maobserbahan ang mga halaga ng iyong sensor. Malamang na ang mga halaga ng totoong mundo ay hindi lalawak hanggang sa 0 o hanggang sa 1023, depende sa iyong mga kondisyon sa pag-iilaw. Huwag mag-atubiling ayusin ang saklaw na 0-1023 sa iyong sinusunod na minimum at sinusunod na maximum upang makuha ang maximum na saklaw ng expression ng ilaw sa LED.

Hakbang 5: Susunod, Subukan…

Ngayon natutunan mo na basahin ang isang photoresistor at mapa ang kinalabasan nito upang makontrol ang liwanag ng isang LED, handa ka nang ilapat ang mga iyon at iba pang mga kasanayang natutunan mo sa ngayon.

Maaari mo bang palitan ang LED para sa isa pang uri ng output, tulad ng isang servo motor, at lumikha ng ilang code upang maipakita ang kasalukuyang antas ng ilaw ng sensor bilang isang tiyak na posisyon kasama ang isang gauge?

Subukang palitan ang iyong photoresistor para sa iba pang mga analog input tulad ng isang ultrasonic distansya sensor o potensyomiter.

Matuto nang higit pa tungkol sa kung paano subaybayan ang mga digital at analog input ng iyong Arduino sa pamamagitan ng computer gamit ang Serial Monitor.

Inirerekumendang: