Wa Koodu

Ẹ̀kọ́ 98-4: Dín Ìmọ́lẹ̀ LED Ku Nípa Lílò Arduino: Ìṣàkóso Ìmọ́lẹ̀

Ẹ̀kọ́ 98-4: Dín Ìmọ́lẹ̀ LED Ku Nípa Lílò Arduino: Ìṣàkóso Ìmọ́lẹ̀

LED wá níbi gbogbo — àwọn àmì, àwọn ìfihàn, ìmọ́lẹ̀ ọ̀ṣọ́ — ṣùgbọ́n ọ̀pọ̀lọpọ̀ àwọn olùbẹ̀rẹ̀ ni wọ́n dádúró níbi tí wọ́n kàn tan-àn ni tàn, kí wọ́n sì pa á. Iṣẹ́ àyọkà yìí gbé ìgbẹ̀sẹ̀ tó tẹ̀le: yíyí LED kan lọ́nà tí kò ní ìdilọ́wọ́ nínú àti ìta nípa lílo àgbára PWM (Pulse Width Modulation) ti Arduino tí a kò ṣe é. Dípò ìpánní láìlọ́ra, iwọ yoo ní ìgbègà àti ìsọ̀kalẹ̀ díẹ̀ nínú ìmọ́lẹ̀ tí ó dà bí ìdinku ìmọ́lẹ̀ àdánidá, àwọn ìpàtàkò mímí, àti ìṣàkosóso bí analog lati inú pínìn díjítà kan ṣoṣo. Ó jẹ́ ọ̀kan lára àwọn iṣẹ́ àkọ́kọ́ tí ó ní ìtẹ́lọ́rùn jàyìlọ́jù nítorí iwọ le rí èsì ní kíà, àti ìlànà kan náà ni ó ṣe ìpilì fun ìṣàkosóso ìyára mọ́tò, ìwọ̀n ohun, àti ìdinku ìmọ́lẹ̀ ẹ̀yìn nínú àwọn ọjà gidi.

LED-5mm-aláwọ̀ ewé

Ní keté tí o bá ti yé ìdinku ìmọ́lẹ̀, iwọ le lò ó sí ọ̀pọ̀lọpọ̀ àwọn ìkọ́lé tí ó wúlò:

  • Ṣíṣe àmì ìpò "mímí" lórí ẹ̀rọ kan tí ó ń mí díẹ̀ ní ìṣẹ̀ṣẹ̀ dípò kí ó máa pá ní ọ̀nà tí ó fa àfojúsí
  • Dídinku ìmọ́lẹ̀ ọ̀gbà ìmọ́lẹ̀ alẹ́ láìfọwọ́sọ̀rọ̀ dá lori ìmọ́lẹ̀ àyíká tabí àkókò ọjọ́
  • Ṣíṣàkosóso ìmọ́lẹ̀ ẹ̀yìn lórí ìfihàn LCD tabí OLED
  • Kíkọ́ ìmọ́lẹ̀ ìmọ̀lara tabí àwọn àtupà ọ̀ṣọ́ pẹ̀lú ìyipada tí ó rọ̀ laàrin àwọn ìpele ìmọ́lẹ̀
  • Ṣíṣe àfarawe aago ìjí aláárọ̀ tí ó ń mọ́lẹ̀ díẹ̀díẹ̀ lati jí ọ ní ọ̀nà àdánidá
  • Fífi ìṣàkosóso ìyára kun àwọn mọ́tò DC kekere tabí àwọn fàn (ìlànà PWM kan náà ni ó kan)

Ìkọ́ní yìí jẹ́ apá kan tí Ẹ̀kọ́ Ìgbẹ̀sẹ̀-de-Ìgbẹ̀sẹ̀ Robojax Arduino, ó sì ní ìsàlẹ̀ Iṣẹ́ 4 nínú 10: Dídinku Ìmọ́lẹ̀ LED Nípa Lílo Arduino. Ètò ní kíkún wà fún ìgbasilẹ̀ ní ìsàlẹ̀ àpilẹ̀kọ náà.

