Wa Koodu

Ẹ̀kọ́ 98-7: Nrin Lọ Náà Nípa Lílò Arduino àti 5 LED

Ẹ̀kọ́ 98-7: Nrin Lọ Náà Nípa Lílò Arduino àti 5 LED

Imọlẹ̀ tí ń rìn (tí a tún pè ní "chasing" tàbí "Knight Rider" imọlẹ̀) jẹ́ ọ̀kan lára àwọn iṣẹ́ àkọ́kọ́ Arduino tí ó gbajúmọ̀ fún àwọn olùbẹ̀rẹ̀ — àti fún ìdí tí ó tọ́. Ó ń kọ́ ọ bí o ṣe lè ṣàkóso ọ̀pọ̀lọpọ̀ àwọn ìjáde ní ìtẹ̀lé, bí o ṣe lè ṣètò àkókò àwọn ìṣẹ̀lẹ̀, àti bí o ṣe lè ronú nípa àwọn resistor tí ń dínà ìṣàn, nígbà tí ó ń mú ohun kan jáde tí ó wuni ní ojú. Nínú iṣẹ́ yìí, wà á so àwọn LED márùn-ún mọ́ Arduino kan kí o sì ṣètò wọn kí ọ̀kọ̀ọ̀kan wọn lè tàn ní tẹ̀lé, tí yóò dá ìrònú pé imọlẹ̀ kan ṣoṣo ń "rìn" káàkiri ìlà náà.

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

Ní kété tí o bá ti lóye ìlànà náà, o lè tún ṣe àtúnṣe rẹ̀ nínú ọ̀pọ̀lọpọ̀ àwọn iṣẹ́ gidi tí ó yani lẹ́nu:

  • Imọlẹ̀ ọ̀ṣọ́: ààlà tí ń rìn fún pẹpẹ, férémù àwòrán, tàbí àwòṣe.
  • Àwọn afihàn ìtọ́sọ́nà: ìpàdé àmì ìyípadà ní ìtẹ̀lé fún ọkọ̀ àwòṣe tàbí kẹ̀kẹ́ ẹlẹ́rìnnà.
  • Ìfihàn ìtẹ̀síwájú tàbí ipò: ìlà àwọn LED tí ń tẹ̀síwájú bí ìlànà kan ṣe ń parí.
  • Àwọn ohun èlò eré àti pátákó àmì: "àfojúsùn tí ń rìn" tàbí afihàn ìpele.
  • Ohun èlò ìkọ́ni: ìfihàn tí ó ṣe kedere jùlọ ti àwọn ìjáde oníka àti àkókò.

Wiring LED márùn-ún kan náà ni a tún lò nínú ọ̀pọ̀lọpọ̀ àwọn iṣẹ́ mìíràn nínú ẹ̀kọ́ yìí, nítorí náà ohun èlò tí o kọ́ níbí yóò di pẹpẹ tí a lè tún lò.

Bí Imọlẹ̀ Tí Ń Rìn Ṣe Ń Ṣiṣẹ́

Ìlànà náà jẹ́ ọ̀kan náà pátápátá pẹ̀lú títan LED kan ṣoṣo — ó kàn jẹ́ pé a tún ṣe é lẹ́ẹ̀marùn-ún (ní fídíò ní 30:47). A so LED kọ̀ọ̀kan mọ́ pin Arduino tirẹ̀ nípasẹ̀ resistor tí ń dínà ìṣàn tirẹ̀, gbogbo àwọn resistor sì pín ilẹ̀ ìsàlẹ̀ kan náà. Sketch náà yóò wá tan pin kan HIGH, dúró, tan án LOW, dúró, kí ó sì tẹ̀síwájú sí pin tó kàn. Nítorí pé LED kan ṣoṣo ni ó wà ní títan ní àkókò kan, ojú rí ìtẹ̀lé náà gẹ́gẹ́ bí ìṣíkiri.

Àwọn iye àkókò méjì náà ni ó ń fún ipa náà ní ìwà rẹ̀. Àkókò títan ń ṣàkóso bí LED kọ̀ọ̀kan ṣe wà ní títan tó, àti àkókò títan-pa ń ṣàkóso ààyè tí ó wà kí LED tó kàn tó tàn. Àkókò títan kúkú pẹ̀lú àkókò títan-pa gígùn ń mú kí a rí kókó kan tí ń rìn kíákíá; àkókò títan gígùn pẹ̀lú àkókò títan-pa kúkú ń mú kí ìgbá tí ó rọ̀ jù, tí ó sì ń tẹ̀síwájú (ní fídíò ní 35:00).

