Ардуинодан бағдаршамға арналған бағдарлама. Arduino-да бағдаршам сигналы. Қарапайым екі түсті бағдаршам

Бұл сабақта біз ең қарапайымын жасаймыз үш жарықдиодты бағдаршам. Ол осы схемаға сәйкес жұмыс істеуі керек.

1. Тек қызыл шам жарқырайдыбіздің болашақ бағдаршам.

2. Бағдаршамның қызылын өшірмей, сарысын қосыңыз.

3. Өшіріңіз қызыл және сары жасыл түске айналады.

4. Жасыл бағдаршамды өшіріп, сарысын қосыңыз.

Содан кейін біз қызыл бағдаршамнан циклды қайталаймыз.

Сабақ үшін бізге қажет:

Үш жарықдиодты тақтаға қосамыз Arduino UNO. Біз бұл диаграмманы аламыз.

Схематикалық диаграмма.


Эскиз осылай көрінеді

Int led_red = 2; // қосылым пин 2 int led_yellow = 3; // қосылым пин 3 int led_green = 4; // 4-қосылымды орнату жарамсыздығы() ( pinMode(led_red, OUTPUT); pinMode(жарықдиодты_сары, OUTPUT); pinMode(жарықдиодты_жасыл, OUTPUT); ) void цикл() (digitalWrite(led_red, HIGH); кідіріс(10000); / / DigitalWrite (led_yellow, HIGH) күтуде (led_green, HIGH); кідіріс(2000);

Жарық диодтарды басқару үшін біз функцияларды қолданамыз .

ауыстырайық стандартты функциялар Led() функциясына.

Жарық диодты жарамсыз (uint8_t пин, байт күйі) ( digitalWrite (pin, күй); )

Функция екі айнымалы мәнді қабылдайды pin - жарық диодының істікшесі және күй - ЖШД күйі немесе.

Нәтижесінде біз бұл эскизді аламыз:

Int led_red = 2; // қосылым пин 2 int led_yellow = 3; // қосылым пин 3 int led_green = 4; // қосылым пин 4 жарамсыз орнату() ( pinMode(жарықдиодты_қызыл, OUTPUT); pinMode(жарықдиодты_сары, OUTPUT); pinMode(жарықдиодты_жасыл, OUTPUT); ) жарамсыз цикл() ( Жарық диодты (жарық диодты_қызыл, HIGH); кідіріс(10000); / / Күту шамы (LED_sarı, 2000 күтуде); void LED (uint8_t пин, байт күйі) ( digitalWrite(pin, status); )

Эскизден көріп отырғаныңыздай, код үлкенірек болды және функцияларыкод көлемін азайту және логиканы жеңілдету үшін қолданылады. Бірақ бұл қарапайым мысалда біз функцияның не екенін және айнымалы мәндерді функцияларға қалай беру керектігін қарастырдық даму ортасы.

Оның не екендігі туралы түсінік функцияларыжәне оларды қалай жариялау бізге келесі сабақта пайдалы болады.

Егер сізде сұрақтар туындаса, Arduino-дағы бағдаршам бағдарламасын егжей-тегжейлі сипаттайтын бейнені қараңыз.

