Bincika Lambar

Kashi na 98-7: Yin Tafiya da Haske ta Amfani da Arduino da LED guda 5

Kashi na 98-7: Yin Tafiya da Haske ta Amfani da Arduino da LED guda 5

Hasken tafiya (wanda kuma ake kira hasken "bin" ko "Knight Rider") yana ɗaya daga cikin manyan ayyukan farko na Arduino na farko — kuma da dalili mai kyau. Yana koya maka yadda ake sarrafa abubuwan fitarwa da yawa a jere, yadda ake tsara lokutan abubuwan da suka faru, da yadda ake tunani game da resistors masu iyakance wutar lantarki, duk yayin samar da wani abu mai gamsarwa a gani. A cikin wannan aikin za ka haɗa LEDs biyar zuwa Arduino kuma ka tsara su yadda kowannensu zai haskaka bi da bi, yana haifar da tunanin cewa haske ɗaya yana "tafiya" tare da layin.

5 leds on breadboard with resistor shown connected to Arduino UNO
5 leds on breadboard with resistor shown connected to Arduino UNO

Da zarar ka fahimci tsarin, za ka iya sake amfani da shi a cikin adadi mai ban mamaki na gine-ginen gaske:

  • Hasken ado: iyaka mai binsa don shiryayye, firam na hoto, ko samfuri.
  • Alamun jagora: tasirin sigina na juya mai jere don abin hawa na wasan kwaikwayo ko keke lantarki.
  • Nuni na ci gaba ko matsayi: jere na LEDs da ke ci gaba yayin da wani tsari ya cika.
  • Kayan wasa da allon maki: "manufa mai motsi" ko nuni na matakin.
  • Kayan koyarwa: mafi bayyanannen nuni na abubuwan fitarwa na dijital da tsara lokaci.

Ana sake amfani da wannan haɗin LEDs biyar a wasu ayyuka da yawa a cikin wannan kwas, don haka kayan aikin da za ka gina a nan ya zama dandali mai sake amfani.

Yadda Hasken Tafiya Yake Aiki

Ka'idar daidai take da kunna LED ɗaya — kawai ana maimaita ta sau biyar (a cikin bidiyo a 30:47). Kowace LED tana haɗe da fil ɗinta na Arduino ta hanyar resistor ɗinta mai iyakance wutar lantarki, kuma duk resistors ɗin suna raba hanyar ƙasa ɗaya. Sketch ɗin sai ya kunna fil ɗaya HIGH, ya jira, ya kunna shi LOW, ya jira, sannan ya matsa zuwa fil na gaba. Domin LED ɗaya ne kawai ke kunne a lokaci ɗaya, ido yana karanta jerin a matsayin motsi.

Ƙimar lokaci biyu sune ke ba da tasirin halinsa. Lokacin kunne yana sarrafa tsawon lokacin da kowace LED za ta kasance a kunne, kuma lokacin kashe yana sarrafa tazarar kafin LED na gaba ya haskaka. Ɗan gajeren lokacin kunne tare da dogon lokacin kashe yana haifar da digo ɗaya da ke tafiya da sauri; dogon lokacin kunne tare da ɗan gajeren lokacin kashe yana haifar da shafa mai santsi, mafi ci gaba (a cikin bidiyo a 35:00).

Kayan Aiki da Abubuwan Haɗi

  • 1 × allon Arduino (Uno, Nano, ko makamancin haka)
  • 5 × LEDs (kowane launi; haɗa launuka yana sa tasirin ya fi sauƙin karantawa)
  • 5 × resistors — 300 Ω zuwa 1 kΩ suna aiki da kyau
  • 1 × breadboard
  • Wayoyin jumper
  • Kebul na USB ko fakitin baturi don wuta

Idan kana so ka ƙara nau'in maɓallin turawa daga baya, za ka kuma buƙaci maɓallin turawa na ɗan lokaci ɗaya da ƙarin wayoyin jumper biyu.

Zaɓin Ƙimar Resistor

LED tana da wutar lantarki ta gaba kusan 2 V kuma tana son kusan 10 mA don cikakken haske (a cikin bidiyo a 03:49). Tare da wutar lantarki ta 5 V, resistor ɗin dole ne ya sauke sauran 3 V. Yin amfani da dokar Ohm, R = V / I = 3 V / 0.01 A = 300 Ω. A aikace kowane abu daga 300 Ω har zuwa kusan 1 kΩ zai yi aiki — mafi girman juriya, mafi duhun LED, amma mafi aminci da inganci da'irar (a cikin bidiyo a 05:33).

Schematic for Arduino walking light LEDs with push button
Schematic for Arduino walking light LEDs with push button

Jagorar Haɗawa

wiring of 5 LED on Arduino
wiring of 5 LED on Arduino

Saka LEDs biyar ɗin a cikin breadboard tare da anodes ɗinsu (ƙafar da ta fi tsayi) suna fuskantar hanya ɗaya. Haɗa kowace cathode (ƙafar da ta fi guntu, mai gefen lebur) da resistor ɗinta, sannan ka haɗa ƙarshen duk resistors biyar ɗin zuwa hanyar ƙasa ɗaya. Sannan ka gudanar da jumper daga kowace anode zuwa fil na Arduino.

A cikin wannan ginin an sanya LEDs ɗin zuwa filaye 3, 4, 5, 6 da 7 (a cikin bidiyo a 31:29). Ana bayyana lambobin fil ɗin a saman sketch ɗin, don haka idan ka fi son wani tsari daban kawai kana buƙatar canza waɗannan layuka biyar.

