Курс викладається російською мовою: відео та матеріали російськомовні. Українська версія курсу з’явиться пізніше.
Що ви зможете після курсу
- Налаштовувати порти введення-виведення ATmega8 на вхід і вихід та змінювати окремі лінії масками й побітовими операціями, не зачіпаючи решту
- Використовувати таймери-лічильники й обидва типи переривань — зовнішні і за таймером — замість блокувальних затримок
- Знімати показання АЦП і датчиків TMP36, DS18B20 та SHT3x і переводити їх у напругу, температуру та вологість
- Будувати динамічну індикацію на семи- і чотирирозрядних індикаторах та виводити текст і числа на символьний РК-дисплей LCD 1602
- Налаштовувати ШІМ для регулювання яскравості й швидкості, обмінюватися даними по UART та I²C/TWI і зберігати налаштування в EEPROM
- Підключати й програмно керувати уніполярним та біполярним кроковими двигунами, перевіряючи схему мультиметром і осцилографом
Кому підійде курс
Початківцям з нуля
Матеріал починається з пояснення, що таке біт, байт, системи числення й АЦП, перш ніж переходити до коду. Базові конструкції мови C — функції, масиви, switch-case — розбираються всередині курсу, а не вважаються заздалегідь відомими.
Тим, хто виріс з Arduino
Курс не використовує Arduino IDE і готові бібліотеки: код пишеться в Atmel Studio на рівні регістрів AVR за даташитом ATmega8, з ручним налаштуванням портів, таймерів та інтерфейсів.
Тим, хто хоче збирати реальні пристрої
Курс тримає «залізну» частину: збирання схем на макетній платі з перемичками, прозвонку контактів мультиметром і перевірку сигналів осцилографом під час налаштування ШІМ, а не лише код у симуляторі.
Курс не підійде тим, хто хоче паяти друковані плати, працювати з іншими сімействами мікроконтролерів на кшталт STM32, PIC чи ESP, або отримати готовий прилад без розбору коду і схеми.
Як проходить навчання
- Кожна схема спочатку збирається і перевіряється в симуляторі Proteus — Помилки видно, і їх виправляють до того, як деталь потрапить на реальну плату
- Готова схема переноситься на реальний ATmega8 програматором USBasp — Навичка доводиться до працюючого пристрою, а не залишається в симуляторі
- Код пишеться на рівні регістрів AVR за даташитом ATmega8, без бібліотек Arduino — Розуміння переноситься на інші моделі AVR після читання їхньої документації
- Матеріал закриває тему двічі в різній подачі: послідовні практичні заняття й окремий блок із поділом теорії та практики за темами — Складну тему можна закріпити другим проходом з іншого ракурсу
- Кожен практичний вузол доводиться до перевірюваного результату — від виведення на індикатор до порівняння показань із мультиметром — Є зрозумілий критерій, що схема і код працюють правильно
Що знадобиться
- Atmel Studio (AVR Studio) і Proteus — безкоштовні програми для написання C-коду, компіляції та симуляції схем
- Мікроконтролер ATmega8 у DIP-корпусі, макетна плата з перемичками, програматор USBasp і USB-UART перетворювач
- Мультиметр і осцилограф для перевірки розпіновки, сигналів ШІМ і послідовного зв’язку на реальній платі
Чому самому зазвичай не виходить
Самостійне освоєння AVR зазвичай впирається в розрив між Arduino-скетчами і реальними регістрами мікроконтролера: готові бібліотеки приховують DDR, PORT, TCCR та ADMUX, тому під час переходу до роботи за даташитом без готових функцій незрозуміло, з якого регістра починати і як читати таблиці AVR.
Друга складність — відокремити помилку програми від помилки монтажу. Без звички спочатку перевіряти схему в симуляторі, а потім переносити її на реальну плату програматором USBasp, важко зрозуміти, чи не працює код, чи переплутано підключення. А протокол 1-Wire для датчика DS18B20 узагалі не має апаратної підтримки на ATmega8 і потребує програмної реалізації за часовими слотами — самостійно розібратися в цьому за уривчастими прикладами складно.
Що зміниться
До курсу
- Arduino-скетчі працюють, але що відбувається всередині регістрів ATmega8 — незрозуміло
- Схема в симуляторі Proteus працює, а на реальній макетній платі — ні
- АЦП, ШІМ і переривання виглядають як розрізнені терміни без спільної логіки налаштування
- Протоколи 1-Wire, I²C та UART здаються готовими чорними ящиками, які не можна розібрати
- Незрозуміло, де шукати помилку — в коді чи в монтажі схеми
Після курсу
- Порти, таймери й переривання налаштовуються на рівні регістрів за даташитом ATmega8, без готових Arduino-функцій
- Схема спочатку перевіряється в Proteus, а потім переноситься на реальний ATmega8 програматором USBasp із перевіркою мультиметром та осцилографом
- АЦП, ШІМ і переривання складаються в спільний алгоритм: налаштування регістра, подія, обробка
- 1-Wire, I²C/TWI та UART збираються вручну за часовими слотами й регістрами, тому протокол перестає бути чорним ящиком
- Помилка програми і помилка монтажу перевіряються окремо: поетапно в симуляторі, потім прозвонкою мультиметром і луна-тестами
Як влаштований шлях
- Основи та інструменти Вивчаєте біти, байти, системи числення й порти введення-виведення, освоюєте Atmel Studio, Proteus і програматор USBasp на простих схемах зі світлодіодами й кнопками.
- Таймери, АЦП та індикація Налаштовуєте таймери-лічильники, зовнішні й таймерні переривання, знімаєте показання АЦП і будуєте динамічну індикацію на семи- і чотирирозрядних індикаторах без блокувальних затримок.
- Інтерфейси та датчики Підключаєте символьний РК-дисплей LCD 1602, обмінюєтеся даними по UART та I²C/TWI, зчитуєте показання датчиків DS18B20 і SHT3x та налаштовуєте ШІМ для регулювання яскравості й швидкості.
- Готові пристрої Збираєте завершені практичні вузли — вольтметр, термометр з терморегулятором, регулятор на енкодері, крокові двигуни й таймер зворотного відліку зі збереженням налаштувань в EEPROM — і перевіряєте їх мультиметром та осцилографом.
Програма курсу
63 уроки · 35 модулів · 91 година 5 хвилин відео · Від першого ввімкнення світлодіода до завершених пристроїв на ATmega8 — за даташитом, крок за кроком.
-
Збираєте схему в Proteus, розміщуєте одноразове налаштування портів до основного циклу, задаєте частоту тактування й програмну затримку, а потім переносите готову прошивку на реальний ATmega8 програматором USBasp.
- Перша програма: налаштування портів і затримки2:34:26
Урок розділяє одноразове налаштування мікроконтролера, яке виконується в main до while, і алгоритм, що постійно працює всередині самого циклу while. Схема збирається в Proteus з ATmega8, світлодіодів і резисторів, а потім прошивка переноситься на реальний контролер через програматор USBasp. Розглядається зв’язок між двійковим значенням порту PORTD і станом світлодіодів, частота тактування та затримка `_delay_ms` з директивою `F_CPU`.
- Перша програма: налаштування портів і затримки2:34:26
-
Налаштовуєте змішаний порт із кнопкою і світлодіодами, вмикаєте внутрішню підтяжку і читаєте фактичний стан лінії через регістр PIN, відрізняючи його від заданого рівня PORT.
- Робота з кнопкою та портами введення-виведення2:33:36
Налаштовується змішаний порт мікроконтролера ATmega8: частина ліній працює на виведення для керування світлодіодами, а окрема лінія — на введення для кнопки, з порозрядним налаштуванням регістра напрямку DDR через маску. Кнопка підключена між входом і землею з використанням внутрішньої підтяжки через PORT, тому натискання відповідає активному нулю, а фактичний стан лінії зчитується через регістр PIN. Алгоритм читає PIN за маскою і розгалуженням if/else перемикає стан світлодіодів при натисканні та відпусканні кнопки.
- Робота з кнопкою та портами введення-виведення2:33:36
-
Визначаєте тип і розпіновку однорозрядного семисегментного індикатора мультиметром, збираєте схему з резисторами і виводите цифри від 0 до 9 для загального анода та загального катода.
- Однорозрядний семисегментний індикатор2:07:27
Розбираємо будову однорозрядного семисегментного індикатора: розпіновку, сегменти A–G і крапку DP, відмінність спільного анода та спільного катода. У Proteus збираємо схему з ATmega8 і резисторами, визначаємо тип індикатора мультиметром і виводимо цифри через маску байта на порту з урахуванням затримок через util/delay і F_CPU.
- Однорозрядний семисегментний індикатор2:07:27
-
Освоюєте тип даних масив, зберігаєте в ньому цифрові маски і виводите лічильник на індикатор, звертаючись до елементів масиву за індексом.
- Лічильник на семисегментному індикаторі2:37:33
Урок розглядає роботу з масивами на прикладі лічильника на семисегментному індикаторі для мікроконтролера ATmega8: тип даних, оголошення, нумерація елементів з нуля та переприсвоєння значень. Показано, як заповнити масив двійковими значеннями і вивести їх на порт через цикл for. Програма перевіряється в Atmel Studio та у схемі Proteus.
- Лічильник на семисегментному індикаторі2:37:33
-
Вчитеся встановлювати, скидати й перемикати окремий біт порту масками через операції І, АБО, НЕ та виключне АБО, не зачіпаючи решту ліній.
- Побітові операції з портами мікроконтролера2:22:13
Розбираємо побітові операції для керування окремими розрядами порту мікроконтролера без зміни інших ліній: встановлення біта через АБО з маскою, скидання через І з інвертованою маскою та перемикання через виключне АБО. Практика — у Proteus на моделі ATmega8 зі світлодіодами на порту D і прошивкою в Atmel Studio, де перевіряються регістри DDRD і PORTD, маски зі зсувом і блимання окремих світлодіодів.
- Побітові операції з портами мікроконтролера2:22:13
-
Збираєте змішаний порт із кнопкою і світлодіодом, читаєте окремий біт регістра PINB, перемикаєте світлодіод операцією виключного АБО і розбираєте різницю між утриманням кнопки і брязкотом контактів.
- Кнопка на змішаному порту: перевірка біта і XOR2:38:27
Урок розглядає роботу зі змішаним портом ATmega8, де кнопка підключена до PB0, а світлодіод — до PB1. Показано, чому перевірка всього регістра PINB ненадійна і потрібно читати стан окремого біта через маску, а перемикання світлодіода за натисканням кнопки реалізується операцією XOR. Окремо розглядається відмінність між утриманням кнопки і брязкотом контактів та способи захисту від багаторазового спрацьовування.
- Кнопка на змішаному порту: перевірка біта і XOR2:38:27
-
Збираєте динамічну індикацію з транзисторними ключами для індикатора із загальним катодом і вводите таймер-лічильник 0 як спосіб відліковувати час без блокувальної затримки.
- Динамічна індикація і перший лічильник-таймер2:30:21
Урок завершує схему динамічної індикації на семисегментному індикаторі: транзисторні NPN-ключі підключають спільний катод розряду до землі, порт D видає маску сегментів, а порт B вибирає активний розряд. Вводиться Timer/Counter 0 — восьмибітний лічильник із передільником, який дозволяє відлічувати час без блокувальної затримки та перемикати світлодіоди за результатом порівняння зі значенням таймера.
- Динамічна індикація і перший лічильник-таймер2:30:21
-
Порівнюєте таймери-лічильники 0, 1 і 2, підбираєте таймер і попередній дільник під потрібний інтервал і розбираєте обмеження опитування регістра рахунку в основному циклі.
- Таймери-лічильники 0, 1 і 2: порівняння режимів2:33:53
Урок розширює роботу з таймерами ATmega8: порівнює восьмибітний рахунок Timer/Counter 0 та Timer/Counter 2 із шістнадцятибітним Timer/Counter 1, розбирає регістри керування, переддільник і старший/молодший байти лічильника. Показано різницю між опитуванням порогу TCNT в основному циклі та обробкою переповнення через прапорці й переривання. Окремо розглядаються усунення брязкоту кнопок і помилка підключення PNP-транзистора в симуляції Proteus.
- Таймери-лічильники 0, 1 і 2: порівняння режимів2:33:53
-
Налаштовуєте зовнішнє переривання за даташитом: тип події в регістрі MCUCR, дозвіл джерела в GICR, глобальний прапорець у регістрі статусу й обробник, який звільняє основний цикл від постійної перевірки кнопки.
- Зовнішнє переривання INT02:25:39
Урок показує налаштування зовнішнього переривання INT0 в ATmega8: вибір типу події в MCUCR, дозвіл джерела через GICR і глобальний дозвіл переривань бітом I в SREG. Розбирається обробник ISR для вектора INT0_vect із функціями sei() та cli() з avr/interrupt.h, а також причина брязкоту кнопки і перестрибування цифр на індикаторі при її утриманні. Використовується однорозрядний індикатор із загальним катодом на порту B і кнопки на порту D.
- Зовнішнє переривання INT02:25:39
-
Налаштовуєте таймер-лічильник на переривання по переповненню через регістр маски переривань і обробник, який спрацьовує незалежно від основного циклу програми.
- Переривання за переповненням таймера2:11:14
Розбираємо переривання від таймерів-лічильників на прикладі ATmega8: налаштування регістра маски переривань, дозвіл переривання за переповненням першого 16-бітного таймера та ввімкнення глобальних переривань у статусному регістрі. Програму повторюємо в Atmel Studio і перевіряємо схему в Proteus.
- Переривання за переповненням таймера2:11:14
-
Налаштовуєте переривання по збігу таймера-лічильника із заданим значенням і автоматичне скидання лічильника, щоб отримувати повторюваний інтервал точної тривалості.
- Таймер у режимі порівняння2:19:09
Урок продовжує тему переривань від таймерів-лічильників і розглядає режим порівняння на прикладі першого таймера-лічильника ATmega8. Показано налаштування регістра OCR1A, переривання за збігом значень і автоматичне обнулення лічильника при спрацюванні. Програма перевіряється в Atmel Studio та Proteus.
- Таймер у режимі порівняння2:19:09
-
Розносите сегменти індикатора між кількома портами, коли частина виводів зайнята кварцом, перериваннями та UART, і порівнюєте обробку вибору через if-else і через switch-case.
- Розподіл сегментів і switch-case2:15:30
Розбираємо, як розподілити виводи мікроконтролера ATmega8 під сегменти динамічної індикації, якщо один порт зайнятий кварцом, перериванням або інтерфейсом UART і не може бути відданий повністю. Налаштовуємо порт D на вихід і переходимо від знайомого оператора if-else до оператора switch-case, порівнюючи їхню роботу на одному й тому самому прикладі. Розбираємо роль оператора break усередині switch-case і перевіряємо схему в Atmel Studio та Proteus.
- Розподіл сегментів і switch-case2:15:30
-
Розбираєте, що таке аналого-цифровий перетворювач, його частоту дискретизації, розрядність та опорну напругу, і робите перше вимірювання напруги потенціометра.
- Перший експеримент з АЦП2:37:11
Розбираємо аналого-цифровий перетворювач мікроконтролера ATmega8: як аналогова напруга перетворюється на цифрове значення і навіщо це потрібно на практиці. Проходимо ключові параметри АЦП — частоту дискретизації, розрядність та опорну напругу, розбираємо внутрішнє і зовнішнє джерела опорної напруги. Схему збираємо і перевіряємо в Atmel Studio та Proteus, змінюючи напругу потенціометром і спостерігаючи результат перетворення.
- Перший експеримент з АЦП2:37:11
-
Налаштовуєте джерело опорної напруги АЦП, збираєте дільник напруги і переводите числове значення АЦП у вольти з типом даних із плаваючою комою.
- Перерахунок АЦП у вольти1:54:32
Підключаємо до мікроконтролера ATmega8 семисегментний індикатор і налаштовуємо джерело опорної напруги АЦП — внутрішнє або зовнішнє через вивід живлення. Збираємо дільник напруги і переводимо зчитане з АЦП значення у вольти через змінну типу float. Перевіряємо схему та програму в Atmel Studio і Proteus.
- Перерахунок АЦП у вольти1:54:32
-
Розширюєте вольтметр на діапазон вище 5 вольт і знайомитеся з аналоговим компаратором ATmega8, який порівнює дві напруги без перетворення в число.
- Багатодіапазонний вольтметр2:57:20
Раніше зібраний на ATmega8 вольтметр розширюється з одного фіксованого діапазону (до 5 вольт) до кількох — через резисторний дільник на вході АЦП, з перерахунком показань АЦП у вольти за коефіцієнтом ділення та розрядністю. Розглядається аналоговий компаратор: його будова на основі операційного підсилювача та робота з порівнянням двох напруг на відміну від вимірювання через АЦП.
- Багатодіапазонний вольтметр2:57:20
-
Розбиваєте код на функції з аргументами і значенням, що повертається, освоюєте прототип функції та порядок її оголошення до і після main.
- Функції мови C2:03:37
Урок показує шлях від схеми в Proteus до реальної прошивки ATmega8: збирається схема зі світлодіодами й резисторами, створюється проект в Atmel Studio, а налаштування напрямків і початкового стану портів розміщується в main до while, щоб не повторюватися в нескінченному циклі. Розбирається зв’язок між двійковим значенням PORTD і станом восьми ліній порту, а також поняття тактів і частоти тактування: для розрахунку затримки бібліотекою util/delay частота задається директивою F_CPU до підключення заголовкового файлу. Готова прошивка записується в реальний мікроконтролер через програматор USBasp, який не замінюється USB-TTL-конвертером.
- Функції мови C2:03:37
-
Перемикаєтеся між кількома каналами АЦП регістром ADMUX, підключаєте аналоговий датчик температури TMP36 і виносите код вимірювання в окремі функції та файли.
- Два аналогових канали і TMP362:38:43
Підключаємо до мікроконтролера датчик температури TMP36 і перемикаємося між кількома каналами АЦП через регістр AdMux, виносячи зміну каналу в окрему функцію. Код розбивається на функції та розноситься по окремих файлах проєкту. Показання температури перераховуються з напруги на виводі датчика за перевідними коефіцієнтами, схема і програма перевіряються в Proteus та Atmel Studio.
- Два аналогових канали і TMP362:38:43
-
Розбираєте будову EEPROM ATmega8, регістри адреси та даних EEAR, EEDR і EECR та зберігаєте значення, яке не втрачається при вимкненні живлення.
- Читання і запис EEPROM2:10:06
Урок розглядає енергонезалежну пам’ять EEPROM мікроконтролера ATmega8: чим вона відрізняється від оперативної пам’яті і чому запис та читання даних вимагають вказання адреси комірки через регістри EEAR (EEARH і EEARL) та EEDR. Також показано, де знайти параметри EEPROM у даташиті мікроконтролера. Практична частина — повторення програми в Atmel Studio і перевірка схеми в Proteus.
- Читання і запис EEPROM2:10:06
-
Розбираєте призначення fuse-бітів ATmega8 за даташитом, підключаєте зовнішній кварцовий резонатор і налаштовуєте джерело тактування замість внутрішнього RC-генератора.
- Fuse-біти і тактування1:59:00
Розбираємо призначення fuse-бітів мікроконтролера ATmega8 і звіряємо їхній поточний стан із документацією на прикладі вкладки Fuse в програматорі. Налаштовуємо тактування: підключення зовнішнього кварцового або керамічного резонатора, вибір частоти та відповідних значень CKSEL, робота від внутрішнього RC-генератора. Перевіряємо результат в Atmel Studio і схемі Proteus.
- Fuse-біти і тактування1:59:00
-
Збираєте 4-бітний інтерфейс LCD 1602 на контролері HD44780, налаштовуєте лінії RS та Enable і пишете власні функції ініціалізації, надсилання команди й символу.
- Підключення символьного LCD 16023:39:37
Розбирається символьний дисплей LCD 1602 на контролері HD44780 та його підключення до ATmega8 через чотирибітний інтерфейс по лініях D4–D7 із сигналами RS і Enable. Схема спочатку збирається в Proteus з моделлю LM016L: перевіряються контраст через потенціометр, призначення виводів VSS, VDD, VE, підсвітка через резистор, а потім пишуться функції ініціалізації, надсилання команди та даних для базової бібліотеки виводу символів і рядків.
- Підключення символьного LCD 16023:39:37
-
Доповнюєте бібліотеку LCD функціями виведення рядка і числа, задаєте позицію курсора для оновлення поля без хвостових цифр і збираєте рядок, що біжить, програмно.
-
Доповнюєте бібліотеку LCD функціями виведення рядка і числа, задаєте позицію курсора для оновлення поля без хвостових цифр і збираєте рядок, що біжить, програмно.
- Виведення чисел на LCD 16022:13:26
Заняття продовжує роботу з LCD 1602: числові змінні та рядки перетворюються на послідовність кодів символів для виведення на екран. Число розкладається на десяткові розряди діленням з остачею, а рядок виводиться посимвольно з масиву з урахуванням завершального нульового символу. Позиція виведення задається адресою курсора, що дозволяє оновлювати окремі поля екрана та організувати рух тексту програмним способом.
- Виведення чисел на LCD 16022:13:26
-
-
Налаштовуєте асинхронний обмін USART ATmega8 за даташитом, підключаєте лінії TXD і RXD до віртуального термінала і передаєте рядок побайтово з перевіркою готовності регістра передавання.
-
Налаштовуєте асинхронний обмін USART ATmega8 за даташитом, підключаєте лінії TXD і RXD до віртуального термінала і передаєте рядок побайтово з перевіркою готовності регістра передавання.
- UART: передавання даних від AVR2:24:17
Урок знайомить з асинхронним послідовним передаванням даних через USART ATmega8: режим, швидкість у бодах і формат кадру беруться з даташита, а виводи TXD/RXD з’єднуються з Virtual Terminal у Proteus. Рядок надсилається байт за байтом через регістр UDR з перевіркою прапорця готовності буфера, без запису завершального нульового символу C-рядка в термінал. Наприкінці UART зіставляється з SPI та I²C/TWI як один з інтерфейсів обміну даними мікроконтролера.
- UART: передавання даних від AVR2:24:17
-
-
Приймаєте байти через USART за прапорцем готовності, збираєте рядок з урахуванням символів повернення каретки і переведення рядка та розпізнаєте прості команди, отримані з термінала.
-
Приймаєте байти через USART за прапорцем готовності, збираєте рядок з урахуванням символів повернення каретки і переведення рядка та розпізнаєте прості команди, отримані з термінала.
- UART: приймання команд з комп’ютера1:53:03
USART перемикається з режиму однобічного виведення на приймання: програма чекає на прапорець готовності даних USART і лише тоді зчитує байт із регістра UDR, а луна прийнятого символу в термінал слугує перевіркою з’єднання, швидкості та формату кадру. Прийняті байти накопичуються в буфері обмеженого розміру до службових символів CR і LF, після чого рядок перетворюється на C-рядок і порівнюється зі зразками команд для вибору дії програми.
- UART: приймання команд з комп’ютера1:53:03
-
-
Підключаєте стандартний вивід C — printf і sprintf — до USART мікроконтролера і на практиці з’єднуєте ATmega8 з комп’ютером через USB-UART перетворювач CH340G, перевіряючи канал луна-тестом і закороченими лініями передавання й приймання.
-
Підключаєте стандартний вивід C — printf і sprintf — до USART мікроконтролера і на практиці з’єднуєте ATmega8 з комп’ютером через USB-UART перетворювач CH340G, перевіряючи канал луна-тестом і закороченими лініями передавання й приймання.
- Потоковий вивід через UART1:41:41
Урок пов’язує низькорівневу передачу USART зі стандартним введенням-виведенням C: створюється функція виведення символу через USART, потік stdout перенаправляється на неї через fdevopen, після чого printf і sprintf використовуються для виведення рядків і змінних. Розглядається різниця між printf (виведення одразу в потік) і sprintf (збирання рядка в масив, корисно для LCD), а також обмеження — обсяг пам’яті та час передачі кожного символу. Перевірка виконується в Proteus через Virtual Terminal.
- Як підключити МК по UART до ПК19:18
Урок показує поетапне підключення ATmega8 до комп’ютера через USB–UART-перетворювач CH340G: перевірка перемички живлення 3,3/5 В, перехресне з’єднання TXD/RXD і об’єднання спільного проводу, loopback-тест самого перетворювача до підключення мікроконтролера. Термінал налаштовується на параметри 9600 бод, 8N1, після чого командами з ПК керують виводами порту PB мікроконтролера. Діагностика несправностей іде по порядку: живлення і драйвер, loopback, COM-порт і параметри термінала, потім проводи та прошивка.
- Потоковий вивід через UART1:41:41
-
-
Розбираєте двопровідну шину I²C/TWI ATmega8 — лінії SDA і SCL, адресацію пристроїв, підтягувальні резистори і послідовність старт, адреса, дані, підтвердження, стоп — на прикладі обміну з EEPROM.
-
Розбираєте двопровідну шину I²C/TWI ATmega8 — лінії SDA і SCL, адресацію пристроїв, підтягувальні резистори і послідовність старт, адреса, дані, підтвердження, стоп — на прикладі обміну з EEPROM.
- Основи шини I²C/TWI2:37:04
Урок знайомить із двопровідною шиною I²C/TWI і розбирає її електричну та протокольну основу на прикладі AVR і зовнішньої EEPROM: лінії SDA та SCL, ролі ведучого і веденого, семибітну адресацію, підтягувальні резистори та послідовність START–адреса–дані–ACK–STOP. Розглядається архітектурна відмінність від UART — спільна шина на кілька ведених пристроїв замість окремих ліній на кожен, а також пошук регістрів і таблиці кодів станів TWI в даташиті ATmega8. EEPROM використовується як навчальний ведений пристрій для відпрацювання адресації, передавання байтів і читання.
- Основи шини I²C/TWI2:37:04
-
-
Підключаєте датчик SHT3x до шини I²C, приймаєте два байти вимірювання, збираєте 16-бітне значення і розраховуєте температуру та вологість за формулами даташита.
-
Підключаєте датчик SHT3x до шини I²C, приймаєте два байти вимірювання, збираєте 16-бітне значення і розраховуєте температуру та вологість за формулами даташита.
- Датчик температури та вологості по I²C2:02:31
Урок розбирає читання датчика SHT3x за протоколом I²C/TWI: підключення ліній SDA та SCL до ATmega8, надсилання команди вимірювання та приймання байтів температури і вологості. Старший і молодший байти кожного результату об’єднуються у 16-бітне значення, яке переводиться в температуру та відносну вологість за формулами з даташита. Результат виводиться на семисегментний індикатор після завершення повного вимірювального циклу, а не після кожного прийнятого байта.
- Датчик температури та вологості по I²C2:02:31
-
-
Розбираєте призначення широтно-імпульсної модуляції, розрізняєте частоту, період і коефіцієнт заповнення та порівнюєте швидкодійний і фазокоректний режими таймера-лічильника 1.
-
Розбираєте призначення широтно-імпульсної модуляції, розрізняєте частоту, період і коефіцієнт заповнення та порівнюєте швидкодійний і фазокоректний режими таймера-лічильника 1.
- Режими та частота ШІМ2:28:43
Урок пояснює призначення ШІМ і пов’язує режими таймера AVR — Fast PWM і Phase Correct PWM — із частотою та середньою потужністю навантаження на прикладі ATmega8. Розглядаються регістри OCR1A/OCR1B і ICR1, роль передільника та вершини рахунку, а також різниця між частотою, періодом і коефіцієнтом заповнення. Налаштування перевіряється в Proteus осцилографом і світлодіодом.
- Режими та частота ШІМ2:28:43
-
-
Збираєте вимірювальну схему з чотирирозрядним індикатором, визначаєте напрямок обертання енкодера за двома каналами і зв’язуєте його значення з регістром порівняння ШІМ.
-
Збираєте вимірювальну схему з чотирирозрядним індикатором, визначаєте напрямок обертання енкодера за двома каналами і зв’язуєте його значення з регістром порівняння ШІМ.
- ШІМ і чотирирозрядна індикація2:18:27
Збираємо вимірювальну схему з чотирирозрядним індикатором на спільному катоді та підключаємо енкодер для керування коефіцієнтом заповнення ШІМ. Розбираємо динамічну індикацію, визначення напрямку обертання енкодера за двома квадратурними каналами через зовнішнє переривання та запис значення в регістр порівняння OCR1A з урахуванням верхньої та нижньої меж. Показання АЦП з потенціометра використовуємо для грубого налаштування, енкодер — для точного, а світлодіод та індикатор — для наочного контролю результату.
- ШІМ і чотирирозрядна індикація2:18:27
-
-
Перевіряєте реальний енкодер і його кнопку на макетній платі, обмежуєте діапазон регістра порівняння й отримуєте робочий регулятор яскравості або швидкості зі зворотним зв’язком за індикатором.
-
Перевіряєте реальний енкодер і його кнопку на макетній платі, обмежуєте діапазон регістра порівняння й отримуєте робочий регулятор яскравості або швидкості зі зворотним зв’язком за індикатором.
- Практичне керування ШІМ енкодером1:21:25
Урок підключає енкодер і пов’язує його обертання з ШІМ: подія на каналі A викликає зовнішнє переривання, а стан каналу B визначає напрямок, змінюючи лічильник. Окрема кнопка енкодера обробляється другим зовнішнім перериванням. Значення лічильника записується в регістр OCR1A і змінює коефіцієнт заповнення ШІМ у діапазоні 0…1023, регулюючи середню потужність навантаження, а результат відображається на індикаторі.
- Практичне керування ШІМ енкодером1:21:25
-
-
Розбираєте фізику позиціювання крокового двигуна, підключаєте уніполярний двигун 28BYJ-48 через драйвер ULN2003 і складаєте повнокрокову та півкрокову послідовності з регулюванням швидкості енкодером.
-
Розбираєте фізику позиціювання крокового двигуна, підключаєте уніполярний двигун 28BYJ-48 через драйвер ULN2003 і складаєте повнокрокову та півкрокову послідовності з регулюванням швидкості енкодером.
- Заняття 312:28:00
Урок розбирає будову крокового двигуна на прикладі уніполярного 28BYJ-48 та його підключення через драйвер ULN2003 до мікроконтролера AVR, включно з перевіркою розпіновки мультиметром. Розглядаються повнокроковий і напівкроковий режими перемикання обмоток, а швидкість обертання регулюється енкодером через зміну затримки таймера.
- Заняття 312:28:00
-
-
Порівнюєте повнокроковий і півкроковий режими уніполярного двигуна, а потім підключаєте біполярний кроковий двигун через мостовий драйвер з роздільним силовим і логічним живленням.
- Заняття 323:13:38
Урок завершує програмне керування уніполярним кроковим двигуном, порівнює повнокроковий і напівкроковий режими перемикання обмоток через таймер і енкодер, а потім показує підключення та запуск біполярного двигуна через містовий драйвер. Розбираються розпіновка драйвера, перемичка живлення логіки, згладжувальні конденсатори та стабілізатор, а також типові помилки підключення і завади від двигуна.
- Заняття 323:13:38
-
Реалізуєте протокол 1-Wire побітово за часовими слотами, оскільки в ATmega8 немає апаратного блоку 1-Wire, формуєте послідовність скидання та імпульсу присутності і передаєте перші байти датчику DS18B20.
-
Реалізуєте протокол 1-Wire побітово за часовими слотами, оскільки в ATmega8 немає апаратного блоку 1-Wire, формуєте послідовність скидання та імпульсу присутності і передаєте перші байти датчику DS18B20.
- Заняття 331:38:24
Урок знайомить із програмною реалізацією протоколу 1-Wire на мікроконтролері ATmega8 і будує обмін із датчиком DS18B20: лінія даних із підтягувальним резистором, reset та імпульс присутності, передавання й приймання байтів за часовими слотами з тимчасовою забороною переривань. Для одного датчика адресацію спрощено командою Skip ROM. Схему зібрано в Proteus, вона включає ATmega8, DS18B20 і світлодіод індикації присутності.
- Заняття 331:38:24
-
-
Запускаєте перетворення в DS18B20, читаєте й об’єднуєте байти його пам’яті, виводите додатну та від’ємну температуру з десятковою крапкою і збираєте терморегулятор з гістерезисом.
-
Запускаєте перетворення в DS18B20, читаєте й об’єднуєте байти його пам’яті, виводите додатну та від’ємну температуру з десятковою крапкою і збираєте терморегулятор з гістерезисом.
- Заняття 342:54:37
Урок завершує обмін із датчиком DS18B20: запускає перетворення температури, витримує час відповідно до розрядності датчика і зчитує два байти scratchpad. Значення обробляється з урахуванням дробової частини і знака (для від’ємної температури використовується додатковий код) і виводиться на чотирирозрядний семисегментний індикатор із десятковою крапкою. На основі виміряної температури будується терморегулятор із гістерезисом, який вмикає і вимикає навантаження через реле або транзисторний ключ.
- Заняття 342:54:37
-
-
Той самий матеріал курсу в іншій подачі — теорія і практика розділені за вузькими темами, від портів і систем числення до ШІМ і EEPROM, для закріплення після послідовних занять.
-
Розбираєте, що входить у мікроконтролер і чим він відрізняється від мікропроцесора, освоюєте зв’язку Atmel Studio, Proteus і AVRDUDE та налаштовуєте перший вивід ATmega8 на світлодіод.
- МІКРОКОНТРОЛЕРИ – Нова ера електроніки9:12
Урок розбирає, що входить до складу мікроконтролера і чим він відрізняється від мікропроцесора: пам’ять, порти введення-виведення, таймери-лічильники, АЦП, ШІМ та інтерфейси обміну даними. Розглядаються корпуси DIP, SOIC, QFP/TQFP і QFN та критерії вибору мікроконтролера для навчання — на цій основі обрано ATmega8 у DIP-корпусі.
- Avr Studio, Proteus, програматор8:10
Урок показує шлях розробки програми для AVR: постановка задачі, складання алгоритму, написання коду мовою C в AVR Studio, компіляція, перевірка схеми в Proteus і запис прошивки в ATmega8 програматором.
- Біт _ Байт _ Системи числення15:41
Урок пояснює бітову організацію даних: біт, байт, діапазон значень восьмибітного регістра і запис чисел у двійковій, десятковій і шістнадцятковій системах. Показано зв’язок розрядів регістра з налаштуванням портів мікроконтролера.
- Порти введення-виведення19:05
На прикладі схеми з ATmega8 урок показує налаштування виводу порту D через регістри DDR і PORT, підключення світлодіода через струмообмежувальний резистор, компіляцію програми в AVR Studio, перевірку в Proteus і прошивку контролера.
- Proteus _ AVRDUDE _ Налагодження і прошивка мікроконтролерів AVR10:06
Урок показує складання віртуальної схеми AVR у Proteus: вибір ATmega8, світлодіода і резистора, підключення HEX-файлу після компіляції в AVR Studio та перевірку роботи схеми. Розглядається призначення AVRDUDE при перенесенні прошивки на фізичний контролер.
- МІКРОКОНТРОЛЕРИ – Нова ера електроніки9:12
-
Формуєте програмні затримки на світлодіодах, що блимають, збираєте світлодіодну гірлянду з кнопками, підключаєте семисегментний індикатор і освоюєте масиви, логічні та побітові операції.
- Формування затримок часу мікроконтролера14:55
На прикладі почергового блимання двох світлодіодів, підключених до порту D, урок показує формування програмних затримок через бібліотеку util/delay.h і директиву F_CPU, а також відмінність такої затримки від апаратного таймера-лічильника.
- Світлодіодна гірлянда на мікроконтролері19:05
Урок показує підключення двох кнопок до PB0/PB1 і восьми світлодіодів до порту D через резистори: кнопки зчитуються як вхідні рівні і перемикають режими руху вогників, які записуються в PORTD.
- Семисегментний індикатор14:04
Урок розбирає будову одноразрядного семисегментного індикатора: сегменти a–g, відмінність індикаторів із загальним анодом і загальним катодом та підключення сегментів через резистори до порту ATmega8 за даними його розпіновки.
- Масиви18:00
На прикладі лічильника з кнопками урок замінює окремі значення PORTD для кожної цифри одним масивом семисегментних кодів, пояснює оголошення масиву в C і звернення до його елементів за індексом від 0 до 9.
- Логічні операції20:22
Урок розбирає логічні операції І, АБО, НІ, виключне АБО і зсув як спосіб змінювати чи перевіряти окремі біти регістра, не зачіпаючи решту, — на прикладі регістрів портів ATmega8.
- Побітові операції20:40
Практичне заняття показує встановлення і скидання окремих бітів PORTD побітовими операціями АБО і І з масками в Proteus і на реальному ATmega8, не змінюючи стан решти виводів.
- Формування затримок часу мікроконтролера14:55
-
Розбираєте таймери-лічильники 0, 1 і 2 ATmega8, налаштовуєте зовнішні переривання та переривання по переповненню таймера і підключаєте зовнішній кварцовий резонатор з налаштуванням fuse-бітів.
- Таймер-лічильник 0 ATmega829:09
Урок розбирає будову восьмибітного Timer0 ATmega8: регістр TCNT0, переповнення після 255, роль передільника і частоти F_CPU в розрахунку часового інтервалу, а також пошук потрібних регістрів і режимів у даташиті.
- Таймер-лічильник 1, 2 ATmega820:28
Урок порівнює Timer1 і Timer2 ATmega8: шістнадцятибітний Timer1 і восьмибітний Timer2, вибір джерела тактування і передільника, призначення регістра порівняння та відмінність режимів за переповненням і за порівнянням.
- Зовнішні переривання мікроконтролера25:24
Урок пояснює механізм зовнішнього переривання і налаштування INT0/INT1 на виводах PD2/PD3: регістри GICR і MCUCR, вибір реакції за рівнем чи фронтом, глобальний дозвіл переривань і оформлення обробника ISR.
- Переривання від таймера-лічильника ATmega817:30
На прикладі світлової послідовності на шести світлодіодах урок налаштовує переривання за переповненням Timer1: біт TOIE1 у TIMSK, глобальний дозвіл переривань і обробник ISR, що працює незалежно від основного циклу програми.
- Кварцовий резонатор _ Налаштування ф’юзів20:19
Урок показує підключення зовнішнього кварцового резонатора 8 МГц до виводів XTAL1/XTAL2 з конденсаторами і налаштування ф’юзів CKSEL ATmega8, а також потребу узгодити директиву F_CPU з обраною частотою тактування.
- Таймер-лічильник 0 ATmega829:09
-
Збираєте чотирирозрядний семисегментний індикатор із загальними сегментами й окремим вибором розряду, програмуєте мультиплексування і переносите перемикання розрядів на переривання таймера з кнопками керування числом.
- Динамічна індикація _ Частина 1 _ Програмування МК AVR17:25
Урок пояснює будову чотирирозрядного семисегментного індикатора і принцип динамічної індикації: сегменти підключаються до порту D, а розряди — до порту B, почергове увімкнення розрядів створює видимість одночасного відображення всіх цифр.
- Динамічна індикація _ Частина 2 _ Програмування МК AVR18:26
Урок програмує чотирирозрядну динамічну індикацію на ATmega8: масив семисегментних кодів, розбір числа по розрядах і почерговий вивід цифр на PORTD/PORTB із затримкою між перемиканнями розрядів.
- Динамічна індикація / Частина 3 / Програмування МК AVR9:23
Урок переписує динамічну індикацію із затримок на обробник переривання за переповненням Timer0 (регістри TCCR0, TIMSK, TCNT0, функція sei(), ISR(TIMER0_OVF_vect)) і додає дві кнопки на PC4/PC5 для збільшення і зменшення виведеного числа з автоповтором при утриманні.
- Динамічна індикація _ Частина 1 _ Програмування МК AVR17:25
-
Збираєте таймер зворотного відліку з кнопками керування і звуковим сигналом, налаштовуєте АЦП ATmega8 для порогової індикації і будуєте цифровий вольтметр з резистивним дільником.
- Цікавий таймер на мікроконтролері19:58
Урок збирає таймер зворотного відліку на ATmega8 із чотирма кнопками (зміна секунд, старт, скидання), чотирирозрядним індикатором і звуковим генератором на транзисторах BC547/BC557, який вмикається по завершенні відліку через вивід PC2.
- Аналого-цифровий перетворювач АЦП _ Програмування МК AVR32:03
На прикладі вимірювання напруги потенціометра урок налаштовує АЦП ATmega8 через регістри ADMUX і ADCSRA на вході ADC1 і вмикає один із трьох світлодіодів залежно від діапазону напруги, імітуючи індикацію заряду батареї 1,5 В.
- Розумний ВОЛЬТМЕТР своїми руками _ Програмування МК AVR11:25
Урок перетворює вимірювання через АЦП на вході ADC1 на цифровий вольтметр з резистивним подільником: результат перераховується в напругу і порівнюється з порогом 1,5 В для увімкнення світлодіода, показання звіряються з мультиметром у Proteus.
- Цікавий таймер на мікроконтролері19:58
-
Розбираєте призначення ШІМ і налаштовуєте швидкодійний і фазокоректний режими таймера-лічильника 1, а потім вчитеся змінювати не тільки коефіцієнт заповнення, а й частоту сигналу через верхню межу рахунку.
- Широтно-імпульсна модуляція AVR _ Частина 1 _ Програмування МК AVR15:36
Урок вводить поняття широтно-імпульсної модуляції: зв’язок коефіцієнта заповнення і частоти імпульсів із потужністю на навантаженні (яскравість світлодіода, швидкість двигуна, тон динаміка) та апаратну реалізацію ШІМ через Timer1/Timer2 і виходи OC1A/OC1B ATmega8.
- Швидкодіюча ШІМ AVR _ Частина 2 _ Програмування МК AVR17:00
Урок налаштовує швидкодіючу ШІМ (Fast PWM) на Timer1 ATmega8 через регістри TCCR1A, TCCR1B і OCR1A/OCR1B, виводить сигнал на PB1/PB2 (OC1A/OC1B) і перевіряє зміну яскравості світлодіода в Proteus.
- ШІМ з точною фазою _ Частина 3 _ Програмування МК AVR26:08
Урок порівнює швидкодіючу і фазокоректну ШІМ Timer1 та додає зміну коефіцієнта заповнення OCR1A кнопками з обмеженням на мінімум і максимум, спостерігаючи зміну яскравості світлодіода в Proteus.
- ШІМ з точною фазою і частотою _ Частина 4 _ Програмування МК AVR20:57
Урок додає до регулювання заповнення ШІМ зміну частоти сигналу через верхню межу рахунку (регістр ICR1) Timer1 ATmega8: OCR1A задає коефіцієнт заповнення, а зміна TOP — період імпульсів; кнопки змінюють обидва параметри окремо.
- Широтно-імпульсна модуляція AVR _ Частина 1 _ Програмування МК AVR15:36
-
Розбираєте регістри EEAR, EEDR та EECR енергонезалежної пам’яті ATmega8 і застосовуєте їх до таймера зворотного відліку, щоб користувацьке налаштування зберігалося між увімкненнями.
- EEPROM налаштування _ Частина 1 _ Програмування МК AVR29:24
Урок пояснює будову EEPROM ATmega8 для зберігання налаштувань без живлення: регістри EEAR, EEDR, EECR і послідовність дозволу та запуску запису через біти EEMWE і EEWE, а також читання збереженого байта.
- EEPROM AVR _ Частина 2 _ Програмування AVR20:28
На основі проєкту таймера зворотного відліку урок показує збереження встановленого значення секунд в EEPROM ATmega8 та його відновлення після ввімкнення контролера, з урахуванням очікування завершення запису й обмеженого ресурсу перезапису пам’яті.
- EEPROM налаштування _ Частина 1 _ Програмування МК AVR29:24
-
-
Знайомитеся з ATmega8 як навчальною платформою, зв’язкою Atmel Studio і Proteus, регістрами напрямку та рівня порту і повним циклом від вихідного коду до прошивки реального мікроконтролера на першому простому прикладі зі світлодіодом.
- Основи програмування мікроконтролерів AVR3:40:43
Вступний урок задає модель роботи з AVR на прикладі ATmega8: зв’язка Atmel Studio і Proteus, порти введення-виведення та регістри DDR/PORT, компіляція коду на C і завантаження прошивки у віртуальну схему зі світлодіодом і резистором. Розбирається нумерація бітів портів, а також призначення виводів VCC, GND і RESET.
- Основи програмування мікроконтролерів AVR3:40:43
Часті запитання
Тут зібрані відповіді майже на всі запитання, які ставлять перед купівлею. Натисніть на запитання, щоб розкрити відповідь.
Про цей курс
-
Ні: матеріал починається з пояснення біта, байта і систем числення, а базові конструкції мови C — функції, масиви, switch-case — розбираються всередині курсу, а не вважаються заздалегідь відомими.
-
Ні, паяння й виготовлення друкованих плат у курсі немає — усі схеми збираються на макетній платі з перемичками.
-
Так, курс написано для переходу від Arduino-скетчів до роботи на рівні регістрів: код пишеться в Atmel Studio за даташитом ATmega8, без бібліотек Arduino IDE.
-
Ні, весь курс побудований на одному ATmega8 у DIP-корпусі; інші сімейства — STM32, PIC, ESP — не розглядаються.
-
Мікроконтролер ATmega8, макетна плата з перемичками, програматор USBasp, USB-UART перетворювач, мультиметр і осцилограф — на них схема переноситься після перевірки в Proteus.
-
У курсі для кількох датчиків DS18B20 використовується окремий вивід мікроконтролера на кожен датчик, а не пошук за ROM-адресою на спільній шині.
Доступ і матеріали
-
Одразу після оплати, тієї ж секунди й автоматично. Чекати на підтвердження не потрібно. Доступ надходить двома шляхами водночас. Перший: на пошту, вказану при оформленні замовлення, приходить лист із посиланням на матеріали. Другий: те саме посилання з’являється у вашому акаунті на сайті, у розділі «Завантаження», і залишається там назавжди.
-
Усі відео та додаткові файли лежать у хмарному сховищі. Посилання на нього — у вашому акаунті на сайті, розділ «Завантаження», і в листі, який надійшов після оплати. Акаунт тут не формальність, а спосіб доставки: курс залишається в ньому назавжди. Навіть якщо лист загубився або ви згадали про купівлю через рік, посилання буде на місці.
-
Завантажувати можна і варто. Радимо зберегти відео на комп’ютер і дивитися звідти. Причина проста: хмарне сховище не розраховане на перегляд відео. Іноді воно дозволяє увімкнути ролик просто у браузері, але якість при цьому помітно гірша за вихідну. На своєму комп’ютері ви побачите курс таким, яким його записували.
-
Безстроково. Курс залишається вашим назавжди, повертатися до нього можна скільки завгодно разів. Якщо через рік чи два посилання раптом перестане відкриватися з технічних причин — напишіть на info@siluette.com.ua, ми його відновимо.
-
Насамперед: доступ у вас є в будь-якому разі. Увійдіть на сайт і відкрийте розділ «Завантаження» — посилання на курс уже там, незалежно від того, дійшов лист чи ні. Найчастіше лист губиться через одруківку в адресі під час оформлення замовлення. Ще варто заглянути до теки «Спам». Не виходить розібратися — не витрачайте час: напишіть на info@siluette.com.ua або в чат у правому нижньому куті сайту, ми допоможемо.
-
Найкраще на комп’ютері або ноутбуці: завантажте відео й відкрийте будь-яким звичним плеєром. Знадобляться встановлені відеокодеки — на більшості комп’ютерів вони вже є. Завантажити курс можна на скільки завгодно пристроїв. А от телефон ми не радимо, і з двох причин. На маленькому екрані погано видно деталі, особливо якщо в уроці показують інтерфейс програми. І на телефонах часто немає кодеків для форматів, у яких записані відео.
Оплата та повернення
-
Банківською карткою Visa, MasterCard або «Простір», через Google Pay, Apple Pay, Masterpass, Visa Checkout, платіжний QR-код, Botpay у Telegram чи Privat24. Є й оплата частинами: Монобанк (3 або 4 платежі), А-Банк (2, 3 або 4 платежі та розстрочка), Банк Глобус (8 платежів), «Скибочка» від OTP Bank (3 платежі), миттєва розстрочка та оплата частинами від ПриватБанку.
-
Так. Платіжна система приймає картки з Євросоюзу та будь-яких інших країн. Одна деталь, про яку часто забувають: банк може попросити підтвердити платіж — у мобільному застосунку або кодом із СМС. Якщо оплата не проходить, перевірте застосунок банку та повідомлення.
-
Додайте до кошика два курси або більше — знижка застосується автоматично до всіх товарів у кошику. Два курси: мінус 20% на обидва. П’ять курсів: мінус 20% на всі п’ять. Знижка поєднується з будь-якими акційними цінами й діє на весь каталог без винятків.
-
Цифрові товари поверненню та обміну не підлягають. Це загальне правило для всіх електронних товарів в Україні — постанова Кабінету Міністрів № 172 від 19 березня 1994 року. При цьому ми завжди на зв’язку. Якщо доступ не відкривається, посилання перестало працювати або файли пошкоджені — напишіть на info@siluette.com.ua, вкажіть дату та номер замовлення. Відновимо. Якщо щось незрозуміло в самому курсі, теж пишіть — підкажемо.
-
Поки що ні. Ми працюємо лише з приватними покупцями — безготівкової оплати за рахунком від юридичних осіб зараз немає.
Як проходить навчання
-
Ні. Усі курси — це записи уроків для самостійного вивчення: викладач не відповідає на запитання і не перевіряє домашні завдання. Саме тому курси коштують значно дешевше за навчання з куратором. Ви отримуєте той самий матеріал, але займаєтеся самі та у своєму темпі.
-
Так, цифровий сертифікат — на запит і безкоштовно. Напишіть на info@siluette.com.ua, вкажіть ім’я та прізвище саме в тому вигляді, в якому хочете бачити їх у сертифікаті, і ми надішлемо його протягом доби.
-
Для більшості курсів — ні. Вони розраховані на початковий рівень і пояснюють з азів. Якщо курс потребує підготовки, це сказано в його описі.
-
Ні. Ані дедлайнів, ані розкладу, ані доступу, що згорає. Завантажили — дивіться коли зручно, з будь-якими перервами.
-
Курс купується для особистого використання, і ми просимо ставитися до цього по-людськи: за кожним уроком стоїть робота, а ціна й так суттєво знижена.
Підтримка
-
Найкраще на info@siluette.com.ua. Є й чат у правому нижньому куті сайту, але пошта надійніша: там можна все описати докладно та додати знімки екрана. Прохання: опишіть, що саме ви робили і що пішло не так, та додайте знімок екрана з помилкою. Так ми вирішимо питання одразу, а не з’ясовуватимемо півдня, що сталося.
-
У робочий час, з 9:00 до 19:00, на пошту зазвичай відповідаємо протягом години, у чаті — за кілька хвилин. Після 19:00 теж буває, але час відповіді не обіцяємо.