Сонымен, сіз «Даре» сериясындағы Arduino құрылыс жинақтарының бірінің мақтаныш иесісіз («Негізгі», «Ардуиноны үйрену» және « Ақылды үй"), Сіз тақтаны қосып, Arduino IDE ішіндегі бірінші мысалды іске қостыңыз - Arduino үшін "Сәлем, әлем" (кіріктірілген жарық диоды жыпылықтайды). Жақсы, сіз Arduino негізіндегі жобалар үшін әзірлеуші-суретші ретінде алғашқы қадамды жасадыңыз. Енді біз күрделірек және одан да көп нәрсені бірге қарастырамыз пайдалы жобақұру қосулы Arduino негізделгенекі бағдаршамСіз жасаған роботтар қозғала алатын жолдың қиылысы үшін.
Құрастыру үшін Arduino бағдаршамыСізге Arduino жинақтарының әрқайсысына кіретін келесі бөліктер қажет:

  1. Arduino Uno;
  2. USB кабелі;
  3. Прототиптік тақта;
  4. Еркек сымдар - 7 дана;
  5. Резисторлар 220 Ом – 6 дана;
  6. Қызыл жарық диодтары – 2 дана;
  7. Жасыл жарықдиодты шамдар – 2 дана;
  8. Сары жарықдиодты шамдар – 2 дана.

Жарықдиодты түрлендіретін жартылай өткізгіш құрылғы электр тоғытікелей жарық сәулесіне айналады. Жарықдиодты шамдардың түс сипаттамалары онда қолданылатын жартылай өткізгіштің химиялық құрамына байланысты. Жарық диодты шам спектрдің тар бөлігінде сәуле шығарады. Arduino бағдаршам жобасында біз бағдаршамның үш түсіне сәйкес келетін жарықдиодтардың үш түсін (жасыл, сары, қызыл) қолданамыз.
Жарық диодты шамдар поляризацияланған, оларды қай бағытта жалғайтыныңыз маңызды. Жарық диодтың оң өткізгіші (ұзынырақ) анод деп аталады, теріс өткізгіш катод деп аталады. Барлық диодтар сияқты, жарық диодтары токтың тек бір бағытта - анодтан катодқа өтуіне мүмкіндік береді. Ток оңнан теріске қарай өтетіндіктен, жарық диоды анодын қосу керек сандық сигнал 5В, ал катод жерге қосылуы керек.
Бірінші бағдаршамның жарық диодтарын D7, D8, D9 цифрлық түйреуіштеріне, ал екінші бағдаршамның жарық диодтарын Arduino тақтасының D10, D11, D12 сандық түйреуіштеріне қосамыз. Жарықдиодты шамдар әрқашан ток шектеушісі ретінде әрекет ететін резистормен тізбектей қосылуы керек. Резистордың мәні неғұрлым жоғары болса, соғұрлым ол токты шектейді. Бұл тәжірибеде біз 220 Ом резисторды қолданамыз.
1-суретте көрсетілген схеманы құрастырамыз.

Сурет 1. Жарық диодты қосу схемасы

Енді нобай жазуды бастайық. Сабақтың бірінші бөлімінде бір бағдаршамның жұмысының нобайын жазамыз.
Біз бағдаршамның келесідей жұмыс істейтінін білеміз: жасыл шам (жасыл жарық диоды) біраз уақыт «қосулы», содан кейін жасыл «қосулы» болғанда сары жыпылықтайды, содан кейін қызыл жанады, содан кейін қызыл «қосулы» болғанда сары жыпылықтайды. содан кейін шеңберде. Жасыл, сары және қызыл жарық диодтарының «жану» уақыты (миллисекундпен) және сары жарық диодының жыпылықтау жиілігі тұрақты мәндерге енгізіледі.

#УАҚЫТ_ЖАСЫЛ 10000 анықтау #УАҚЫТ_ҚЫЗЫЛ 10000 анықтау #УАҚЫТ_САРЫ 3000 #анықтау TIME_BLINK 300

Тұрақтылар мен түйреуіштерге бағдаршам қосылымдарын қосамыз (бұл мысалда біз бір бағдаршамды қарастырамыз)

#PIN кодын анықтаңыз_ЖАСЫЛ1 7 #PIN кодын анықтаңыз _ҚЫЗЫЛ 9 #PIN_САРЫ 8 анықтаңыз

Сондай-ақ, сары жарық диодының жыпылықтауын ұйымдастыру үшін қолданатын жыпылықтайтын сары (логикалық түрдегі) айнымалысын жасайық (жыпылықтау сары=шын - ЖШД «қосулы», жыпылықтау сары=жалған – ЖШД «өшірулі»). Өздеріңіз білетіндей, Arduino сандық түйреуіштері кіріс және шығыс ретінде жұмыс істей алады. Сандық шығыстың жұмыс режимі pinMode() пәрменімен орнатылады. Setup() процедурасында біз жарық диодтары шығыс ретінде қосылған барлық Arduino түйреуіштерін конфигурациялаймыз және оларға LOW мәнін орнатамыз (яғни, жарық диодтарын өшіріңіз).

// Arduino түйреуіштерін шығыстар ретінде конфигурациялау pinMode(PIN_GREEN1, OUTPUT); pinMode(PIN_YELLOW1, OUTPUT); pinMode(PIN_RED1, OUTPUT); // және барлық жарық диодтарын өшіріңіз digitalWrite(PIN_GREEN1, LOW); digitalWrite(PIN_YELLOW1, ТӨМЕН); digitalWrite(PIN_RED1, ТӨМЕН);

Loop() процедурасында біз бағдаршамды іске қосамыз. Қызыл және жасыл жарық диодтары мен сары жыпылықтау ұзақтығы delay() функциясы арқылы орнатылады.
Сары жарық диодты жыпылықтау үшін ұзақтығы TIME_YELLOW және TIME_BLINK қадамы бар for циклін қолданамыз. blinkyellow= !blinkyellow командасы арқылы біз blinkyellow айнымалысының мәнін керісінше өзгертеміз және сары жарық диоды күйін өзгертеміз.

For(int i=0;i

Arduino IDE-де жаңа эскиз жасайық, оған 1-тізімдегі кодты қосып, эскизді Arduino тақтасына жүктеңіз. Arduino IDE параметрлерінде тақта түрін (Arduino UNO) және тақтаға қосылу портын таңдау керек екенін еске саламыз.
Листинг 1

// Жарық диодты шамдарды қосуға арналған Arduino істіктері #define PIN_GREEN1 7 #define PIN_YELLOW1 8 #define PIN_YELLOW1 8 #define PIN_RED1 9 // LED жану уақытын мс-пен // жасыл #анықтаңыз TIME_GREEN 5000 // қызыл #анықтаңыз TIME_RED 5000 TIME //_0 #Y03 //0 периодты анықтау сары жыпылықтау #define TIME_BLINK 300 // ауыспалы сары жыпылықтайтын логикалық жыпылықтау айнымалысы blinkyellow=true; void setup() ( // Arduino түйреуіштерін шығыс ретінде орнату pinMode(PIN_GREEN1, OUTPUT); pinMode(PIN_YELLOW1, OUTPUT); pinMode(PIN_RED1, OUTPUT); // және барлық жарық диодтарын өшіріңіз digitalWrite(PIN_GREEN1, digitalri); (PIN_YELLOW1, LOW); // цикл функциясы қайта-қайта жұмыс істейді. сары - үшін жыпылықтайды(int i=0;i

Жүктегеннен кейін біз бағдаршамның жұмысын бақылаймыз (2,3,4-суретті қараңыз). TIME_GREEN , TIME_RED , TIME_YELLOW константаларының мәндерін өзгерту арқылы біз әрбір жарық диодының «жану» уақытын TIME_BLINK тұрақтысы арқылы сары жарық диодының жыпылықтау кезеңін реттейміз;


Барлығына қайырлы күн)) Бұл мақалада мен сіз қалай істеуге болатыны туралы мүмкіндігінше анық айтуға тырысамын нағыз бағдаршамның макети. Егер сіздің балаңыз көліктермен айналысқанды ұнатса, оның ойын процесіне шындықты қосу, сонымен қатар бұл әрекетті одан да қызықты, қызықты және қызықты ету қиын емес! Ендеше бағдаршам жасайық! Сонымен, кеттік!

