Tafuta Msimbo

Somo la 98-8: Kutembea kwa Mwanga kwa Kitufe cha Kubonyeza na LED na Arduino

Somo la 98-8: Kutembea kwa Mwanga kwa Kitufe cha Kubonyeza na LED na Arduino

Mradi huu unakuonyesha jinsi ya kuunda "taa inayotembea" ambayo inasonga hatua moja kila unapobonyeza kitufe cha kubonyeza. Badala ya taa inayoendeshwa na kipima muda chake yenyewe, unapata udhibiti wa moja kwa moja, wa kugusa: kila mbonyezo husogeza LED inayoangaza nafasi moja mbele, na baada ya LED ya mwisho inarudi nyuma hadi ya kwanza. Hii ni mojawapo ya vipengele muhimu zaidi katika kujifunza Arduino, kwa sababu inakufundisha jinsi ya kuchanganya pembejeo ya kidijitali (kitufe) na mashine ya hali inayozunguka (LED ipi inayoangaza kwa sasa) — muundo ambao utautumia mara kwa mara.

5 leds on breadboard with push button shown connected to Arduino UNO
5 leds on breadboard with push button shown connected to Arduino UNO

Mara unapoelewa muundo huu, mantiki hiyo hiyo inaendesha aina kubwa ya miradi halisi. Hapa kuna mawazo machache ya kivitendo unayoweza kuunda nayo:

  • Kichaguzi cha menyu kwenye kifaa ambapo kila mbonyezo huangazia chaguo linalofuata.
  • Kiashiria cha hatua mfululizo kwa mashine au mchakato (hatua 1, hatua 2, hatua 3...).
  • Onyesho la alama au kiwango unachoendeleza kwa mkono kwa kitufe.
  • Kiashiria cha "chaneli inayofuata" au "hali inayofuata" kwa kidhibiti cha mwanga.
  • Mchezo rahisi au kipaza sauti cha maswali ambapo wachezaji wanabadilishana kuwasha taa inayofuata.
  • Kipanga relay au mzigo ambapo kila mbonyezo huamsha pato linalofuata kwa mpangilio.

Faida kuu juu ya taa inayotembea kiotomatiki ni udhibiti: hakuna kinachotokea hadi ubonyeze, kwa hivyo taa inasonga mbele tu wakati wewe unaamua. Video pia inabainisha kwamba wazo hilo hilo la kubadilisha na kupanga mfululizo linaweza kuendesha relay ili kubadilisha taa ya AC au kudhibiti mota, sio LED tu (kwenye video saa 19:52).

Vifaa na Vipengele

Orodha ya sehemu ni fupi na ya bei nafuu:

  • Bodi ya Arduino (Uno, Nano, Mega, au bodi yoyote inayooana).
  • LED tano — 5 mm au 3 mm, rangi yoyote unayopenda.
  • Vipinga vitano vya kupunguza mkondo, 200 Ω hadi 1000 Ω (video inatumia 1 kΩ).
  • Kitufe kimoja cha kubonyeza (kitufe cha kugusa cha muda kwa muda ni bora).
  • Bodi ya majaribio na waya za jumper za DuPont.

Kidokezo kifupi kuhusu LED: cathode ni mguu mfupi na upande wenye ukingo tambarare, wakati anode ni mguu mrefu (kwenye video saa 03:13). Thamani ya kipinga si muhimu — kipinga kikubwa hufanya LED kuwa hafifu zaidi, kwa hivyo kitu chochote kutoka karibu 300 Ω hadi 1000 Ω kitafanya kazi vizuri (kwenye video saa 05:33).

Mwongozo wa Kuunganisha

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

Kuunganisha kimsingi ni sawa na taa ya kawaida ya LED tano inayotembea, pamoja na kitufe kimoja cha kubonyeza kilichoongezwa. Anode ya kila LED inaunganishwa na pini yake ya Arduino, na cathode ya kila moja inaunganishwa kupitia kipinga chake hadi reli ya ardhi inayoshirikiwa kwenye bodi ya majaribio. Katika ujenzi huu LED zimeunganishwa na pini 3, 4, 5, 6, na 7 (kwenye video saa 31:37). Kitufe cha kubonyeza kinawekwa kwenye bodi ya majaribio na mguu mmoja kwa ardhi na mguu mwingine kwa pini 2 — pini hiyo hiyo ambayo msimbo unatumia kwa kitufe (kwenye video saa 37:04).

Kwa sababu msimbo huwezesha kipinga cha ndani cha pull-up cha Arduino, hakuna kipinga cha nje kinachohitajika kwenye kitufe. Wakati kitufe hakijabonyezwa pini inasoma HIGH, na unapobonyeza pini inavutwa hadi ardhi na inasoma LOW (kwenye video saa 14:02).

Maelezo ya Msimbo

Programu kamili inapatikana chini ya makala hii. Hapa tunazingatia sehemu ambazo kwa kweli utataka kubadilisha.

