|||Сабақ 98-3: Arduino көмегімен басу түймесін пайдаланып ауыспалы жарықдиодты қалай қосу/өшіруге болады|||
Басу түймелері барлық жерде — қашықтан басқару пульттерінде, тұрмыстық құрылғыларда және басқару панельдерінде — және бір түйме бірнеше міндетті орындауы керек болған сәтте сізге ауыстырып-қосқыш логикасы қажет. Бұл жоба бір басу түймесін бірінші басқанда жарықдиодты қосып, келесі басқанда өшіруді көрсетеді, осылайша жарық дәл сіз қалдырған күйде қалады. Бұл "бір басып құлыптау, қайта басып босату" мінез-құлқы сіз жасайтын барлық дерлік мәзір түймесінің, қуат қосқышының және режим таңдағышының негізі болып табылады.
Ауыстырып-қосқышты түсінгеннен кейін, сол код үлгісі нақты аппараттық құралдарға да қолданылады. Оны мыналар үшін пайдалануға болады:
- Бір панель түймесінен айнымалы ток шамын немесе үстел шамын басқаратын релені қосу.
- Қозғалтқышты немесе сорғыны екі түйменің орнына бір түймемен іске қосу және тоқтату.
- Құрылғыдағы жұмыс режимдерін кезектестіру (мысалы, баяу / жылдам / өшірулі).
- Біреу оны растағанша қосулы қалатын құлыптау дабылын жасау.
- Күйін есте сақтайтын аудио жоба үшін дыбысты өшіру түймесін жасау.
- Механикалық қосқышты алмастыратын, батареямен жұмыс істейтін гаджет үшін жұмсақ қуат қосқышы ретінде әрекет ету.
Нұсқаушы бұл ойды видеода тікелей атап өтеді (видеода 19:52-де): жоба шын мәнінде жарықдиод туралы емес — ол ауыстырып-қосқыш техникасы туралы, оны релеге, қозғалтқыш драйверіне немесе кез келген басқа шығысқа бағыттай аласыз.
Аппараттық құралдар және компоненттер
Бөлшектер тізімі әдейі минималды, сондықтан енді ғана бастап жатсаңыз, бұл тамаша жоба. Сізге қажет:
- Arduino тақтасы — Uno, Nano немесе Mega барлығы жарайды.
- Бір LED, 3 мм немесе 5 мм, кез келген түс.
- LED үшін бір резистор, 200 Ω-нан 1000 Ω-ға дейін. Транскрипт себебін түсіндіреді (видеода 03:49-да): LED шамамен 2 V төмендетеді және шамамен 10 мА тартады, сондықтан 5 V қоректендіру көзімен қалған 3 V резистор арқылы төмендетілуі керек. Ом заңы 3 V ÷ 0,01 A = 300 Ω береді, және 300 Ω-нан 1000 Ω-ға дейінгі кез келген мән жарайды — жоғары мәндер LED-ті жай ғана күңгірт етеді.
- Бір басу түймесі қосқышы. Видеода кішкентай төрт істікті тактильді түрі де, ұзынырақ істікті нұсқасы да көрсетілген (видеода 12:43-те). Егер басу түймесі болмаса, қарапайым қосқыш та жарайды — жай ғана тізбекті жасайтын және үзетін екі терминалды табыңыз.
- Breadboard және бірнеше DuPont қосқыш сымдары.
Видеодағы бір практикалық кеңес (видеода 07:50-де): төрт істікті тактильді түйменің ішкі түрде қосылған екі жұп істігі бар. Үздіксіздік режиміндегі мультиметрді пайдаланып, қай екі істік бірге дыбыс шығаратынын табыңыз — олар қосқыштың бір жағы. Бір жағын кіріс істігіне, екінші жағын жерге қосыңыз.
Сымдарды жалғау нұсқаулығы
Сымдар қарапайым LED және басу түймесі тізбектерімен бірдей, үстіне түйме қосылған. LED-тің аноды (ұзынырақ аяғы) 3-істікке барады, ал катоды (қысқарақ аяғы, корпустың жалпақ жағында) резистор арқылы жерге қосылады. Басу түймесі 2-істік пен жер арасында қосылады — басқа ештеңе қажет емес, өйткені код Arduino-ның ішкі тарту резисторын қосады.
Бұл ішкі тарту резисторын түсіну керек: онсыз қалқымалы кіріс істігі кездейсоқ шуылды оқиды. INPUT_PULLUP қосу түйме ашық кезде істікті 5 V деңгейінде ұстайды, ал түймені басу оны 0 V-қа төмендетеді. Сондықтан код LOW көрсеткішін "басылған" деп қарастырады — логика сыртқы резисторы бар жерге қарапайым қосқышпен салыстырғанда инверттелген.
Кодты түсіндіру
Толық скетч осы мақаланың астында қолжетімді. Мұнда біз сіз шынымен өзгерткіңіз келетін бөліктерге назар аударамыз.
Файлдың жоғарғы жағында екі істік тағайындауы тұрақтылар ретінде анықталған. Сымдарыңызды басқа істіктерге жылжытсаңыз, өңдеу қажет жалғыз орын осы:
const int pushButtonPin = 2;//define a pin number for push button
const int LEDPin = 3;//define a pin that is connected to LED
Әрі қарай үш күй айнымалысы келеді. Әдетте оларды өзгерту қажет емес, бірақ олардың не істейтінін білу пайдалы:
int pushButtonStatus = 0; // push value from pin 2
int lightStatus = 0;//light status
int pushed = 0;//push statuspushButtonStatus әр цикл сайын батырма пинінің шикі көрсеткішін сақтайды. lightStatus батырма пинінің алдыңғы өтудегі көрсеткішін есте сақтайды, осылайша скетч үздіксіз әрекет етудің орнына жаңа басудың сәтін анықтайды. pushed — нақты ауыспалы жалауша — ол 0 мен 1 арасында ауысып, жарықдиодтың қосулы немесе өшірулі болуын шешеді.
Ауысуының өзі таза арифметикалық тәсілмен жасалады (бейнеде 18:30-да). Жалаушаны бірден азайту оны инверттейді: 1 - 0 1 береді, ал 1 - 1 0 береді. Осылайша, жаңа басу анықталған сайын бір жол күйді ауыстырады:
pushed = 1-pushed;//toggle the pushed value
delay(100);//give some time for finger to press
100 мс кідіріс саусағыңыздың батырмадан кетуіне мүмкіндік береді. Онсыз бір физикалық басу бірнеше рет есептелуі мүмкін. Егер батырмаңыз сенімсіз болып көрінсе немесе саусағыңыз дірілдесе, бұл мәнді арттырыңыз (бейнеде 40:39-да).
Ауысуды тудыратын шарт бүкіл скетчтің кілті болып табылады. Ол батырма басылмаған кезде (жоғары, тарту резисторының арқасында) және алдыңғы көрсеткіш төмен болғанда ғана іске қосылады — яғни батырма басқаннан кейін жаңа ғана жіберілді:
if(pushButtonStatus == HIGH && lightStatus == LOW){
pushed = 1-pushed;//toggle the pushed value
delay(100);//give some time for finger to press
}
Соңында, жарықдиод ауыспалы жалаушадан басқарылады және ағымдағы батырма көрсеткіші келесі салыстыру үшін сақталады:
lightStatus = pushButtonStatus;
if(pushed == HIGH){
Serial.println("Light ON");
digitalWrite(LEDPin, HIGH); //turn the LED ON
}else{
Serial.println("Light OFF");
digitalWrite(LEDPin, LOW);//turn the LED OFF
}
Сондай-ақ, батырманы басқан кезде "Light ON" және "Light OFF" хабарламаларын көру үшін 9600 бод жылдамдығында Serial Monitor аша аласыз.
Тікелей көрсетілім
Бейнеде (19:41-де) мінез-құлықтың іс жүзіндегі көрінісін көре аласыз: бірінші басу жарықдиодты қосады және саусақ жіберілгеннен кейін ол қосулы күйде қалады. Келесі басу оны өшіреді және ол өшірулі күйде қалады. Батырманы ұстаудың қажеті жоқ, бұл дәл осы жоба мен 98-2 сабағы: Arduino көмегімен батырма арқылы жарықдиодты қосу және өшіру сабағында қарастырылған қарапайым "жарықтандыру үшін ұстау" нұсқасының арасындағы айырмашылық.
Бейне сонымен қатар жарықдиодты желілік қуатпен жұмыс істейтін құрылғыларды ауыстыру үшін реле модуліне немесе қозғалтқышты іске қосу және тоқтату үшін қозғалтқыш драйверіне ауыстыруға болатынын атап өтеді. Ауысу логикасы өзгермейді — тек шығыс құрылғысы өзгереді.
Сол бейнеде көрсетілген басқа да нұсқалар — жарықдиодтың бәсеңдеуі, теңселу үлгісі, жүретін жарық, кернеу жолағы өлшегіші және бағдаршам — әрқайсысы төменде сілтемелері берілген жеке оқулықтарда қарастырылған.
Осы бейнедегі ілеспе жобалар
- 98-1 сабағы: Arduino көмегімен жарықдиодты қосу және өшіру
- 98-2 сабағы: Arduino көмегімен батырма арқылы жарықдиодты қосу және өшіру
- 98-4 сабағы: Arduino көмегімен жарықдиодтың бәсеңдеуі: жарықтылықты басқару
- 98-5 сабағы: Arduino көмегімен батырма басылғанда жарықтың бәсеңдеуі
- 98-6 сабағы: Arduino көмегімен теңселу жарықдиод ойыны
- 98-7 сабағы: Arduino және 5 жарықдиод көмегімен жүретін жарық
- 98-8 сабағы: Arduino көмегімен батырма және жарықдиодтармен жүретін жарық
- 98-9 сабағы: Arduino көмегімен жарықдиодтың кернеу деңгейінің өлшегіші немесе потенциометрмен жүретін жарық
- 98-10 сабағы: Arduino бағдаршамы
Тараулар
- [00:00] 10 жарықдиод жобасына шолу
- [01:00] Arduino қадамдық курсына кіріспе
- [02:29] Жарықдиод негіздері: таңба, анод, катод және резисторды есептеу
- [05:53] 1-жоба: Жарықдиодты қосу және өшіру
- [12:43] 2-жоба: Батырма жарықдиодты басқарады
- [17:13] 3-жоба: Батырма жарықдиодты қосып-өшіреді
- [20:12] 4-жоба: Жарықдиодтың бәсеңдеуі
- [23:20] 5-жоба: Батырма арқылы жарықдиодтың бәсеңдеуі
- [27:32] 6-жоба: Екі жарықдиодпен теңселу
- [30:47] 7-жоба: Бес жарықдиодпен жүретін жарық
- [36:41] 8-жоба: Батырма арқылы жетілдірілген жүретін жарық
- [42:25] 9-жоба: Потенциометрмен жарықдиодтың кернеу деңгейінің өлшегіші
- [49:25] 10-жоба: Arduino бағдаршамы
This code has not been parsed yet. Please return to the admin panel to parse it.
Сізге қажет болуы мүмкін нәрселер
-
АмазонкаSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Амазонка
-
Амазонка
-
Амазонка
Ресурстар мен сілтемелер
-
ҚұжаттамаDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
Сыртқы
-
Сыртқы
-
Сыртқы
Файлдар📁
Arduino кітапханалары (zip)
-
SunFounder 3-і-1 Smart Car оқу жинағының бастапқы коды
3in1-kit-main-v2.zip12.80 MB
Пайдаланушының нұсқаулығы
-
SunFounder 3-в-1 Arduino Smart Car құрастыру нұсқаулығыБұл құжат SunFounder 3-в-1 Arduino Smart Car құрастыруды қадам бойынша көрсетеді
SunFounder_car_assembly_manual.pdf1.20 MB