Бізге қандай материалдар қажет:
Толкушка (біз оны өнертабыстың негізі ретінде қолданамыз!)


Акварельге арналған парақтар (картонды немесе кез келген басқа қалың қағазды пайдалануға болады)


Фольга (Мен кәдімгі глазурленген ірімшік торттарын қолдандым)


Жарықдиодты шамдар (үш түсті: қызыл, сары, жасыл)


Резисторлар (кедергі 220 Ом)


Сымдар


Arduino контроллері


Біз қолданатын құралдар:
Қол бұрғы (жұқа бұрғылары бар)
Бұрауыш
Өздігінен бұрап тұратын бұрандалар
Степлер
Пышақ


Дәнекерлеу үтік (дәнекер, флюс)


Негізінде, солай, енді макетімізді құрастыру процесін бастайық. Барлығын 3 үлкен қадамға бөлейік...

№1 қадам «Визорларды» құрастыру
Алдымен біз қағаздан бағдаршамның қалқаларын жасаймыз. Оны қарындашпен сызыңыз және оны қайшымен кесіңіз (фотосуреттегі сандар сантиметрдегі ұзындық).


Бланкымызды бүктеу арқылы біз күнқағар аламыз..


Бірақ жарықдиодты шамдар шығаратын жарық мүмкіндігінше жарқын көрінуі үшін ішкі бетке фольга жабыстырылуы керек.
Алдымен біз оны визор сияқты дәл сол пішінде кесеміз (пышақпен), содан кейін екі материалды да кәдімгі степлермен бекітеміз.