Відгуки покупців
Що кажуть покупці
Покупці вважають курс зрозумілим практичним і придатним для початкового рівня. Сильними сторонами називають покрокові пояснення роботу в симуляторі та велику кількість практики. Повторювані зауваження стосуються повільного темпу надто докладних пояснень і окремих складних моментів у обчисленнях налаштуваннях та регістрах.
31.08.2026 Підтверджений клієнт
Першу схему в симуляторі зібрала без особливих проблем, а ось із прошивкою спочатку заплуталася. Змінила програму, але у віртуальній схемі продовжував працювати старий варіант. Виявилося, що після правки потрібно знову зібрати проєкт і вказати свіжий файл контролеру. Ще перевірила полярність світлодіода і номер виводу, бо за правильної програми він усе одно не загорявся. Зручно, що весь пошук помилки розбитий на зрозумілі кроки. Спочатку схема і живлення, потім файл, налаштування та код. Після такої перевірки стало зрозуміло, чим відрізняється симуляція від справжньої прошивки і навіщо не переходити одразу до складних причин.
20.08.2026 Підтверджений клієнт
Спільна шина спочатку здавалася мені дивною, особливо після звичного з'єднання двох пристроїв окремими дротами. На прикладі з пам'яттю стало зрозуміліше, як кілька пристроїв можуть працювати через одні лінії і чому кожному потрібна власна адреса. Окремо перевірив підтягувальні резистори, спільний провід і порядок обміну. Найкорисніша частина для мене це розбір підтвердження після кожного кроку. Раніше програма просто чекала невідомо чого, а тепер розумію, що потрібно перевіряти результат передавання і шукати причину відсутності відповіді. Після читання цього матеріалу вже не плутаю лінії даних і тактування.
15.08.2026 Підтверджений клієнт
Найдовше поралася з тим, щоб зрозуміти різницю між адресою комірки та даними. Спочатку записувала значення, а потім під час читання отримувала не те, чого очікувала. Коли стала окремо перевіряти адресу, вміст і готовність пам'яті, помилку знайшла досить швидко. Сподобалося, що пояснення не обмежується готовим рядком коду. Видно, чому запис не можна запускати нескінченно і навіщо чекати завершення операції. У Proteus вдалося перевірити збереження значення після перезапуску схеми. Тепер набагато зрозуміліше, де зберігати налаштування, яке має пережити вимкнення живлення.
07.08.2026 Підтверджений клієнт
Окремо сподобалося, що багаторозрядний індикатор пояснюють не як готову магію, а через його будову. Я спочатку переплутав спільні виводи цифр із лініями сегментів і отримав дивну картинку. Довелося звіритися з документацією та перевірити розпіновку, після цього стало зрозуміліше, що саме підключати. Цікаво спостерігати, як цифри зявляються по черзі, хоча очима одразу видно весь результат. Надто велика пауза одразу видала мерехтіння, а після зменшення інтервалу зображення стало нормальним. Ще корисно розібрали різницю між спільним анодом і спільним катодом, бо без цього легко отримати інверсне світіння. Практика залишила відчуття, що схему справді можна зібрати, а не просто повторити набір дій.
29.07.2026 Підтверджений клієнт
Тепер не хочеться переписувати весь байт заради однієї лінії. Маски та прості операції розібрані на зрозумілих прикладах, тож у голові нарешті стало спокійніше.
23.07.2026 Підтверджений клієнт
Тема спочатку здалася сухою, але після прикладів з окремими бітами стала набагато яснішою. Сподобалося, що пояснюють спокійно та без зайвої метушні.
16.07.2026 Підтверджений клієнт
Стало зрозуміліше, як таймер сам відраховує час, без довгої паузи в програмі. Приклад зі світлодіодом добре показує результат.
10.07.2026 Підтверджений клієнт
Спробував надсилати рядок у термінал і спочатку отримав набір незрозумілих символів. Виявилося, частота в проєкті та налаштування термінала не збігалися. Після виправлення текст пішов у правильному порядку, символ за символом. Корисно, що окремо розбирається очікування готовності перед надсиланням, інакше частина повідомлення справді зникає. Потім виніс передавання одного символу в окрему функцію, і стало простіше збирати повідомлення. На довгому рядку помітно, що програма чекає завершення передавання і в цей час зайнята лише цим. Для першого прикладу це нормально, але обмеження варто було позначити помітніше, бо спочатку здається, ніби канал працює повністю незалежно.
02.07.2026 Підтверджений клієнт
Події на кнопці тепер сприймаю не як постійну перевірку, а як окремий сигнал. Пояснення вийшло послідовним і зрозумілим.
23.06.2026 Підтверджений клієнт
З енкодером спочатку було більше мороки, ніж очікував. У симуляції напрямок визначався акуратно, а на макетній платі довелося перевірити контакти та трохи розібратися з брязкотом. Після цього значення стало змінюватися в обидва боки без хаотичних стрибків. Окремо перевірив кнопку й побачив, що вона справді змінює параметр. Потім повязав цей параметр із яскравістю світлодіода, і вже було зрозуміло, що відбувається не просто зміна числа, а регулювання тривалості імпульсу. Добре, що відображення значення залишили поруч з керуванням. Так простіше помітити пропущені кроки та вихід за межі. Практика вийшла цілісною та цілком прикладною.