Juu ya sketch, kila LED na kitufe vimepewa pini. Hapa ndipo unapobinafsisha ujenzi ili uoane na uunganishaji wako mwenyewe:

const int pushButtonPin = 2; // push button pin
const int LED1 = 3;
const int LED2 = 4;
const int LED3 = 5;
const int LED4 = 6;
const int LED5 = 7;

int LED_ON = LED1; // which LED is currently lit

Kigezo LED_ON ni moyo wa mradi. Kinakumbuka LED ipi inayoangaza kwa sasa, kikianza na LED1. Kila unapobonyeza kitufe, msimbo husogeza LED_ON hadi LED inayofuata katika mfululizo na huzima ile iliyotangulia, kwa hivyo LED moja tu inaangaza kwa wakati mmoja.

Pia kuna ucheleweshaji mdogo baada ya kila mbonyezo:

delay(200); // debounce / give the user time between presses

Usimamishaji huu wa milisekunde 200 huzuia mbonyezo mmoja wa kimwili kusajiliwa kama mbonyezo nyingi. Ikiwa kidole chako kinatetemeka au kitufe kinahisi kuwa nyeti sana, ongeza nambari hii; ikiwa unataka majibu ya haraka, ipunguze. Fahamu kwamba kuiweka chini sana kunaweza kufanya taa iruke mbele bila kutarajia (kwenye video saa 41:20).

Mantiki kuu iko katika loop(). Inasoma kitufe, na ni wakati kitufe kinapobonyezwa tu (kusoma LOW) ndipo inapoendeleza mwanga. Mfululizo hutumia mnyororo wa ukaguzi wa if / else if ili kusonga kutoka LED1 hadi LED2 hadi LED3, na kadhalika, ukirudi kwa LED1 baada ya ya mwisho. Ikiwa unataka kubadilisha mwelekeo au mpangilio wa LED, hii ni sehemu ya kuhariri — badilisha tu pini ipi inafuata ipi.

Mradi wa Moja kwa Moja na Maonyesho

Baada ya kupakia msimbo, kubonyeza kitufe huwasha LED ya kwanza; kuachilia kunaiacha LED hiyo ikiwa imewaka. Kubonyeza kunakofuata kunahamisha mwanga hadi LED ya pili, kisha ya tatu, ya nne, na ya tano, na kubonyeza kunakofuata kunarudi kwa ya kwanza — mzunguko unaoendelea (kwenye video saa 40:22).

Athari nzuri ya kuchelewa kwa milisekunde 200 ni kwamba ikiwa utashikilia kitufe chini, mwanga unaendelea kusonga wenyewe kila milisekunde 200 , kwa ufanisi kugeuza mradi kuwa mwanga wa kutembea wa kiotomatiki wakati kitufe kimeshikiliwa (kwenye video saa 42:07). Acha kitufe na inasimama kwenye LED ya sasa. Hii inakupa hatua za mikono na uendeshaji wa mikono huru kutoka kitufe kimoja.

Ikiwa ungependa mwanga uendeshwe kiotomatiki bila kitufe chochote, hiyo ni muundo tofauti. Toleo la kiotomatiki limefafanuliwa katika Somo 98-7: Mwanga wa Kutembea Kwa Kutumia Arduino na LED 5.

Miradi inayohusiana kutoka video hii

Vipengele

  • [00:00] Muhtasari wa miradi 10 ya LED ya Arduino
  • [01:22] Utangulizi wa kozi ya hatua kwa hatua ya Arduino
  • [02:29] Kuelewa LED: alama, polarity na pini
  • [03:49] Kuhesabu kizuizi cha kupunguza mkondo wa LED
  • [30:47] Mwanga wa kutembea na LED 5: uunganishaji na kanuni
  • [32:52] Msimbo wa mwanga wa kutembea: pini, muda na loop
  • [36:41] Kuendeleza mwanga kwa kitufe cha kubonyeza
  • [37:44] Mwanga wa kutembea na kitufe cha kubonyeza: maelezo ya msimbo
  • [40:22] Maonyesho na kurekebisha ucheleweshaji wa kubonyeza
  • [57:16] Maneno ya kumalizia na hitimisho la kozi

Bilder

wiring for Arduino walking light LEDs with push button
wiring for Arduino walking light LEDs with push button
Schematic for Arduino walking light LEDs with push button
Schematic for Arduino walking light LEDs with push button
Schematic for Arduino walking light LEDs
Schematic for Arduino walking light LEDs
LED 5 kwenye ubao wa mzunguko na kitufe cha kubonyeza kilichoonyeshwa kimeunganishwa kwa Arduino UNO
LED 5 kwenye ubao wa mzunguko na kitufe cha kubonyeza kilichoonyeshwa kimeunganishwa kwa Arduino UNO
940-Lessson 98-LED-8: Arduino code walking LED light with push button
Språk: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Filer📁

Arduino-bibliotek (zip)

Användarhandbok