Фотосуретте (төменде) мен қара жолақтармен бекіткен жерімді көрсеттім...


Осыдан кейін біз дайындамамызды орап, қалған бүйір бөліктерін бекітеміз.



Біз бүкіл процесті үш рет қайталаймыз, өйткені бізде үш визор болуы керек!

Қадам № 2 «Визорларды» бекіту
Бұрғылау арқылы біз ұсатқыштағы қалқаларымыз үшін тесіктерді бұрғылаймыз.


Визордың артқы жағында біз екі тесік жасаймыз: кішірек - өздігінен бұрап тұратын бұранда үшін, үлкенірек - жарықдиодты үшін.


Біз жарықдиодты шамдарды артқы жағынан өткізіп, қалқаларды итергішке бұраймыз. Әзірге біз жарықдиодты шамдардың аяқтарын бүйірлеріне бүгеміз.. Тағы да, біз әрбір визор үшін бәрін қайталаймыз.


№3 қадам «Электроника»
Біз светодиодтардың катодтарын (олардың негізін) бірге дәнекерлейміз. Катодтың қысқа аяқ екенін еске салайын)



Біз жалпы негізді микроконтроллердің GND ішіне енгіземіз.
Енді қалған үш сымды алып, оларды резисторларға дәнекерлейміз.


Біз сымдарды Arduino контактілеріне қосамыз (мен 2, 3, 4 түйреуіштерді алдым) және резисторлардың ұштарын светодиодтардың анодтарына дәнекерлейміз.




Енді келесісін жүктеп алу ғана қалды эскиз Arduino-да және жақындарыңызды қолөнеріңізбен қуантыңыз!
логикалық k = 0; void setup() ( pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); ) void цикл() ( digitalWrite(2,1); digitalWrite(3,0); digitalWrite(4,) 0 кідіріс(3500) for(int i = 0; i<6; i++) { digitalWrite(2, k); k = !k; delay(800); } digitalWrite(2,0); digitalWrite(3,1); digitalWrite(4,0); delay(3500); for(int i = 0; i<6; i++) { digitalWrite(3, k); k = !k; delay(800); } digitalWrite(2,0); digitalWrite(3,0); digitalWrite(4,1); delay(3500); for(int i = 0; i<6; i++) { digitalWrite(4, k); k = !k; delay(800); } }
Эскизді өңдеңіз және өзіңіздің жыпылықтау уақыты мен кідірісіңізді орнатыңыз!

Дачжелдордың барлық жақтастарына, энтузиастарына, жанашырларына және нұрын көруге келгендерге зор денсаулық!)))

Өткен жылы біз бастаған ауылдық теміржол көлігін бағдаршаммен реттеу тақырыбы осы мәселеге жаңа қатысушылар мен жаңа көзқарастарға ие болып, жаңа жылға бірқалыпты енуде. Ал бүгін мәскеулік Анатолий осы тақырыпқа қатысты тұтас зерттеуді жұртшылыққа ұсынып отыр. Тұрақты оқырмандар оны бізбен бірге Accelero лақап атымен жариялаған пікірлерінен біледі.

Шынымды айтсам, біз - Сергей (нашпоезд) және сіздің кішіпейіл қызметшіңіз - авторға саяжайшылардың қажеттіліктері туралы, Сергей екеуміздің жол пайдалану тәжірибесі туралы және оларды одан әрі дамытуға қатысты жоспарларымыз туралы аздап кеңес бердік. .

Сәлеметсіздер ме, құрметті Дазжелдориттер!