Ẹ̀rọ àti Àwọn Ẹ̀yà

330_ohm_resistor
330 ohm 0.25 watt resistor

Àkòjọ àwọn ẹ̀yà fún iṣẹ́ yìí kere ju — tí o bá ti ṣe iṣẹ́ Arduino kan rí, ó ṣeé ṣe kí o ti ní ohun gbogbo tí o nilò:

  • 1× pọ́nnù Arduino (Uno, Nano, Mega, tabí pọ́nnù eyikéyì tí ó bámu)
  • 1× LED (5mm tabí 3mm, awọ̀ eyikéyì)
  • 1× Resistor (200Ω sí 1000Ω — ìwọ̀n 300Ω sí 1kΩ ń ṣiṣẹ́ dáadá)
  • Bọ́ọ̀dù ìṣẹ́ àti àwọn waya DuPont
  • Okun USB fún ṣíṣètò àti agbara

Àkíyesí pataki kan nípa LED: ẹsẹ̀ tí ó gun ju ni anode (òdì), ẹsẹ̀ tí ó kuru ju — tabí ẹ̀gbẹ́ tí ó ní eti pátápátá lórí apó plásítikì — ni cathode (àìdára). Tí o bá yí èyí padà, LED kò ní tan mọ́, ńtorí náà ṣàyẹ̀wò ní ìṣẹ̀ṣẹ̀ kí o tó tan-àn.

Fún iye resistor, ìkọ́wéwé ń lọ nípa ìṣirò ní (nínú fídìò ní 03:49): LED aṣojú kan ń sọ 2V silẹ̀ ó sì nilò ìwọ̀n 10mA. Pẹ̀lú ìpese 5V, 3V tó kù gbọ́dọ̀ sọ silẹ̀ lára resistor, tí ó ń fún R = V/I = 3V / 0.01A = 300Ω. Ní ìṣe, ohun eyikéyì lati 300Ω de 1000Ω yóò ṣiṣẹ́ — àwọn iye tí ó ga jù ń fún LED tí ó dinku. Fún ìdinku ìmọ́lẹ̀, èyí dáadá, nítorí ó ń yí ìmọ́lẹ̀ padà ní ọ̀nà eyikéyì.

Ìtọ́sọ́nà Ìṣẹ́ Waya

Arduino schematic for two LEDs see saw
Arduino schematic for two LEDs see saw
Arduino wiring for two LEDs see saw
Arduino wiring for two LEDs see saw

Ìṣẹ́ waya jẹ́ bí ó ṣe rọrùn jùlọ. Anode LED ni ó so pẹ̀lú resistor sí pínìn tí ó lè ṣe PWM lórí Arduino — nínú iṣẹ́ yìí, pínìn 3. Cathode ni ó so mọ́ ilẹ̀.

Kílódé pínìn 3 pàtàkì? Nítorí kì í ṣe gbogbo àwọn pínìn Arduino ni ó ṣe atilẹ́yìn PWM. Lórí ọ̀pọ̀lọpọ̀ àwọn pọ́nnù Arduino, àwọn pínìn tí ó lè ṣe PWM ni a fi àmì tilde (~) ṣe — nígbàgbọ́, àwọn pínìn 3, 5, 6, 9, 10, àti 11 lórí Uno. Tí o bá lo pínìn tí kì í ṣe PWM, analogWrite() kò ní fún ìjade tí ó yipada; LED yóò kàn wà ní tàn tabí pa.

So ìṣẹ́ náà bí èyí:

  1. Fi LED sí inú bọ́ọ̀dù ìṣẹ́, ṣàkíyesí ẹsẹ̀ tí ó jẹ́ anode (tí ó gun jù) àti eyi tí ó jẹ́ cathode (tí ó kuru ju/ẹ̀gbẹ́ pátápátá).
  2. So anode LED mọ́ pínìn 3 Arduino nípasẹ̀ resistor.
  3. So cathode LED mọ́ pínìn GND Arduino.
  4. Fi Arduino wọ inú kọ̀m̀pútà rẹ nípasẹ̀ USB.

