Arduino непречено вклучување на rgb LED од копчето. Контрола на осветленоста на ЛЕР со потенциометар. Опис на програмата за Arduino

Во овој експеримент, додаваме дел од осветленоста на ЛЕР со едно копче и го намалуваме со друго.

СПИСОК НА ДЕЛОВИ ЗА ЕКСПЕРИМЕНТОТ

- 1 плочка Arduino Uno;

- 1 табла без лемење;

- 2 копчиња на часовникот;

- 1 отпорник со номинална вредност од 220 Ом;

- 1 LED;

- 7 машко-машки жици.

ГЛАВЕН ДИЈАГРАМ

ДИЈАГРАМ НА таблата за леб

ЗАБЕЛЕШКА

  • Ако повторно го правите колото од претходниот експеримент, имајте предвид дека овој пат треба да го поврземе LED-то со порта што поддржува PWM.

СКЕЧ

преземете скица за Arduino IDE
#define PLUS_BUTTON_PIN 2 #define MINUS_BUTTON_PIN 3 #define LED_PIN 9 int осветленост = 100; бул плусUp = точно; булова minusUp = точно; void setup() ( pinMode(LED_PIN, OUTPUT); pinMode(PLUS_BUTTON_PIN, INPUT_PULLUP); pinMode(MINUS_BUTTON_PIN, INPUT_PULLUP); ) void loop() (analogWrite(LED_PIN, осветленост); // ние одговараме на кликнување плус); = handleClick(PLUS_BUTTON_PIN, plusUp, +35); minusUp = handleClick(MINUS_BUTTON_PIN, minusUp, -35); ) // Матична функција со 3 параметри: број на пин со копчето // (buttonPin), состојба пред валидација (wasUp) и градација // осветленост при кликнување на копчето (делта). Функцијата ја враќа // (инж. враќање) назад на новата, моментална состојба на копчето Булова рачкаКликнете(int buttonPin, boolean wasUp, int delta) ( boolean isUp = digitalRead(buttonPin); if (wasUp && !isUp) ( delay( 10); // вратете ја вредноста на кодот на повикувачот )

ОБЈАСНУВАЊА НА КОД

  • Можеме да користиме не само вградени функции, туку и да создаваме свои. Ова е оправдано кога треба да ги повториме истите дејства на различни места на кодот, или, на пример, треба да ги извршиме истите дејства на различни податоци, како во овој случај: обработете го сигналот од дигиталните порти 2 и 3.
  • Можете да ги дефинирате вашите сопствени функции каде било во вашиот код надвор од кодот на другите функции. Во нашиот пример, дефиниравме функција после јамка .
  • За да ја дефинираме нашата сопствена функција, ни треба:
    • Објавете каков тип на податоци ќе се вратат. Во нашиот случај, ова булови. Ако функцијата извршува само некои дејства и не враќа никаква вредност, користете го клучниот збор празнина
    • Доделете име на функцијата - идентификатор. Овде важат истите правила како и за именување на променливи и константи. Вообичаено е да се именуваат функции во ист стил како Променливи .
    • Наведете ги параметрите предадени на функцијата во загради, наведувајќи го типот на секоја од нив. Ова е декларација на променливи видливи во новосоздадената функција и само во неа. На пример, ако во овој експеримент се обидеме да се повикаме беше гореили е гореод јамка ()добиваме порака за грешка од компајлерот. Исто така, променливите декларирани во јамка, не се видливи за другите функции, но нивните вредности може да се пренесат како параметри.
    • Помеѓу пар кадрави загради, напишете го кодот што се извршува од функцијата
    • Ако функцијата мора да врати одредена вредност, користејќи го клучниот збор враќањенаведете која вредност да се врати. Оваа вредност мора да биде од типот што го деклариравме
  • Таканаречените глобални променливи, т.е. променливите до кои може да се пристапи од која било функција обично се декларираат на почетокот на програмата. Во нашиот случај, ова е осветленост .
  • Внатре во функцијата што ја создадовме handleClickсе случува истото како во експериментот.
  • Бидејќи, со чекор за зголемување на осветленоста од 35, по не повеќе од осум кликања по ред на едно од копчињата, вредноста на изразот осветленост + делтаизлегува надвор од опсегот . Користење на функцијата ограничувањеги ограничуваме дозволените вредности за променливата осветленостодредени граници на опсегот.
  • Во изразот plusUp = handleClick(PLUS_BUTTON_ ПИН , плус нагоре, +35)се однесуваме на променливата plusUpдвапати. Затоа што = ја става вредноста на десниот операнд во левиот операнд, прво се оценува, што ќе се врати handleClick. Значи, кога ќе и го предадеме plusUpкако параметар сè уште ја има старата вредност пресметана во последниот повик handleClick .
  • Внатре handleClickние пресметуваме нова вредност на светлината на LED и ја запишуваме на глобална променлива осветленост, кој при секое повторување јамкаедноставно се пренесува на аналог Напиши .

