Пребарување код

Лекција 98-6: Игра со LED светла на клацкалка со Arduino

Лекција 98-6: Игра со LED светла на клацкалка со Arduino

Проектот за LED лулашка е класична вежба за почетници која го учи еден од најважните концепти во Arduino програмирањето: правење два излеза да се менуваат во темпиран ритам. Користејќи само две LED диоди, два отпорници и неколку поврзувачки жици, ќе изградите коло каде зелена LED и црвена LED наизменично светат, имитирајќи го движењето горе-долу на детска лулашка. Тоа е едноставна изработка, но ги воведува основните градивни блокови — дефиниции на пинови, временски константи и секвенцијални повици на digitalWrite() — кои се појавуваат во речиси секоја Arduino скица што ќе ја напишете.

две LED диоди со отпорник на breadboard поврзани со Arduino
две LED диоди со отпорник на breadboard поврзани со Arduino

Бидејќи шемата на лулашка е всушност само „вклучи едно нешто, исклучи го, вклучи го другото, исклучи го, повтори“, истата структура се проширува на десетици практични употреби. Еве неколку идеи за да ја разбудите вашата имагинација:

  • Наизменични индикаторски светла — пар „безбедно / предупредување“ на контролна табла што се менува напред-назад.
  • Симулација на железнички премин — две ламби кои трепкаат наизменично додека се приближува воз.
  • Знак за насока со две ленти — приказ со стрелка „оди вака / оди така“ за пристапен пат или паркинг.
  • Празнична декорација — црвени и зелени LED диоди кои ги менуваат местата за празничен ефект на трепкање.
  • Основa за учење — вештините за темпирање и секвенционирање овде се истите што подоцна ќе ги користите за сообраќајни светла, светла за пешаци и анимации со повеќе LED диоди.

Како функционира ефектот на лулашка

LED е диода која емитува светлина, а нејзиниот симбол е триаголник што покажува кон линија. Рамната линија е катода (негативна), а задниот дел од триаголникот е анода (позитивна). На физичка LED, подолгиот крак е анодата, а пократкиот, со рамна страна, е катодата. Струјата тече од анода кон катода, така што анодата се поврзува кон вашиот Arduino пин, а катодата се поврзува преку отпорник со земја (во видеото на 02:29).

Отпорникот е важен. Типична мала LED бара приближно 2 V преку неа и околу 10 mA струја. Ако вашиот Arduino обезбедува 5 V, преостанатите 3 V мора да ги намали отпорникот. Користејќи го Омовиот закон, R = V / I = 3 V / 0.01 A = 300 Ω. Сè од околу 300 Ω до 1000 Ω ќе работи — повисоките вредности едноставно ја прават LED помрачна (во видеото на 03:49).

За лулашката, двете LED диоди се поврзани идентично: секоја анода оди на свој Arduino пин, а секоја катода оди преку свој отпорник до заедничка шина за земја. Единствената разлика помеѓу двете е на кој пин се приклучени.

Хардвер и компоненти

  • 1 × Arduino плоча (Uno, Nano, Mega или слична)
  • 2 × LED диоди — една црвена, една зелена (кои било две бои работат)
  • 2 × отпорници, 300 Ω до 1000 Ω (220 Ω или 330 Ω се вообичаени избори)
  • 1 × breadboard
  • Поврзувачки жици (DuPont жици)
  • USB кабел за програмирање и напојување

Тоа е сè — без копчиња, без потенциометри, без сензори. Ова е намерно најкратката можна листа на делови за да можете целосно да се фокусирате на логиката на кодот.

Водич за поврзување

Arduino шема за две LED диоди лулашка
Arduino шема за две LED диоди лулашка
Arduino поврзување за две LED диоди лулашка
Arduino поврзување за две LED диоди лулашка

Поврзувањето е симетрично и лесно за следење. Вметнете ги двете LED диоди во breadboard. Поврзете ја анодата (подолгиот крак) на зелената LED со Arduino пин 2 и анодата на црвената LED со Arduino пин 3. Секоја катода (пократкиот крак) се поврзува со едниот крај на својот отпорник, а другиот крај на двата отпорници се спојува на заедничка шина што води до GND пинот на Arduino (во видеото на 27:45).