Мен өзім бұл қозғалысқа енді ғана араласып жатырмын және өзімнің темір жолым әлі жоспарымда бар, бірақ мен көктемді күтпей-ақ жүзеге асыра алатын нәрседен бастауды жөн көрдім. Таңдау автоматты бағдаршамға түсті. Мен радиоәуесқой болғандықтан және жақында белгілі arduino модульдерін қолдана отырып, әртүрлі құрылғыларды құрастырғандықтан, олар негізге алынды. Таңдау arduino nano-ға түсті, өйткені ол біздің мақсаттарымызға ең қолайлы, орнату оңай және бортында USB-TTL адаптері бар (мен негізінен arduino pro mini қолданамын, бірақ адаптер жоқ, бұл өте ыңғайлы емес, бірақ бағасы үштен төмен).

Менің жүйем жолдың толтырылу күйін екі контактіні дәйекті жабу арқылы анықтайды, олар шекті ажыратқыштар түрінде және қамыс қосқыштар түрінде болуы мүмкін немесе арба корпусымен жабылған контактілі түйреуіштер болуы мүмкін. Орналасуда менде қағаз қыстырғыштардан жасалған контактілер бар. Бұл мақала жазылған кезде мен опцияны қамыс қосқыштарымен сынап көрдім - бәрі тамаша жұмыс істейді. Дәл екі байланыс тобын пайдаланудың мәні жылжымалы құрамның (бұдан әрі – жылжымалы құрам) қозғалыс бағытын анықтау болып табылады, яғни жылжымалы құрамның бір бағытта қанша рет өтетініне қарамастан (айлық қосқыш және әрқайсысы автомобиль контактілерді жабады), бағдаршам қажетті сигналды көрсетеді. Дәл осындай жүйенің басты артықшылығы - оны кез келген темір жолға орнатуға болады - ойыншықтан өнеркәсіпке дейін, классикалық жүйеден айырмашылығы, рельстерді доңғалақ жұптарымен жабу, бірқатар шектеулер қояды.

Жалғастырмас бұрын, ұқсас нәрсе жасағысы келетіндерге Arduino туралы оқуды және/немесе оның не екенін, немен қолданылатынын, оны компьютерге қосуды, оны қалай жыпылықтауды, қалай пайдалану керектігі туралы бейнені көруді ұсынамын. Arduino IDE және т.

Материалдың мәтіндік нұсқасы тым көлемді болатындықтан, мен өз жұмысымды бейнероликтерге бөлдім. Барлық бағдарламаларға сілтемелер (эскиздер), қажетті мәліметтер және т.б. бейне астындағы сипаттамаларда.

Сонымен, бірінші бейнеде біз ең қарапайым нұсқа - бір екі түсті бағдаршам туралы сөйлесеміз. Мұндай қарабайыр схеманы бір реледе жүзеге асыруға болатыны анық, бірақ бұл бағдарламаның логикасын түсіну үшін қажет, сондықтан болашақта оны нақты қажеттіліктеріңізге сәйкес толықтыра аласыз. Мен бағдарламашы емеспін, сондықтан мені қатты теппеңіз - мен мүмкіндігінше түсіндіремін =))

Қарапайым екі түсті бағдаршам

Мен жұмыстың логикасын жеткізе алдым деп үміттенемін)) Әрі қарайғы «қиындықтар» тек бірінші бағдарламаның қосымшалары, сондықтан оны түсінгеннен кейін оның жұмысын өзіңіздің қатты дискіңізге бейімдеуге болады. Енді келесі нұсқаға көшейік. Ол қазірдің өзінде сары сигналы бар екі бағдаршамнан тұрады, яғни саяхат бағытындағы бірінші бағдаршам екінші бағдаршамның толып кеткенін көрсетеді.

Екі үш түсті бағдаршам

Көріп отырғаныңыздай, бағдарлама қазірдің өзінде өте күрделі, бірақ ол бір қарағанда көрінуі мүмкін - оны өзіңіз өңдеген кезде бәрі әлдеқайда қарапайым. Ал, «оқиғаларды дамытудың» үшінші нұсқасы - ажыратқыштар мен бағдаршамдар. Мұнда бәрі қызықтырақ, өйткені жол екіге бөлінген және олардың екеуіне де жұмыс логикасын байланыстыру керек. Үш күн бойы мен бұл бизнесті қалай жұмыс істеуге болатынын ойладым және соңында мен бір идеяға келдім! Кейбір өрескел жиектерсіз емес, бірақ бәрібір!