ПРАШАЊА ЗА ДА СЕ ПРОВЕРИТЕ

  1. Што значи клучниот збор празнина ?
  2. Како се однесува програмата кога истата променлива се споменува на различни страни на операторот за доделување = ?

ЗАДАЧИ ЗА НЕЗАВИСНО РЕШЕНИЕ

  1. Изменете го кодот на таков начин што чекорот за промена на осветленоста ќе биде конфигуриран на едно место.
  2. Направете друга функција и препишете го кодот, така што едната функција е одговорна за следење на кликовите, а другата е одговорна за пресметување на осветленоста на ЛЕР и враќање на аналог Напиши .

Сега да се справиме со повеќебојна ЛЕР, која често се нарекува скратено: RGB LED. RGB е кратенка која означува: Црвено - црвено, Зелено - зелено, Сино - сино. Односно, три посебни LED диоди се поставени во овој уред одеднаш. Во зависност од видот, RGB LED може да биде или заедничка катода или заедничка анода.

1. Мешање на бои

Зошто RGB LED е подобар од три обични? Се работи за својството на нашата визија да меша светлина од различни извори поставени блиску еден до друг. На пример, ако ставиме сини и црвени LED диоди една до друга, тогаш на растојание од неколку метри нивниот сјај ќе се спои, а окото ќе види една виолетова точка. И ако додадеме и зелено, тогаш точката ќе ни изгледа бела. Така функционираат компјутерските монитори, телевизорите и надворешните екрани. ТВ матрицата се состои од посебни точки со различни бои. Ако земете лупа и погледнете низ неа во вклучениот монитор, тогаш овие точки може лесно да се видат. Но, на надворешниот екран, точките не се поставени многу цврсто, за да може да се разликуваат со голо око. Но, од далечина од неколку десетици метри, овие точки не се разликуваат. Излегува дека колку погусти се разнобојните точки една до друга, толку помало растојание му треба на окото за да ги измеша овие бои. Оттука и заклучокот: за разлика од трите самостојни LED диоди, мешањето на боите на RGB LED е веќе забележливо на растојание од 30-70 cm. Патем, RGB LED со мат леќа се покажува уште подобро.

2. Поврзување на RGB LED со Arduino

Бидејќи LED со повеќе бои се состои од три обични, ние ќе ги поврземе одделно. Секоја LED е поврзана со свој излез и има свој посебен отпорник. Во упатството, ние користиме заедничка катодна RGB LED, така што ќе има само една жица за заземјување. дијаграм на колото
Изглед на распоред

3. Програма за контрола на RGB LED