Ohun Èlò àti Àwọn Ẹ̀yà

  • 1 × pátákó Arduino (Uno, Nano, tàbí irú rẹ̀)
  • 5 × LED (àwọ̀ èyíkéyìí; dídàpọ̀ àwọn àwọ̀ ń mú kí ipa náà rọrùn láti kà)
  • 5 × resistor — 300 Ω sí 1 kΩ ń ṣiṣẹ́ dáadáa
  • 1 × breadboard
  • Àwọn waya jumper
  • Okùn USB tàbí àpò batiri fún agbára

Tí o bá fẹ́ fi ẹ̀yà bọ́tìnnì kan kún un nígbà tó ń bọ̀, wà á tún nílò bọ́tìnnì tẹ̀ kan àti àwọn waya jumper méjì mìíràn.

Yíyan Iye Resistor

LED ní foliteji ìwájú tí ó tó 2 V, ó sì fẹ́ nǹkan bí 10 mA fún ìmọ́lẹ̀ kíkún (ní fídíò ní 03:49). Pẹ̀lú ipèsè 5 V, resistor gbọ́dọ̀ sọ 3 V tó kù sílẹ̀. Ní lílo òfin Ohm, R = V / I = 3 V / 0.01 A = 300 Ω. Ní ìṣe, ohunkóhun láti 300 Ω sí nǹkan bí 1 kΩ yóò ṣiṣẹ́ — bí resistance bá ṣe pọ̀ tó, bẹ́ẹ̀ ni LED yóò ṣe ṣú, ṣùgbọ́n bẹ́ẹ̀ ni circuit yóò ṣe ní ààbò àti ìṣiṣẹ́ dáadáa (ní fídíò ní 05:33).

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

Ìtọ́sọ́nà Wiwíà

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

Fi àwọn LED márùn-ún sínú breadboard pẹ̀lú anode wọn (ẹsẹ̀ gígùn) tí ó dojú kọ ọ̀nà kan náà. So cathode kọ̀ọ̀kan (ẹsẹ̀ kúkú, tí ó ní ẹ̀gbẹ́ pẹlẹbẹ) mọ́ resistor tirẹ̀, kí o sì so òpin jínjìn àwọn resistor márùn-ún pọ̀ mọ́ ilẹ̀ ìsàlẹ̀ kan náà. Lẹ́yìn náà, gbé jumper kan láti anode kọ̀ọ̀kan sí pin Arduino kan.

Nínú iṣẹ́ yìí, a yàn àwọn LED sí pin 3, 4, 5, 6 àti 7 (ní fídíò ní 31:29). A ṣàlàyé àwọn nọ́mbà pin ní orí sketch náà, nítorí náà tí o bá fẹ́ ìṣètò mìíràn, o kàn nílò láti yí àwọn ìlà márùn-ún wọ̀nyẹn padà.

Àlàyé Kóòdù

A ṣe sketch náà ní ọ̀nà tí ó rọrùn mọ̀ọ́mọ̀ kí olùbẹ̀rẹ̀ lè tẹ̀lé gbogbo ìlà. Àkójọpọ̀ tí ó wà ní orí jùlọ nìkan ni ó nílò àtúnṣe fún ìṣètò tirẹ̀.

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

Àwọn ìtumọ̀ pin. Àwọn ìlà const int márùn-ún ń so LED kọ̀ọ̀kan mọ́ pin Arduino gidi kan. Nítorí pé a pè wọ́n ní const, a kò lè yí àwọn iye náà padà nígbà tó ń bọ̀ nínú ètò náà — èyí jẹ́ àṣà ààbò tí ń dènà àtúnyàn àṣìṣe. Tí o bá so àwọn LED rẹ mọ́ àwọn pin mìíràn, yí àwọn nọ́mbà níbí padà kì í ṣe ohunkóhun mìíràn.

onTime àti offTime. Àwọn odidi méjì yìí ni àwọn "ìwà" oníye nìkan nínú iṣẹ́ náà, wọ́n sì ni àwọn tí wà á fẹ́ ṣe ìdánwò pẹ̀lú:

  • onTime — iye akoko (ni milliseconds) ti LED kọọkan yoo wa tan. Awọn iye ti o tobi julọ maa n jẹ ki igbesẹ kọọkan dabi ẹni ti o lọra ati pẹ diẹ sii.
  • offTime — idaduro lẹhin ti LED kan ba ti pa ṣaaju ki eyi ti o tẹle to tan. Awọn iye ti o kere julọ maa n jẹ ki ina naa rin yara sii.

