Лекција 98-3: Како да вклучите/исклучите LED диода со прекинувач користејќи копче со Arduino
Копчињата се насекаде — во далечинските управувачи, апаратите и контролните панели — и во моментот кога едно копче треба да извршува повеќе од една задача, ви е потребна логика за префрлање. Овој проект ви покажува како да направите едно копче да го вклучи LED-от со првото притискање и да го исклучи со следното, така што светлината останува точно таму каде што сте ја оставиле. Тоа однесување „притисни еднаш за да се задржи, притисни повторно за да се ослободи“ е основата на речиси секое копче за мени, прекинувач за напојување и избирач на режим што некогаш ќе го изградите.
Откако ќе го разберете префрлањето, истиот шаблон на код се применува и на вистински хардвер. Можете да го користите за да:
- Вклучите реле што управува со AC ламба или работна светилка од едно копче на панелот.
- Стартувате и запрете мотор или пумпа со едно копче наместо со две.
- Циклично менувате работни режими на уред (на пример, бавно / брзо / исклучено).
- Изградите аларм што се задржува вклучен додека некој не го потврди.
- Создадете копче за исклучување на звук за аудио проект што ја памти својата состојба.
- Делува како мек прекинувач за напојување за уред на батерии, заменувајќи механички прекинувач.
Инструкторот директно ја истакнува оваа точка во видеото (во видеото на 19:52): проектот всушност воопшто не е за LED-от — туку за техниката на префрлање, која можете да ја примените на реле, драјвер за мотор или кој било друг излез.
Хардвер и компоненти
Списокот на делови е намерно минимален, така што ова е одличен проект ако штотуку започнувате. Ви требаат:
- Arduino плоча — Uno, Nano или Mega, сите функционираат.
- Еден LED, 3 mm или 5 mm, која било боја.
- Еден отпорник за LED-от, било каде од 200 Ω до 1000 Ω. Транскриптот го објаснува резонирањето (во видеото на 03:49): LED-от има пад од приближно 2 V и влече околу 10 mA, така што со напојување од 5 V преостанатите 3 V мора да ги апсорбира отпорникот. Омовиот закон дава 3 V ÷ 0,01 A = 300 Ω, и било што од 300 Ω до 1000 Ω ќе функционира — повисоките вредности едноставно го прават LED-от потемнет.
- Едно копче. Видеото ги прикажува и малиот тактилен тип со четири пина и верзијата со подолги пинови (во видеото на 12:43). Ако немате копче, обичен прекинувач исто така функционира — само пронајдете ги двата терминали што го воспоставуваат и прекинуваат колото.
- Една breadboard плоча и неколку DuPont жици за поврзување.
Еден практичен совет од видеото (во видеото на 07:50): тактилното копче со четири пина има два пара внатрешно поврзани пинови. Користете мултиметар во режим на континуитет за да откриете кои два пина бипат заедно — тие се едната страна на прекинувачот. Поврзете ја едната страна со влезниот пин, а другата страна со маса.
Водич за поврзување
Поврзувањето е исто како кај едноставните кола со LED и копче, со додадено копче. Анодата на LED-от (подолгата нога) оди на пин 3, а катодата (пократката нога, на рамната страна на телото) се поврзува преку отпорникот со маса. Копчето се поврзува помеѓу пин 2 и маса — ништо друго не е потребно, бидејќи кодот го овозможува внатрешниот pull-up отпорник на Arduino.
Вреди да се разбере тој внатрешен pull-up: без него, лебдечкиот влезен пин би читал случаен шум. Овозможувањето на 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 и одлучува дали LED диодата треба да биде вклучена или исклучена.
Самото префрлање се прави со уреден аритметички трик (во видеото на 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 ms е таму за да му се овозможи на вашиот прст да се отстрани од копчето. Без него, едно физичко притискање може да се изброи неколку пати. Ако вашето копче изгледа несигурно или вашиот прст трепери, зголемете ја оваа вредност (во видеото на 40:39).
Условот што го активира префрлањето е клучот за целата скица. Тој се активира само кога копчето не е притиснато (HIGH, поради pull-up отпорникот) и претходното читање било LOW — што значи дека копчето штотуку е отпуштено по притискање:
if(pushButtonStatus == HIGH && lightStatus == LOW){
pushed = 1-pushed;//toggle the pushed value
delay(100);//give some time for finger to press
}
Конечно, LED диодата се управува од знаменцето за префрлање, а тековното читање на копчето се зачувува за следната споредба:
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
}
Можете исто така да го отворите Serial Monitor на 9600 baud за да ги гледате пораките "Light ON" и "Light OFF" додека го притискате копчето.
Демонстрација во живо
Во видеото (во видеото на 19:41) можете да го видите однесувањето во акција: првото притискање ја вклучува LED диодата и таа останува вклучена откако прстот ќе се отстрани. Следното притискање ја исклучува и таа останува исклучена. Нема потреба да го држите копчето, што е токму разликата помеѓу овој проект и поедноставната верзија "држи за да свети" опфатена во Лекција 98-2: Како да вклучите и исклучите LED диода користејќи копче со Arduino.
Видеото исто така истакнува дека можете да ја замените LED диодата со релеен модул за вклучување на уреди напојувани од мрежата, или со драјвер за мотор за да стартувате и запрете мотор. Логиката за префрлање не се менува — се менува само излезниот уред.
Другите варијации прикажани во истото видео — затемнување на LED диодата, шемата на клацкалка, светлината што оди, мерачот на напонски ленти и семафорот — секоја е опфатена во своите сопствени упатства, поврзани подолу.
Поврзани проекти од ова видео
- Лекција 98-1: Како да вклучите и исклучите LED диода со Arduino
- Лекција 98-2: Како да вклучите и исклучите LED диода користејќи копче со Arduino
- Лекција 98-4: Затемнување на LED светло користејќи Arduino: Контрола на осветленост
- Лекција 98-5: Затемнување на светло кога е притиснато копче користејќи Arduino
- Лекција 98-6: Игра со клацкалка LED со Arduino
- Лекција 98-7: Светлина што оди користејќи Arduino и 5 LED диоди
- Лекција 98-8: Светлина што оди со копче и LED диоди со Arduino
- Лекција 98-9: Мерач на ниво на напон на LED користејќи Arduino или светлина што оди со потенциометар
- Лекција 98-10: Arduino семафор
Поглавја
- [00:00] Преглед на 10-те LED проекти
- [01:00] Вовед во Arduino курс чекор по чекор
- [02:29] Основи на LED: симбол, анода, катода и пресметка на отпорник
- [05:53] Проект 1: Вклучување и исклучување на LED
- [12:43] Проект 2: Копче управува со LED
- [17:13] Проект 3: Копче го префрла LED вклучено и исклучено
- [20:12] Проект 4: Затемнување на LED
- [23:20] Проект 5: Затемнување на LED со копче
- [27:32] Проект 6: Клацкалка со две LED диоди
- [30:47] Проект 7: Светлина што оди со пет LED диоди
- [36:41] Проект 8: Напредна светлина што оди со копче
- [42:25] Проект 9: Мерач на ниво на напон на LED со потенциометар
- [49:25] Проект 10: Arduino семафор
This code has not been parsed yet. Please return to the admin panel to parse it.
Работи што можеби ќе ви требаат
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
Ресурси и референци
-
ДокументацијаDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
Надворешно
-
Надворешно
-
Надворешно
Датотеки📁
Arduino библиотеки (zip)
-
SunFounder's 3-in-1 Smart Car learning kit изворен код
3in1-kit-main-v2.zip12.80 MB
Упатство за корисникот
-
Прирачник за склопување на SunFounder 3-во-1 Arduino паметен автомобилОвој документ покажува чекор по чекор склопување на SunFounder 3-во-1 Arduino паметен автомобил
SunFounder_car_assembly_manual.pdf1.20 MB