Àlàyé Ìkọ̀wé

Àkọsílẹ̀ fún iṣẹ́ yìí dá lórí àpẹẹrẹ "Fade" Arduino tí a mọ̀, pẹ̀lú àwọn àtunṣe díẹ̀. Dípò láti ṣàlàyé gbogbo ìlà, ẹ jẹ́ kí a dá lórí àwọn apá tí iwọ yoo fẹ́ ṣàtunṣe fún àwọn ìdanánwò rẹ.

Àwọn Oníyànù Tí Olùlò Lè Ṣètò

Ní orí koodu náà, àwọn oníyànù mẹ́ta ni ó ń ṣàkosóso gbogbo ìhùwàsí:

int led = 3;           // the PWM pin the LED is attached to
int brightness = 0;    // how bright the LED is
int fadeAmount = 3;    // how many points to fade the LED by
  • led — Eyi n ṣalaye pin wo ni LED ti sopọ mọ. Aiyipada jẹ pin 3, ṣugbọn o le yi pada si pin eyikeyi ti o ni agbara PWM (ti a samisi pẹlu ~ lori board rẹ). Ti o ba gbe LED si pin miiran, ṣe imudojuiwọn iye yii lati baamu.
  • brightness — Eyi ni ipele imọlẹ lọwọlọwọ, ti o wa lati 0 (pa) si 255 (imọlẹ kikun). Koodu bẹrẹ ni 0, ṣugbọn o le bẹrẹ ni ibikibi ninu iwọn yẹn.
  • fadeAmount — Eyi ni eyi ti o nifẹ julọ lati ṣere pẹlu. O ṣakoso iye awọn "igbesẹ" imọlẹ ti a gbe ni ọmọ-ọwọ kọọkan. Iye kekere bi 3 n ṣe agbejade fifo lọra, diėdiė. Iye nla bi 20 n jẹ ki LED fo ni kiakia. Iwe-ẹkọ naa ṣe afihan eyi ni (ninu fidio ni 22:37) — yiyipada lati 5 si 20 n mu ipa naa pọ si ni iyalẹnu.

Bii Fifo Ṣe N ṣiṣẹ

Koko fifo naa waye ni ila meji ninu loop():

analogWrite(led, brightness);
brightness = brightness + fadeAmount;

Ni igba kọọkan ti o kọja nipasẹ loop, iye imọlẹ lọwọlọwọ ni a kọ si LED nipa lilo analogWrite(), lẹhinna imọlẹ naa ni a pọ si nipasẹ fadeAmount. Iṣẹ analogWrite() nlo PWM lati ṣe afiwe foliteji analog — o yipada pin naa ni kiakia lati tan ati pa, ati ipin ti akoko-tan si akoko-pa ni o pinnu imọlẹ ti a ri.

Nigbati imọlẹ ba de 0 tabi 255, koodu naa yipada itọsọna nipa yiyipada ami fadeAmount:

if (brightness <= 0 || brightness >= 255) {
  fadeAmount = -fadeAmount;
}

Eyi ni ohun ti n jẹ ki LED tan, lẹhinna pa, lẹhinna tan lẹẹkansi — ọmọ-ọwọ mimi ti nlọ lọwọ. delay(30) ni ipari loop n ṣakoso iyara gbogbogbo ti ere idaraya naa. Idaduro kukuru n jẹ ki fifo yara; idaduro gigun n fa fifalẹ.

Ṣiṣe Idanwo pẹlu Awọn Iye

Awọn oniyipada meji fun ọ ni iṣakoso pupọ julọ lori ipa wiwo:

  • Mu fadeAmount pọ si fun fifo ti o yara, ti o ni iyalẹnu diẹ sii. Gbiyanju 10 tabi 20.
  • Din fadeAmount ku fun ipa mimi lọra, rọra. Gbiyanju 1 tabi 2.
  • Ṣatunṣe iye delay() lati yi iyara pada. Idaduro kekere n jẹ ki ọmọ-ọwọ gbogbo yara; idaduro nla n fa fifalẹ.