Бағдаршамдар мен ажыратқыштар

Көріп отырғаныңыздай, біз бірінші бағдаршамды екіге бөлуге тура келді (бірақ бұл физикалық түрде жасалуы керек еді), бірақ соған қарамастан схема жұмыс істейді.

Бірінші бейнеде атап өткенімдей - шағын жарықдиодты шамнан күшті кез келген нәрсені ауыстыру үшін бізге реле және транзисторлар сияқты сыртқы модульдер/бөліктер қажет. Берілген контроллердің деңгейлерімен жұмыс істеуге арналған релелік модульдерді қолданған дұрыс. Ардуино нано жағдайында және іс жүзінде бүкіл желіде ол 5 вольтты құрайды. Менің бағдарламаларымда басқару үшін жоғары деңгей қолданылады (яғни шығыстарда кернеу пайда болады), сондықтан модульдерді оң басқарумен пайдалану керек, бірақ сізде теріс деңгейде жұмыс істейтін модуль болса да (логикалық нөл, шығыс жер/минус) , онда бұл да проблема емес - бағдарламаны аздап өңдеу керек. Релелік модульдер әртүрлі дизайнда сатылады - бір реле, екі, төрт, сегіз, он, он алты, тіпті 32. Екі түсті бағдаршамды басқару үшін бір реле жеткілікті. Үш түсті бағдаршам жағдайында жыпылықтауды жүзеге асыру үшін үш релені қолданған дұрыс, бірақ сіз екеуін де жеңе аласыз, өйткені релелерде үш контакт бар - орталық бір және екі шығыс, біреуі ол әдетте орталықпен жабылады, екіншісі әдетте ашық және бұл контроллердің шығыстарын қайта бағдарлама жаңартуларымен сақтау үшін пайдаланылуы мүмкін.

Arduino үшін әртүрлі датчиктер, модульдер, дәнекерлеуіштер және қосқыштар жиынтығы бар атау тақталары (кеңейткіш тақталар) бар - кез келген дәм мен түс үшін. Сіз тікелей дәнекерлеуге болады (бұл жақсырақ, өйткені түйреуіш контактілері уақыт өте келе әрекет ете бастайды) немесе модульдер мен контроллерді кабель арқылы қосуға болады. Автоматтандыру тек қиялмен және бағдарламалау мүмкіндігімен шектеледі (өкінішке орай, соңғысы мен үшін қиын) - сіз кедергілер мен кедергілерді жасай аласыз, тіпті вагонеткаларды өздері жүргізіп, бағдаршамға бағынуға болады, бірақ олар айтқандай, «бұл мүлдем басқа оқиға!»

Бұл материал пайдалы болады деп үміттенемін. Жаңа бірдеңе пайда болған кезде мен тақырыпты қосамын. Барлығына өздерінің, тіпті ең ақылсыз (заң шеңберінде =)) идеяларын жүзеге асыруда сәттілік!

Arduino. Бастау

Сәлем! Біз Arduino әлеміндегі жас жауынгерге арналған курсты бастаймыз.

Бұл бірінші деңгей. Бұл DIY электроника әлеміне енді ғана енген және оқулықтарды сағаттап қарап отырмай, ненің не екенін білгісі келетіндерге арналған. Әрине, біз теориясыз жасай алмаймыз, бірақ біз оны практикамен бірден қолдаймыз.

Қалай бастау керек

Курсты бастау үшін сізге қажет:

  1. Arduino әзірлеу ортасын жүктеп алыңыз.
  2. Өзіңізге Arduino тақтасын немесе оның баламасын алыңыз.
  3. Тақтаны компьютерге қосуды үйреніңіз.
  4. Өзіңізге ұнтақ сатып алыңыз. Барлық қажетті мәліметтер сипаттамада болады.
  5. Қателік жасаудан қорықпаңыз. Қатесіз даму болмайды.
  6. Әрине, DIY Zen тәжірибесін көргіңіз келеді.