Gbiyanju onTime = 200 ati offTime = 200 fun isọdọtun ti o dogba, ti o ni iyara alabọde, tabi onTime = 30 ati offTime = 30 fun ipa ti o yara pupọ, ti o fẹrẹẹ dabi ti o ṣe blur (ninu fidio ni 36:06).

Iṣẹ setup() n ṣiṣẹ lẹẹkan ati pe o kan ṣeto gbogbo awọn pin marun si ipo OUTPUT. Iṣẹ loop() lẹhinna tun ṣe apẹrẹ igbesẹ mẹrin kanna fun LED kọọkan: darí pin naa si HIGH, duro onTime, darí rẹ si LOW, duro offTime. Nigbati LED karun ba pari, loop naa yoo tun bẹrẹ lati akọkọ, ti o n ṣe irin-ajo ailopin.

Ise Agbese Laaye ati Ifihan

Pẹlu awọn iye aiyipada, awọn LED n tẹsiwaju lori ila naa ni iyara ti o tutu. Gbigbe sketch naa pẹlu onTime ati offTime ti a ṣeto si 200 ms yoo fun ni irin-ajo ti o duro ṣinṣin, ti o dogba; sisọ awọn mejeeji silẹ si 30 ms yoo jẹ ki ina naa ta kọja ila naa ni iyara ti o fẹrẹẹ jẹ ki a ma le tẹle (ninu fidio ni 36:21).

Awọn idanwo meji ti o wulo lati gbiyanju ni kete ti o ba ṣiṣẹ:

  • Jẹ ki akoko titan kuru ju akoko pipa lati ṣẹda aami ti n rin ti o yatọ.
  • Jẹ ki akoko titan gun ju akoko pipa lati ṣẹda didan ti o rọ, ti o n ṣe agbekọja.

Wiring LED marun kanna ni a tun lo ninu iṣẹ agbese ti o tẹle, nibiti bọtini titẹ kan n tẹ ina siwaju ni igbesẹ kan ni akoko kan. Ikole yẹn ni a ti bo ninu Ẹkọ 98-8: Ina Ti Nrin pẹlu Bọtini Titẹ ati Awọn LED pẹlu Arduino.

Ti o ba fẹ lati darí ila naa lati ẹrọ titẹsi analogue dipo bọtini, wo Ẹkọ 98-9: Mita Ipele Foliteji LED Nipa Lilo Arduino tabi ina ti nrin pẹlu potentiometer.

Mimu Siwaju

Ni kete ti irin-ajo ipilẹ ba ṣiṣẹ, igbesẹ ti o tẹle ti o dabi ẹni ti o yẹ ni lati jẹ ki ina naa pada sẹhin ati siwaju dipo ki o fo lati LED ti o kẹhin si akọkọ. Iyẹn jẹ adaṣe koodu funfun — ko si ohun elo afikun — ati pe o jẹ ọna ti o dara lati ṣe adaṣe awọn loops ati awọn arrays. O tun le darapọ iṣẹ agbese yii pẹlu ẹya bọtini titẹ lati kọ ifihan ti a ti ni ilọsiwaju pẹlu ọwọ.

Awọn iṣẹ agbese ti o jọmọ lati fidio yii

Awọn ipin

  • [00:00] Akopọ ti awọn iṣẹ agbese LED mẹwa
  • [01:22] Ifihan si ẹkọ igbesẹ-nipasẹ-igbesẹ Arduino
  • [02:29] Kini LED jẹ ati bii o ṣe le da awọn pin rẹ mọ
  • [03:49] Iṣiro resistor idinamọ lọwọlọwọ
  • [30:47] Iṣafihan iṣẹ agbese ina ti nrin
  • [31:06] Aworan wiring fun awọn LED marun
  • [32:52] Ṣiṣe alaye koodu ina ti nrin
  • [34:39] Ifihan ati yiyipada awọn iye akoko
  • [36:41] Tite ina siwaju pẹlu bọtini titẹ (ẹkọ lọtọ)
  • [42:25] Ọpa foliteji LED pẹlu potentiometer (ẹkọ lọtọ)
  • [49:25] Ina opopona Arduino (ẹkọ lọtọ)

Aworan

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 lori breadboard pẹlu resistor han ti sopọ si Arduino UNO
5 leds lori breadboard pẹlu resistor han ti sopọ si Arduino UNO
939-Lessson 98-LED-7: Arduino code walking LED light
Ede: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Fáìlìs📁

Awọn ile-ikawe Arduino (zip)

Iwe Itọsọna Olumulo