Бидејќи двете LED диоди ја делат истата шина за земја, потребна е само една жица за земја од breadboard назад до Arduino. Двете сигнални жици — една до пин 2, една до пин 3 — се единствените врски што се менуваат помеѓу двете LED диоди.

Објаснување на кодот

Скицата е намерно кратка за секоја линија да биде значајна. Еве ги деловите што всушност ќе сакате да ги прилагодите:

Дефиниции на пинови

const int greenLEDPin = 2;//define a pin for green LED
const int redLEDPin = 3;//define a pin for red LED

Овие две константи му кажуваат на Arduino на кои пинови се поврзани LED диодите. Ако сте ги поврзале LED диодите на различни пинови — да речеме пин 8 и пин 9 — ова е единственото место што треба да го промените. Клучниот збор const значи дека вредноста е фиксна за времетраењето на програмата и не може случајно да се препише подоцна.

Временска константа

const int ON_TIME = 500;

Оваа единствена вредност контролира колку долго секоја LED останува вклучена, во милисекунди. Стандардната вредност од 500 значи дека секоја LED е вклучена половина секунда, така што целосниот циклус зелена-потоа-црвена трае една секунда. Намалете ја на 200 за брзо трепкање или зголемете ја на 1000 за бавен, намерен ритам од една секунда по LED (во видеото на 30:17). Бидејќи двете LED ја делат оваа константа, тие секогаш остануваат синхронизирани — клацкалката останува избалансирана.

Поставување

Внатре во setup(), двата пина се декларирани како излези со pinMode(), а серискиот монитор се стартува на 9600 бауди за да можете да ги гледате пораките за состојбата на LED како се прикажуваат. Ова се извршува еднаш, кога плочата се вклучува.

Јамката

Функцијата loop() е местото каде што се случува клацкалката. Таа извршува четири дејства по редослед: ја вклучува зелената LED, чека ON_TIME милисекунди, ја исклучува, потоа го прави истото за црвената LED. Кога јамката ќе стигне до крајот, таа започнува одново од почетокот автоматски — тоа е целото однесување на „клацкалка“. Нема променлива за состојбата и нема услов за проверка, бидејќи шемата е чисто секвенцијална.

Проект во живо и демонстрација

Откако кодот ќе се постави, ќе видите како зелената LED свети половина секунда, потоа црвената LED, потоа повторно зелената, бесконечно. Отворањето на серискиот монитор (Tools → Serial Monitor, или Ctrl+Shift+M) покажува „Green LED ON“ и „Red LED ON“ испечатени додека шемата се извршува, што е практичен начин да потврдите дека тајмингот одговара на она што сте го поставиле.

Обидете се да го промените ON_TIME на 200 и повторно да го поставите — LED ќе се менуваат забележливо побрзо. Поставете го на 1000 и клацкалката станува бавна, намерна наизменична смена. Можете исто така да го исклучите Arduino од USB и да го напојувате од батерија или адаптер од 5 V; скицата работи идентично бидејќи веќе е зачувана во меморијата на плочата.

Поврзани проекти од ова видео

Поглавја

  • [00:00] Преглед на 10 Arduino LED проекти
  • [01:22] Вовед во Arduino курс чекор по чекор
  • [02:29] Разбирање на LED: симбол, анода и катода
  • [03:49] Пресметување на серискиот отпорник за LED со Омовиот закон
  • [27:32] Претставување на проектот клацкалка LED
  • [27:45] Шема на поврзување за проектот клацкалка
  • [28:28] Објаснување на кодот за клацкалка
  • [30:06] Демонстрација на клацкалката со различни тајминзи
  • [30:47] Преглед на проектот светло што оди
  • [36:41] Светло што оди контролирано со копче
  • [42:25] LED волтметарска лента со потенциометар
  • [49:25] Arduino проект семафор

Слики

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
330_ohm_resistor
330_ohm_resistor
две LED диоди со отпорник на експериментална плоча поврзани на Arduino
две LED диоди со отпорник на експериментална плоча поврзани на Arduino
938-Lessson 98-LED-6: Arduino code two LED, See-saw
Јазик: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Работи што можеби ќе ви требаат

Ресурси и референци

Датотеки📁

Arduino библиотеки (zip)

Упатство за корисникот