Егер сіз энергияға толы болсаңыз, сізде қажетті компоненттер бар және сіз электроника әлемін ашуға дайын болсаңыз, қош келдіңіз!

Біздің курстың аксиомалары

Егер бірдеңе дұрыс болмаса, қуат кабелін ажыратқан дұрыс, содан кейін ғана тізбекті өзгертіңіз.

Сіз мысалды көшірмей, кодты өзіңіз жазуыңыз керек. Осылайша сіз көп нәрсені есте сақтайсыз, ал көшірсеңіз, аз ғана.

Диаграммалардағыдай сым түстерін ұстану қажет емес. Түс кез келген болуы мүмкін, ол схеманың функционалдығына әсер етпейді.

Барлық эксперименттерімізде (1-деңгей) біз ArduinoUNO және әзірлеу тақтасын қолданамыз. Олар сабақты өткізуге қажетті компоненттерде сипатталмайды. Мен оларды бірінші сабақта ғана сипаттаймын.

Біздің курста көрсетілген барлық шешімдер жалғыз дұрыс емес. Белгілі бір мәселенің басқа, ұтымды шешімін тапсаңыз, қателесіп жатырмын деп ойламаңыз. Мен Arduino-мен жұмыс істеу негіздерін және жалпы мәселелерді шешу жолдарын көрсетіп жатқанымды есте сақтаңыз. Содан кейін сіз өз қалауыңыз бойынша кодты немесе диаграммаларды қиындата/жеңілдете аласыз. Қалағаныңызды жасаңыз (әрине, ақылға қонымды)

Бірінші құрылғы

Біздің бірінші шағын жобамыз жолда өте пайдалы нәрсе - бағдаршам болады.

Бағдаршам қалай жұмыс істейтіні туралы біреу ойлады ма? Күрделі схемалар немесе электрониканың үлкен саны жоқ, тек таймер және шағын басқару тақтасы.

Біз шағын бағдаршам жасауға тырысамыз. Бұл Arduino-ны бастаудың тамаша бастамасы болады.

Бағдаршам жұмысының алгоритмі

Әрбір жоба қағаздан басталады. Ал біздікі де ерекшелік емес. Бағдаршамның жұмыс сызбасын әрекеттер тізбегі ретінде елестетейік.

Суретте көрсетілген әрекеттердің бір циклынан кейін біз оны қайта-қайта бастаймыз. Әрекеттер қатаң тәртіппен орындалады және олардың кезегі келгенше аяқталмайды. Сондықтан біз бағдарламамызды алгоритм бойынша қатаң жазуымыз керек.

Сонымен, біз алгоритмді анықтадық. Енді бағдаршамымызды құрастыруымыз керек.

Бағдаршам бөліктері

Қызыл жарық диоды 1 дана

Сары жарық диоды 1 дана

Жасыл жарық диоды 1 дана

220 Ом резистор 3 дана

Қосылатын сымдар «Ер-Ер» 7 дана

Ассамблея

Бағдаршамымызды сызба бойынша құрастырамыз. Ең бастысы - жарықдиодты шамдардың полярлығын сақтау. Жарықдиодты шам үшін анод плюс, ал катод минус болып табылады. Ұзын аяқты (анодты) түйреуіштерге жалғаңыз (Шифр - қалауыңызша түйреуіш немесе контакт.) Сондай-ақ, жарық диодтарын 13, 12 және 11 түйреуіштерге қосу керек. Жасыл - 13, сары - 12, қызыл - 11.

Код

Тамаша. Бізде шағын бағдаршам бар. Ал енді біз оны іске асыруымыз керек.

Ол үшін тақтаны бағдарламалау керек. Қорықпаңыз, бұл тапсырма қиын емес. Сізге аздап күтім қажет және бәрі жұмыс істейді. Егер сіз функциялардың нені білдіретінін және оларды неге осылай жазатынымызды білгіңіз келсе, arduino.ru сайтына кіре аласыз.

Кодты қарастырайық:

//Кейінірек біз кодты ықшам және оқылатын етіп жасауды үйренеміз, бірақ алдымен осыны анықтауымыз керек. void setup() ( pinMode(13, OUTPUT); // Бұл біздің жасыл жарық диоды, біз оны шығыс ретінде белгіледік. pinMode(12, OUTPUT); // Бұл сары pinMode(11, OUTPUT); // Бұл қызыл ) // Енді қағазға жазылған алгоритмімізді программаға аудару керек. void loop() ( digitalWrite(11, HIGH); //Қызыл жарықдиодты кешіктіруді қосыңыз(5000); //Ол жанғанша күтіңіз. digitalWrite(12, HIGH); //Сары түсті қызылмен бірге жаныңыз . жасыл digitalWrite(13, HIGH); ; digitalWrite(13, LOW) //Циклді өшіру; шексіз рет қайталанады.

Қазір бізде бағдаршам жұмыс істейді.

Азырақ код

Енді кодымыздың оқылуын арттырып, оны ықшамдауға тырысайық.

Біздің кодты қарастырайық.

// Дұрысырақ код. // Жақсырақ оқылу үшін макроанықтамалар деп аталатындарды беру керек. // Макрос анықтамасы Word бағдарламасының Табу және ауыстыру сияқты жұмыс істейді. #define GREEN 13 // 13 түйреуішті Жасыл деп белгілейік. #анықтау САРЫ 12 // 12 - Сары сияқты. #анықтау ҚЫЗЫЛ 11 // 11 - қызыл сияқты. // Бағдарлама параметрлерін орнату кезінде жұмысты жеңілдету және оқуға жақсырақ болу үшін айнымалы мәндерді жасау керек. int main_delay = 5000; // Қызыл және жасыл жану уақыты int mini_delay = 1000; // Сары жану уақыты int blink_delay = 800; // Жасыл жыпылықтау уақыты жарамсыз орнату() ( pinMode(ЖАСЫЛ, ШЫҒУ); pinMode(САРЫ, ШЫҒУ); pinMode(ҚЫЗЫЛ, ШЫҒУ); ) жарамсыз цикл() ( digitalWrite(ҚЫЗЫЛ, ЖОҒАРЫ); кідіріс(негізгі_кеші); digitalWrite (YELLOW, HIGH); 0 i< 3; i = i+1) { delay(blink_delay); digitalWrite(GREEN, HIGH); delay(blink_delay); digitalWrite(GREEN, LOW); } digitalWrite(YELLOW, HIGH); delay(mini_delay); digitalWrite(YELLOW, LOW); delay(mini_delay); } // Теперь наш код стал компактнее и читабельнее. // Но запомни, тебе следует давать осмысленные имена переменным и макроопределениям.Это улучшает читабельность. // Если ты через месяц откроешь свой код, ты поймешь о чем я говорю.

Түсініктемелер

Үшін- Бұл есептегіш цикл деп аталатын бұл цикл жақшаға алынған әрекеттерді бірнеше рет қайталайды. Қайталанатын рет саны жақша ішінде көрсетілген.

Жалпы, оны былай жазуға болады:

үшін(Айнымалы; Шарт; Өзгерту)

(қайталанатын код)

Айнымалы- тек for циклі үшін жасалған айнымалы. Циклды «бастау» үшін қажет. Яғни, айнымалыны цикл шартымен салыстыру.

Шарт- шарт, егер шын болса, бұйра жақшадағы әрекеттер орындалады.

Өзгерту- айнымалы өзгеретін ереже. Өзгеріс жағдайды тексергеннен кейін жасалады. Осыдан кейін өзгертілген айнымалы тексеріледі.

Сабақты қорытындылау

Енді код оқуға ыңғайлы және ықшам. Бүгін сендер бағдаршам жасауды үйрендіңдер. Басы ғана. Сіз демалып, алынған ақпаратты қорытуыңыз керек. Бірақ егер сіз жалғастырғыңыз келсе, келесі мақалаға өтіңіз.

Радиоэлементтердің тізімі

Белгі Түр Номиналы Саны ЕскертуДүкенМенің блокнотым
Arduino тақтасы

Arduino Uno

1 Блокнотқа
Жарық диод

AL307V

1 Блокнотқа
Жарық диод

AL102B

1
Параметрлер