Pipọ fadeAmount kekere pẹlu idaduro kukuru n ṣe agbejade fifo ti o dan pupọ, ti o fẹrẹ jẹ adayeba — o dara fun imọlẹ ayika. fadeAmount nla pẹlu idaduro kukuru n ṣẹda ipa lilu kiakia.

Ifihan Ise Agbese Laaye

Ni kete ti a ba gbe koodu naa soke, iwọ yoo rii LED naa ti o tan lọra lati pa si imọlẹ kikun, lẹhinna dinku pada, ti o tun ṣe lainidii. Iwe-ẹkọ naa fihan ihuwasi aiyipada ni (ninu fidio ni 22:25) — fifo dan, iyara iwọntunwọnsi.

Nigbati a ba yi fadeAmount pada si 20, LED naa n tan ati pa ni kiakia pupọ — o fẹrẹ dabi didan. Nigbati a ba ṣeto si 3, fifo naa gba akoko ti o pọ si ni akiyesi, ti o ṣẹda iyipada ti o rọ, diėdiė. Eyi ni a fihan kedere ninu fidio ni (ninu fidio ni 23:02).

Ẹwa iṣẹ akanṣe yii ni pe o le rii ipa awọn ayipada koodu rẹ lẹsẹkẹsẹ — ko si awọn ayipada okun waya ti o nilo, kan ṣatunṣe awọn oniyipada ki o tun gbe soke. Ọmọ-ọwọ esi ti o sunmọ yii jẹ ki o jẹ ọna ti o dara julọ lati kọ oye fun bii PWM ati akoko ṣe n ṣiṣẹ papọ.

Ti o ba fẹ lati mu eyi lọ siwaju nipa jijẹ ki fifo naa bẹrẹ pẹlu bọtini titẹ dipo jijẹ ki o ṣiṣẹ nigbagbogbo, eyi ni a bo ninu ikẹkọọ lọtọ — wo apakan awọn iṣẹ akanṣe ti o jọmọ ni isalẹ.

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

Awọn ipin

  • [00:00] Akopọ ti awọn iṣẹ akanṣe LED Arduino 10
  • [01:22] Ifaara si ẹkọ naa ati awọn paati ti o nilo
  • [02:29] Loye Awọn LED: awọn aami, polarity, ati awọn iru
  • [03:49] Iṣiro iye resistor LED nipa lilo ofin Ohm
  • [05:53] Ise agbese 1: Titan ati Pa LED
  • [12:43] Ise agbese 2: Iṣakoso LED pẹlu bọtini titẹ
  • [17:13] Ise agbese 3: Toggle LED pẹlu bọtini titẹ
  • [20:12] Ise agbese 4: Fifo LED — ṣiṣe alaye koodu
  • [22:25] Ifihan fifo ati ṣiṣatunṣe iyara fifo
  • [23:20] Ise agbese 5: Fifo LED pẹlu titẹ bọtini
  • [27:32] Ise agbese 6: Ipa LED Seesaw
  • [30:47] Ise agbese 7: Imọlẹ rin pẹlu LED 5
  • [36:41] Ise agbese 8: Imọlẹ rin ti a ṣakoso nipasẹ bọtini titẹ
  • [42:25] Ise agbese 9: Mita ipele foliteji LED pẹlu potentiometer
  • [49:25] Ise agbese 10: Imọlẹ opopona Arduino

Aworan

Arduino wiring for LED  with resistor
Arduino wiring for LED with resistor
Arduino schematic for LED
Arduino schematic for LED
Arduino wiring for two LEDs see saw
Arduino wiring for two LEDs see saw
Arduino schematic for two LEDs see saw
Arduino schematic for two LEDs see saw
LED-5mm-green
LED-5mm-green
330_ohm_resistor
330_ohm_resistor
936-Lessson 98-LED-4: Arduino code to fade the 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