Ајде да составиме едноставна програма, кој за возврат ќе ја осветли секоја од трите бои. конст бајт rPin = 3; конст бајт gPin = 5; конст бајт bPin = 6; void setup() ( pinMode(rPin, OUTPUT); pinMode(gPin, OUTPUT); pinMode(bPin, OUTPUT); ) void loop() ( // исклучи сино, вклучи црвено digitalWrite(bPin, LOW); digitalWrite( rPin, HIGH); одложување (500); // исклучете црвено, вклучете зелено дигиталноWrite(rPin, LOW); digitalWrite(gPin, HIGH); одложување (500); // исклучете зелено, вклучете сино дигиталноWrite(gPin , LOW); digitalWrite( bPin, HIGH); одложување (500); ) Ја вчитуваме програмата на Arduino и го набљудуваме резултатот. Вашиот прелистувач не ја поддржува ознаката за видео. Ајде малку да ја оптимизираме програмата: наместо променливите rPin, gPin и bPin ќе користиме низа. Ова ќе ни помогне во следните задачи. const бајт rgbPins = (3,5,6); void setup() ( за (бајт i=0; i<3; i++) pinMode(rgbPins[i], OUTPUT); } void loop() { digitalWrite(rgbPins, LOW); digitalWrite(rgbPins, HIGH); delay(500); digitalWrite(rgbPins, LOW); digitalWrite(rgbPins, HIGH); delay(500); digitalWrite(rgbPins, LOW); digitalWrite(rgbPins, HIGH); delay(500); }

4. Седум бои на виножитото

Сега да се обидеме да запалиме две бои во исто време. Ајде да ја програмираме следната низа на бои:
  • црвено
  • црвено + зелено = жолто
  • зелена
  • зелена + сина = цијан
  • сина боја
  • сина + црвена = виолетова
Ја испуштивме портокаловата боја заради едноставност. Значи, има шест бои на виножитото 🙂 составен бајт rgbPins = (3,5,6); Const byte виножито = ( (1,0,0), // црвено (1,1,0), // жолто (0,1,0), // зелено (0,1,1), // сино ( 0,0,1), // сина (1,0,1), // виолетова ); void setup() ( за (бајт i=0; i<3; i++) pinMode(rgbPins[i], OUTPUT); } void loop() { // перебираем все шесть цветов for(int i=0; i<6; i++){ // перебираем три компоненты каждого из шести цветов for(int k=0; k<3; k++){ digitalWrite(rgbPins[k], rainbow[i][k]); } delay(1000); } } В результате работы программы получается: Your browser does not support the video tag.

5. Мазна промена на бојата

Свесно поврзавме RGB LED на пиновите 3, 5 и 6. Како што знаете, овие пинови ви дозволуваат да генерирате PWM сигнал со различни работни циклуси. Со други зборови, не само што можеме да ја вклучиме или исклучиме ЛЕР, туку и да го контролираме нивото на напон на неа. Ова е направено со помош на функцијата аналог Напиши. Ајде да го направиме тоа така што нашата LED ќе се префрла помеѓу боите на виножитото не нагло, туку непречено. const бајт rgbPins = (3,5,6); int dim = 1; void setup() ( за (бајт i=0; i<3; i++){ pinMode(rgbPins[i], OUTPUT); } // начальное состояние - горит красный цвет analogWrite(rgbPins, 255); analogWrite(rgbPins, 0); analogWrite(rgbPins, 0); } void loop() { // гасим красный, параллельно разжигаем зеленый for(int i=255; i>=0; i--)( analogWrite(rgbPins, i/dim); analogWrite(rgbPins, (255-i)/dim); delay(10); ) // исклучете зелено, вклучете сино паралелно за(int i=255 ; i> =0; i--)( analogWrite(rgbPins, i/dim); analogWrite(rgbPins, (255-i)/dim); одложување(10); ) // исклучете сино, вклучете црвено паралелно for(int i=255; i>=0; i--)( analogWrite(rgbPins, i/dim); analogWrite(rgbPins, (255-i)/dim); delay(10); ) ) Променливата dim одредува осветленоста на сјајот. Со затемнување = 1, имаме максимална осветленост. Се вчитува програмата на Arduino. Вашиот прелистувач не ја поддржува ознаката за видео.

Задачи

  1. Индикатор за температура. Ајде да додадеме термистор на колото и да го поврземе со аналогниот влез. ЛЕР треба да ја менува бојата во зависност од температурата на термисторот. Колку е помала температурата, толку повеќе сина боја, а колку е повисока, толку повеќе црвено.
  2. RGB светилка со регулатор. Ајде да додадеме три променливи отпорници на колото и да ги поврземе со аналогните влезови. Програмата треба постојано да ги чита вредностите на отпорот и да ја менува бојата на соодветната RGB LED компонента.

Во овој пример, ќе научите како да ја промените осветленоста на LED со помош на отпорници со различни отпори.

За овој пример, ќе ви треба

1 LED со дијаметар од 5 mm

Отпорник 1 x 270 оми (црвена, виолетова, кафеава)

Отпорник 1 x 470 оми (жолта, виолетова, кафеава)

Отпорник 1 x 2,2 kΩ (црвена, црвена, црвена)

Отпорник 1 x 10 kΩ (кафеава, црна, портокалова)

LED диоди - општи информации

LED диодите се одлични во уреди за различни видови индикации. Тие трошат малку електрична енергија и се издржливи.

Во овој пример, ги користиме најчестите LED диоди со дијаметар од 5 mm. Чести се и LED диоди со дијаметар од 3 милиметри, а големите LED диоди со дијаметар од 10 mm.

Не се препорачува директно поврзување на ЛЕР со батерија или извор на напон. Прво, прво мора да откриете каде точно се наоѓаат негативните и позитивните нозе на ЛЕР. Па, второ, неопходно е да се користат отпорници со ограничување на струјата, инаку ЛЕР ќе изгори многу брзо.

Ако не користите отпорник со ЛЕД, ЛЕР ќе пропадне многу брзо бидејќи преку него ќе тече премногу струја. Како резултат на тоа, ЛЕР ќе се загрее и контактот што генерира светлина ќе биде уништен.

Постојат два начини да се направи разлика помеѓу позитивните и негативните краци на ЛЕР.

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

Вториот - на влезот во куќиштето на самата диода, има рамен раб на приклучокот на негативната нога.

Ако наидете на ЛЕР што има рамен раб на подолгата нога, долгата нога е сепак позитивна.

Отпорници - општи информации

Resist - отпор (англиски)

Како што сугерира името, отпорниците се спротивставуваат на протокот на електрична енергија. Колку е поголема вредноста (Ом) на отпорникот, толку е поголем отпорот и помала струја ќе помине низ колото во кое е инсталиран. Ова својство на отпорници ќе го користиме за да ја регулираме струјата што минува низ ЛЕР а со тоа и нејзината осветленост.

Но, прво, да разговараме малку за отпорниците.

Единицата во која се мери отпорот е Ом, што во многу извори се означува со грчката буква Ω - Омега Бидејќи Ом е мала вредност на отпорот (речиси незабележлива во колото), ние често ќе работиме со единици како што се kOhm - килоом ( 1000 Ом) и MΩ мегаоми (1000000 оми).

Во овој пример, ќе користиме отпорници со четири различни вредности: 270 Ω, 470 Ω, 2,2 kΩ и 10 kΩ. Овие отпорници се со иста големина. Боја исто така. Единственото нешто што ги разликува се обоените риги. Од овие ленти визуелно се одредува вредноста на отпорниците.

За отпорници кои имаат три обоени ленти, а последната е златна, функционираат следните кореспонденции:

Браун 1

Црвено 2

Портокал 3

Зелена 5

Виолетова 7

Првите две ленти ги означуваат првите 2 нумерички вредности, така што црвената, виолетова значи 2, 7. Следната лента е бројот на нули што мора да се стават по првите две цифри. Тоа е, ако третата лента е кафеава, како на фотографијата погоре, ќе има една нула, а вредноста на отпорот е 270 Ω.

Отпорник со кафени, црни, портокалови ленти: 10 и три нули, значи 10000 Ω. Тоа е, 10 kΩ.

За разлика од LED диодите, отпорниците немаат позитивни и негативни нозе. Која нога да ги поврзете со напојувањето / земјата - не е важно.

Дијаграм за поврзување

Поврзете се според дијаграмот подолу:

Arduino има пин од 5V за напојување на периферни уреди. Ќе го користиме за напојување на ЛЕР и отпорник. Не ви треба ништо друго од плочата, само поврзете ја преку USB на вашиот компјутер.

Со отпорник од 270 Ω, ЛЕР треба да биде доволно светла. Ако го замените отпорот од 270 Ω со отпорник од 470 Ω, ЛЕР нема да свети толку светло. Со отпорникот од 2,2 kΩ, ЛЕР треба да се затемни малку повеќе. На крајот, со отпорник од 10 kΩ, ЛЕР едвај ќе се гледа. Многу е веројатно дека за да ја видите разликата во последниот чекор, ќе треба да го извлечете црвениот адаптер, користејќи го како прекинувач. Потоа можете да ја видите разликата во осветленоста.

Патем, можете да го спроведете овој експеримент со исклучени светла.

Различни опции за инсталирање отпорник

Во моментот кога 5V е приклучено на едната нога од отпорникот, втората нога на отпорникот е поврзана со позитивната нога на ЛЕР, а втората нога на ЛЕР е поврзана со земјата. Ако го поместиме отпорникот така што ќе биде зад ЛЕР, како што е прикажано подолу, ЛЕР и понатаму ќе свети.

Трепка LED

Можеме да поврземе LED на излезот Arduino. Поместете ја црвената жица од иглата за напојување од 5V на D13 како што е прикажано подолу.

Сега преземете го примерот „Blink“ што го разгледавме. Ве молиме имајте предвид дека и вградените и надворешните LED диоди што ги инсталиравте почнаа да трепкаат.

Ајде да пробаме друга игла на Arduino. Да речеме D7. Поместете го конекторот од пинот D13 на пинот D7 и променете ја следнава линија од вашиот код:

Поставете ја изменетата скица на Arduino. ЛЕР ќе продолжи да трепка, но овој пат ќе користи напојување од пинот D7.

Во претходните лекции, се запознавме со наједноставните шеми - склопување и. Денеска склопуваме модел со потенциометар (променлив отпорник) и ЛЕД. Таков модел може да се користи за контрола на роботот.

Потенциометаре променлива прилагодлив отпорник.Потенциометрите се користат во роботиката како регулатори на различни параметри - јачина на звук, моќност, напон итн. Во нашиот моделсо вртење на копчето за потенциометарќе зависи од осветленоста на ЛЕР. Тоа е исто така една од основните шеми.

Видео инструкција за склопување на моделот:

За да го составиме моделот, ни требаат:

  • Ардуино плоча (или еквиваленти);
  • Даска за леб;
  • 6 жици и/или џемпери „машко-машко“;
  • Диоди кои емитуваат светлина;
  • потенциометар (променлив отпорник);
  • Отпорник од 220 оми;
  • Arduino IDE, кој може да се преземе од веб-страницата на Arduino.

Што ви е потребно за да поврзете потенциометар и LED со Arduino?

Дијаграм за поврзување на моделот Arduino со потенциометар и LED:

Дијаграм за поврзување на моделот Arduino со потенциометар и LED

Следната програма ќе работи за овој модел (едноставно можете да ја копирате програмата во Arduino IDE):

// дајте имиња на пиновите со LED
// и потенциометар
#define led 9
#дефинирај тенџере А0
Поставување празнина ()
{
// игла со LED - излез
pinMode(led, OUTPUT);
// игла со потенциометар - влез
pinMode (тенџере, ВЛЕЗ);
}
празнина јамка ()
{
// декларирај променлива x
intx;
// прочитајте го напонот од потенциометарот:
// ќе добие број од 0 до 1023
// поделете го со 4, добијте број во опсегот
// 0-255 (фракционо ќе биде отфрлено)
x = аналогноЧитај(тенџере) / 4;
// го даваме резултатот на ЛЕР
analogWrite(led, x);
}

Вака изгледа склопениот модел Arduino потенциометар со LED:

Arduino модел со склопен потенциометар и LED

Ова ја завршува третата лекција „Arduino за почетници“ Продолжува!

Објави од лекцијата:

  1. Прва лекција:.
  2. Втора лекција: .
  3. Трета лекција: .
  4. Четврта лекција: .
  5. Петта лекција: .
  6. Шеста лекција: .
  7. Седма лекција: .
  8. Осми час: .
  9. Деветта лекција:

Ајде да пробаме нова задача. Мислам дека сите имаат видено новогодишни венци за прикажување, во кои LED диодите непречено трепкаат. Да речеме дека сакаме да направиме нешто слично.
Веќе ја разгледавме функцијата digitalWrite() и знаеме дека вредноста што ја пишува може да биде од две опции - висока или ниска. Во овој случај, функцијата analogWrite() ќе ни помогне. „Формулациите“ на функциите се разликуваат само во почетните префикси, така што лесно се паметат.

Функцијата analogWrite(), како digitalWrite(), содржи два аргументи во загради и работи според истиот вербален принцип: „каде, што“. Главната разлика е во способноста да се напише широк опсег на вредности наместо вообичаените НИСКИ или ВИСОКИ. Ова ќе ни овозможи да ја прилагодиме осветленоста на ЛЕР. Главната забелешка што треба да се земе предвид е дека оваа функција работи само на одредени контакти. Овие пинови се означени со „~“. Овој симбол значи дека ова е PWM контакт. PWM (модулација со ширина на пулсот) звучи на руски како PWM (модулација со ширина на пулсот). Принципот на работа се заснова на промена на времетраењето на пулсот. Графички, ова може да се претстави на следниов начин:

Ајде да се обидеме да разбереме како функционира со гледање на едноставен пример. За да го направите ова, треба да го поврзете LED-от со контактот PWM преку отпорник од 150 оми и да „шиете“ едноставна програма во Arduino. Дијаграмот за поврзување и кодот за скица се прикажани подолу:


Поставување празнина ()
{
pinMode (led, OUTPUT);
}

празнина јамка ()
{
за (int i=0; i<=255; i++)
{
analogWrite(led,i);
одложување (10);
}
за (int i=255; i>=0; i--)
{
analogWrite(led,i);
одложување (10);
}
}


Мислам дека генерално кодот е јасен, но потребно е да се обрне малку внимание на јамката за (). Постои такво нешто како дозвола. Бидејќи работиме со 8-битна резолуција (за ова ќе се дискутира малку подоцна), минималната вредност ќе одговара на 0, а максималната - 255. На крајот од секое повторување, го поставуваме временското доцнење на 10 ms.

Да се ​​вратиме на дијаграмот од претходната лекција и да се обидеме да направиме слична венец користејќи ја функцијата analogWrite().


int buttonPin = 2;
int пинови = (3,5,6,9,10,11);

булово последно копче = НИСКО;
булова струја Копче = НИСКО;
булова овозможување=неточно;

Поставување празнина ()
{
pinMode (копчеPin, INPUT);
for(int режим = 0; режим<= 5; mode++) pinMode(pins, OUTPUT);
}

булово отскокнување (булово последно)
{
булова струја = digitalRead (копчеПин);
ако (последно != актуелно)
{
одложување (5);
струја = дигитално читање (копчеПин);
}
повратна струја;
}

празнина јамка ()
{
currentButton = debounce(lastButton);
ако (последно копче == НИСКО && тековно копче == ВИСОКО)
{
овозможи = !овозможи;
}

Ако (овозможи == точно)
{
за (int i=0; i<=5; i++)
{
за (int осветленост = 0; осветленост<= 255; brightness++)
{
одложување (1);
}
одложување (40);
}
за (int i=0; i<=5; i++)
{
за (int осветленост = 255; осветленост >= 0; осветленост--)
{
analogWrite(иглички[i], осветленост);
одложување (1);
}
одложување (40);
}
}

Ако (овозможи == неточно)
{
за (int i = 0; i<= 5; i++) digitalWrite(pins[i], LOW);
}

LastButton = тековно копче;
}


Визуелно, скицата стана нешто посложена. Всушност, сè е едноставно овде и ајде да го сфатиме. Треба да ги идентификуваме сите поврзани LED диоди, но наместо вообичаеното int led, користиме низа, чиј секој елемент е PWM пин на Arduino. Во телото на функцијата void setup(), постапивме и на незгоден начин. „Набројувањето“ на сите контакти го доверивме на јамката за (), со секое повторување, соодветниот контакт е конфигуриран на OUTPUT. Ајде да преминеме на функцијата void loop(). Функцијата debounce() и почетната состојба if() остануваат непроменети. Сè уште ги проверуваме нивоата на две променливи: претходната вредност (на почетокот LOW) и моменталната состојба на копчето. Кога овие услови се исполнети, вредноста на променливата за овозможување се превртува. Имајќи го тоа на ум, додадовме уште два едноставни if() услови. Ако овозможи = точно, тогаш венецот е вклучен, чијшто „проток“ се контролира со јамката за (). Ако овозможи = неточно, тогаш сите LED диоди се исклучени. На крајот од условите, променливата lastButton ја зема моменталната состојба на копчето.
Додека ја тестиравме нашата програма, забележавме дека сè не работи како што треба. Запомнете, во последната лекција направивме амандман дека со голема вредност на временското доцнење, копчето работи откако ќе истече? Во претходниот пример, со вклучена венец, вкупното доцнење во телото на функцијата void loop() беше 85ms. Ова ни даде можност да имаме време да „добиеме“ во одреден временски период. Во оваа скица, под ист услов, доцнењето се разликува неколку пати. Можеби, ако сакате да ја исклучите венец, зборот „прекини“ се сугерира сам по себе. Ова ќе биде решение за овој проблем!

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




Врв