Bayanin Code

An yi sketch ɗin da sauƙi da gangan domin mai farawa ya iya bin kowane layi. Ƙungiyar da ke saman saman ne kawai ake buƙatar gyara don saitin ka.

const int LED1 = 3;
const int LED2 = 4;
const int LED3 = 5;
const int LED4 = 6;
const int LED5 = 7;
int offTime = 30;  // the time each LED waits in the OFF state
int onTime = 100;  // the time each LED is ON

Ma'anar fil. Layukan const int guda biyar suna haɗa kowace LED da fil na Arduino na zahiri. Domin an bayyana su const, ba za a iya canza ƙimar su daga baya a cikin shirin ba — wannan ɗabi'a ce ta aminci da ke hana sake sanyawa cikin kuskure. Idan ka haɗa LEDs ɗinka zuwa filaye daban, canza lambobin a nan ba wani abu ba.

onTime da offTime. Waɗannan intigers biyu sune kawai masu canjin "hali" a cikin aikin, kuma su ne waɗanda za ka so yin gwaji da su:

  • onTime — tsawon lokaci (a cikin millise seconds) da kowane LED zai ci gaba da haskakawa. Manyan dabi'u suna sa kowane mataki ya zama a hankali da kuma da gangan.
  • offTime — hutun da ake yi bayan LED ya mutu kafin na gaba ya haskaka. Ƙananan dabi'u suna sa hasken ya yi tafiya da sauri.

Gwada onTime = 200 da offTime = 200 don bin diddigin daidai, matsakaicin gudu, ko onTime = 30 da offTime = 30 don tasiri mai sauri sosai, kusan blur (a cikin bidiyo a 36:06).

Aikin setup() yana gudana sau ɗaya kawai kuma yana saita duk filaye biyar zuwa yanayin OUTPUT. Sannan aikin loop() yana maimaita tsarin matakai huɗu iri ɗaya ga kowane LED: tura filaye HIGH, jira onTime, tura shi LOW, jira offTime. Lokacin da LED na biyar ya gama, loop ɗin yana sake farawa daga na farko, yana samar da tafiya marar iyaka.

Aikin Kai Tsaye da Nunawa

Da dabi'u na asali, LED ɗin suna tafiya tare da layin a hankali. Loda sketch ɗin da onTime da offTime an saita su zuwa 200 ms yana ba da tafiya mai tsayawa, daidai; saukar da duka biyu zuwa 30 ms yana sa hasken ya yi tsere a layin kusan da sauri da ba za a iya bi ba (a cikin bidiyo a 36:21).

Gwaje-gwaje biyu masu amfani da za a gwada da zarar ya yi aiki:

  • Sa lokacin kunnawa ya zama gajere fiye da lokacin kashewa don ƙirƙirar ɗigo mai tafiya daban.
  • Sa lokacin kunnawa ya zama tsayi fiye da lokacin kashewa don ƙirƙirar haske mai laushi, mai haɗuwa.

Ana sake amfani da wayoyi guda biyar na LED a cikin aikin na gaba, inda maɓallin turawa ke ciyar da hasken mataki ɗaya a lokaci guda. An rufe wannan ginin a Daras 98-8: Hasken Tafiya da Maɓallin Turawa da LED da Arduino.

Idan ka fi son tafiyar da layin daga shigarwar analog maimakon maɓalli, duba Daras 98-9: Mitar Matakin Wutar Lantarki na LED Ta Amfani da Arduino ko hasken tafiya da potentiometer.

Ci Gaba

Da zarar tafiyar ta asali ta yi aiki, mataki na gaba na halitta shi ne sa hasken ya koma baya da gaba maimakon tsalle daga LED na ƙarshe zuwa na farko. Wannan aikin code ne kawai — babu ƙarin kayan aiki — kuma hanya ce mai kyau don yin aiki da loops da arrays. Hakanan za ka iya haɗa wannan aikin da sigar maɓallin turawa don gina nuni mai ci gaba da hannu.

Ayyukan da suka danganci wannan bidiyo

Babi

  • [00:00] Bayani kan ayyukan LED goma
  • [01:22] Gabatarwa ga kwas ɗin Arduino mataki-mataki
  • [02:29] Menene LED kuma yadda ake gane filayensa
  • [03:49] Lissafin resistor mai iyakance wutar lantarki
  • [30:47] Gabatar da aikin hasken tafiya
  • [31:06] Zanen wayoyi na LED biyar
  • [32:52] Bayanin code ɗin hasken tafiya
  • [34:39] Nunawa da canza dabi'un lokaci
  • [36:41] Ci gaba da haske da maɓallin turawa (daras daban)
  • [42:25] Bar na wutar lantarki na LED da potentiometer (daras daban)
  • [49:25] Hasken hanya na Arduino (daras daban)

Hotuna

wiring of 5 LED on Arduino
wiring of 5 LED on Arduino
Schematic for Arduino walking light LEDs
Schematic for Arduino walking light LEDs
Schematic for Arduino walking light LEDs with push button
Schematic for Arduino walking light LEDs with push button
5 LEDs a kan breadboard tare da resistor da aka nuna an haɗa su da Arduino UNO
5 LEDs a kan breadboard tare da resistor da aka nuna an haɗa su da Arduino UNO
939-Lessson 98-LED-7: Arduino code walking LED light
Harshe: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Fayiloli📁

Littattafan Arduino (zip)

Jagoran Mai Amfani