Радіосхеми для дому на atmega8. Анатомія мікроконтролерів ATmega. Частотний перетворювач для асинхронного двигуна на AVR

Мікроконтролери Atmega8 є найпопулярнішими представниками свого сімейства. Багато в чому вони цим зобов'язані, з одного боку, простоті роботи та зрозумілій структурі, з іншого - досить широким функціональним можливостям. У статті буде розглянуто програмування Atmega8 для початківців.

Загальна інформація

Мікроконтролери зустрічаються скрізь. Їх можна знайти в холодильниках, пральних машинках, телефонах, заводських верстатах та велику кількість інших технічних пристроїв. Мікроконтролери бувають як простими, і надзвичайно складними. Останні пропонують значно більше можливостей та функціоналу. Але розбиратися одразу у складній техніці не вийде. Спочатку необхідно освоїти щось просте. І як зразок буде взято Atmega8. Програмування на ньому не є складним завдяки грамотній архітектурі та доброзичливому інтерфейсу. До того ж він є володарем достатньої продуктивності, щоб використовувати у більшості Більш того, вони застосовуються навіть у промисловості. У разі Atmega8 програмування передбачає знання таких мов як AVR (C/Assembler). З чого почати? Освоєння цієї технології можливе трьома шляхами. І кожен вибирає сам, з чого розпочати роботу з Atmega8:

  1. Програмування через Arduino.
  2. Купівля готового пристрою.
  3. Самостійне збирання мікроконтролера.

Нами буде розглянуто перший та третій пункт.

Arduino

Це зручна платформа, виконана у вигляді, що підходить для швидкого створення різних пристроїв. У платі вже є все необхідне у вигляді самого мікроконтролера, його обв'язки та програматора. Підійшовши цим шляхом, людина отримає такі переваги:

  1. Низький поріг вимог. Не потрібно мати спеціальні навички та вміння для розробки технічних пристроїв.
  2. Широкий спектр елементів буде доступним для підключення без додаткової підготовки.
  3. Швидкий початок розробки. З Arduino можна одразу переходити до створення пристроїв.
  4. Наявність великої кількості навчальних матеріалів та прикладів реалізацій різних конструкцій.

Але є й певні мінуси. Так, Arduino програмування Atmega8 не дозволяє глибше поринути у світ мікроконтролера та розібратися у багатьох корисних аспектах. Крім цього, доведеться вивчити мову програмування, що відрізняється від AVR (C/Assembler). І ще: Arduino має досить тонку лінійку моделей. Тому рано чи пізно виникне потреба використовувати мікроконтролер, що не використовується у платах. А загалом це непоганий варіант роботи з Atmega8. Програмування через Arduino дозволить отримати впевнений старт у світі електроніки. І в людини навряд чи опустяться руки через невдачі та проблеми.

Самостійне складання

Завдяки доброзичливості конструкції їх можна зробити самими. Адже для цього потрібні дешеві, доступні та прості комплектуючі. Це дозволить добре вивчити пристрій мікроконтролера Atmega8, програмування якого після збирання здаватиметься легшим. Також за потреби можна самостійно підібрати інші комплектуючі під конкретне завдання. Щоправда, тут є й певний мінус – складність. Самостійно зібрати мікроконтролер, коли немає потрібних знань та навичок, нелегко. Цей варіант ми розглянемо.

Що ж потрібно для збирання?

Спочатку потрібно отримати сам Atmega8. Програмування мікроконтролера без нього самого, знаєте, неможливе. Він обійдеться кілька сотень рублів - забезпечуючи при цьому гідний функціонал. Також стоїть питання про те, як здійснюватиметься програмування Atmega8. USBAsp – це досить гарний пристрій, що себе зарекомендувало з найкращого боку. Але можна використати і якийсь інший програматор. Або ж зібрати його самостійно. Але в такому разі існує ризик, що при неякісному створенні він перетворить мікроконтролер на непрацюючий шматочок пластику та заліза. Також не завадить наявність макетної плати та перемичок. Вони не обов'язкові, але дозволять заощадити нерви та час. І насамкінець - потрібне джерело живлення на 5В.

Програмування Atmega8 для початківців на прикладі

Давайте розглянемо, як загалом здійснюється створення якогось пристрою. Отже, припустимо, що у нас є мікроконтролер, світлодіод, резистор, програматор, з'єднувальні дроти, та джерело живлення. Перший крок – це написання прошивки. Під нею розуміють набір команд для мікроконтролера, що представлений як кінцевий файл, що має спеціальний формат. У ньому необхідно прописати підключення всіх елементів, і навіть взаємодія із нею. Після цього можна приступати до збирання схеми. На ніжку VCC слід подати живлення. До будь-якої іншої, призначеної для роботи з пристроями та елементами, підключається спочатку резистор, а потім світлодіод. При цьому потужність першого залежить від потреб у харчуванні другого. Можна орієнтуватися за такою формулою: R = (Up-Ups) / Is. Тут p – це харчування, а s – світлодіод. Давайте уявимо, що у нас є світлодіод, що споживає 2В і потребує струму живлення на рівні 10 мА, переводимо в більш зручний для математичних операцій вигляд і отримуємо 0.01А. Тоді формула буде виглядати так: R=(5В-2В)/0.01А=3В/0.01А=300 Ом. Але практично часто виявляється неможливим підібрати ідеальний елемент. Тому береться найбільш підходящий. Але потрібно використовувати резистор із опором вище значення, одержаного математичним шляхом. Завдяки такому підходу ми продовжимо термін його служби.

А що далі?

Отже, ми маємо невелику схему. Тепер залишилося підключити до мікроконтролера програматор і записати на його пам'ять прошивку, що була створена. Тут є один момент! Вибудовуючи схему, необхідно її створювати таким чином, щоб мікроконтролер можна було прошивати без розпаювання. Це дозволить зберегти час, нерви і продовжить термін служби елементів. У тому числі Atmega8. Внутрішньосхемне програмування, слід зазначити, вимагає знань і умінь. Але ж воно дозволяє створювати більш досконалі конструкції. Адже часто буває, що під час розпаювання елементи ушкоджуються. Після цього схема готова. Можна подавати напругу.

Важливі моменти

Хочеться дати новачкам корисні поради щодо програмування Atmega8. Вбудовані змінні та функції не змінювати! Прошивати пристрій створеною програмою бажано після перевірки на відсутність «вічних циклів», що заблокують будь-яке інше втручання, і з використанням хорошого передавача. У разі використання саморобки для цього слід бути морально готовим до виходу мікроконтролера з ладу. Коли прошиватимете пристрій за допомогою програматора, то слід з'єднувати відповідні виходи VCC, GND, SCK, MOSI, RESET, MISO. І не порушуйте техніки безпеки! Якщо технічними характеристиками передбачено, що має бути живлення в 5В, потрібно дотримуватися саме такої напруги. Навіть використання елементів на 6В може негативно сказати на працездатності мікроконтролера та скоротити термін його служби. Звичайно, батареї на 5В мають певні розбіжності, але зазвичай там все в розумних рамках. Наприклад, максимальна напруга триматиметься лише на рівні 5,3В.

Навчання та вдосконалення навичок

На щастя Atmega8 є дуже популярним мікроконтролером. Тому знайти однодумців або просто знаючих і вміючих людей не складе труднощів. Якщо немає бажання винаходити заново велосипед, а просто хочеться вирішити певне завдання, можна пошукати необхідну схему на просторах світової мережі. До речі, невелика підказка: хоча в російськомовному сегменті робототехніка досить популярна, але, якщо немає відповіді, слід її пошукати в англомовному - він містить на порядок більше інформації. Якщо є певні сумніви як наявні рекомендації, то можна пошукати книги, де розглядається Atmega8. Благо компанія-виробник бере до уваги популярність своїх розробок і забезпечує їх спеціалізованою літературою, де досвідчені люди розповідають, що і як, а також наводять приклади роботи пристрою.

Чи важко почати створювати щось своє?

Достатньо мати 500-2000 рублів та кілька вільних вечорів. Цього часу з лишком вистачить, щоб ознайомитись з архітектурою Atmega8. Після невеликої практики можна буде спокійно створювати власні проекти, що виконують певні завдання. Наприклад, роботизовану руку. Одного Atmega8 має з лишком вистачити, щоб передати основні моторні функції пальців та кисті. Звичайно, це досить складне завдання, але цілком посильне. Надалі взагалі можна буде створювати складні речі, для яких знадобляться десятки мікроконтролерів. Але це все попереду, перед цим необхідно отримати хорошу школу практики на чомусь простому.

Схеми на мікроконтролері, статті та описи з прошивками та фотографіями для автомобіля.

Простий тахометр на мікроконтролері ATmega8

Тахометр застосовується в автомобілях для вимірювання частоти обертання будь-яких деталей, які здатні обертатися. Є багато варіантів таких пристроїв, я запропоную варіант на мікроконтролері AVR ATmega8. Для мого варіанта, вам також…

Читати повністю

Колірна музика на мікроконтроллері Attiny45 в авто

Ця музика кольору, маючи малий розмір і живлення 12В, як варіант може використовуватися в авто при будь-яких заходах. Першоджерело цієї схеми Радіо №5, 2013р О. ЛАПТЄВ, м. Зиряновськ, Казахстан. Схема…

Читати повністю

Контролер обігріву дзеркал та заднього скла

Дозволяє керувати однією кнопкою роздільно обігрівом заднього скла і дзеркал, плюс таймер відключення, що настроюється, до півтори години для кожного каналу. Схема побудована на мікроконтролері ATtiny13A. Опис роботи:

Читати повністю

Діммер для плафона автомобіля

Майже у всіх автомобілях є керування салонним світлом, яке здійснюється за допомогою бортового комп'ютера чи окремої бортової системи. Світло вмикається плавно, і гасне також із якоюсь затримкою (для…

Читати повністю

GSM сигналізація з оповіщенням на мобільний телефон

Уявляю дуже популярну схему автомобільної сигналізації на базі мікроконтролера ATmega8. Така сигналізація дає оповіщення на мобільний телефон адміна у вигляді дзвінків або смс. Пристрої інтегрується з мобільним телефоном за допомогою…

Читати повністю

Кліпаючий стопак на мікроконтролері

Зробив нову версію моргаючого стопака. Відрізняється алгоритм роботи та схема управління, розмір та підключення таке ж. Можливо регулювати частоту моргання, тривалість до переходу в постійне свічення та шпаруватість.

Читати повністю

ДХО плюс стробоскопи

Цей виріб дозволяє стробоскопити світлодіодними ДХО. Виріб має малий розмір, керування всього однією кнопкою, широкі можливості налаштування. Розмір плати 30 на 19 мм. На звороті розташований клемник.

Читати повністю

Робимо та підключаємо доводчик до сигналізації

Кількість автомобілів з автоматичним склопідйомниками постійно зростає, і навіть якщо в машині немає такого, багато хто робить його своїми руками. Моїй меті було зібрати такий пристрій та підключити його до…

Читати повністю

Світлодіоди включаються від швидкості

Вийшов "побічний продукт": потрібно було відтестувати режим роботи датчика швидкості для проекту відображення передач на матриці 5х7, для цього зібрав невелику схему. Схемка вміє вмикати світлодіоди в залежності від…

Читати повністю

Цифровий тахометр на мікроконтролері AVR (ATtiny2313)

Тахометр вимірює частоту обертання деталей, механізмів та інших агрегатів автомобіля. Тахометр складається з 2-х основних частин – із датчика, який вимірює швидкість обертання та з дисплея, де буде…

Читати повністю

Простий цифровий спідометр на мікроконтролері ATmega8

Спідометр це вимірювальний пристрій для визначення швидкості автомобіля. За способом вимірювання, є кілька видів спідометра відцентрові, хронометричні, вібраційні, індукційні, електромагнітні, електронні та насамкінець спідометри по системі GPS.

Читати повністю

Плавне розпалювання приладки на мікроконтролері

Ця версія трохи відрізняється схемою: додана друга кнопка налаштування та прибраний потенціометр швидкості розпалювання. Можливості: Два окремі незалежні канали. Для кожного каналу три групи параметрів, що настроюються: час затримки до початку…

Здрастуйте, датагорці!

Після публікації моєї першої статті мене завалили питаннями про мікроконтролери, як, що, куди, чому…

Щоб ви змогли розібратися, як ця чорна скринька працює, я розповім вам про мікроконтролер (далі МК) ATmega8. В принципі фірма Atmel випускає цілу серію МК сімейства AVR - це підродини Tiny та Mega. Я не розписуватиму переваги тих чи інших МК, це вже вам вирішувати, що вам найбільше підходить. Деякі представники великої родини:

Отже, ATmega8, найпростіший МК з усіх ATmega:

Почнемо вивчати нутрощі за спрощеною структурною схемою:

Це узагальнена схема всіх ATmega.

Усі мікроконтролери AVR побудовані за так званою Гарвардською архітектурою, тобто використана роздільна адресація пам'яті програм та пам'яті даних. Переваги цієї архітектури полягають у підвищеній швидкодії, наприклад, ATmega виконує одну інструкцію за один тактовий імпульс, тобто при частоті 16МГц МК виконує 16 мільйонів операцій на секунду.

А тепер про трібуху по порядку.
1. Тактовий генератор виконує синхронізацію всіх внутрішніх пристроїв.
2. ПЗУ - постійне пристрій, що запам'ятовує, використовується для зберігання програми і незмінних даних (констант).
3. Дешифратор команд - він тут найголовніший, керує всім, що йому під руку попадеться.
4. АЛУ – арифметико-логічний пристрій, виконує арифметичні (додавання, віднімання тощо.) і логічні (І, АБО, НЕ, Що Виключає АБО) операції над числами.
5. РОН – регістри загального призначення, ними АЛУ оперує, а також використовуються для тимчасового зберігання даних. Регістри РОН можуть поєднуватися в регістрові пари:
r26: r27 - X;
r28: r29 - Y;
r30: r31 - Z.

Реєстрові пари використовуються для непрямої адресації даних у ОЗП.
6. ОЗУ - оперативний пристрій, що запам'ятовує, використовується для зберігання даних, масивів і стека.
7. PORTA-PORTn – зв'язок із зовнішнім світом, порти вводу/виводу, ну енто зрозуміло для чого…
8. Спец. УВВ – спеціальні пристрої введення/виводу, контролери різної периферії, наприклад USART (інше СОМ-порт), іноді USB, АЦП, ЦАП, I2C, коротше, чого там немає…

Ну та це все теорія, а вам не терпиться щось склеїти, спробувати, і щоб це справа працювала! Тоді перерахуємо, що нам потрібно:

1. Програматор із відповідним софтом, про це я писав у минулій статті;
2. Компілятор мови Сі Code Vision AVR має непоганий інструментарій для розробки програм для МК;

Перед тим як розпочати програмування на Сі, непогано б ознайомитися з якоюсь літературою з цієї мови, наприклад, є чудова книга Кернігана і Рітчі «Мова С».

Ну та гаразд, почнемо…

Тестова схема.

Давайте зберемо таку схему:

Це буде базова модель. До речі, схему краще зібрати на макетній платі, а МК засунути в панельку. Але така схема безглузда. Додамо, наприклад, світлодіод, і не забудемо про струмообмежуючий резистор. Підключимо його до нульового виведення порту.
Схема матиме такий вигляд:

Включимо харчування… НУЛЬ! Що ви хотіли без програми?
Значить…

Пишемо програму!

Отже, ви запустили CVAVR, що потрібно зробити насамперед? Запускаємо майстер Code Wizard AVR, натиснувши на кнопочку з шестернею в панелі інструментів, з'явиться вікно майстра:

Тут вибираємо тип МК та тактову частоту. Далі переходимо на вкладку Ports:

І налаштовуємо, який біт якогось порту у нас буде налаштований на введення або виведення, порт У біт 0 у нас буде видавати сигнал, а інші приймати.
Щоб зберегти налаштування вибираємо меню File/Generate Save and Exit, вводимо імена файлів на всі наступні запити, бажано щоб вони були однакові, ну наприклад prj. Все ми згенерували вихідний текст програми з установками заданими в майстрі.

Давайте подивимося, що у нас вийшло. Перші 22 рядки це коментар, тобто на дії програми він не має жодного впливу, таким чином, все, що знаходиться між «/*» та «*/» є коментарем, і компілятор цю справу ігнорує. У 24 терміні у нас підключається заголовний файл, в ньому описано, як які регістри називаються і за якою адресою знаходяться. Для програмування на Сі подробиці тут зайві.
З 28 рядка у нас починається основна програма визначенням функції main(),

Прокрутимо нижче. Зверніть увагу на рядки 36 і 37, тут присвоюється значення порту і вибирається напрямок передачі. Взагалі це виглядає так:

Тобто, якщо в якийсь біт регістра DDRB записати одиницю, то відповідний біт порту буде працювати на висновок. У нашому випадку це біт 0.
До речі, порти в ATmega мають одну приємну особливість, навіть якщо порт налаштований на введення, а в регістр PORTx записати одиниці, то підключаться внутрішні підтягуючі резистори до плюсу живлення, що виключає використання зовнішніх навісних резисторів. Це зручно при підключенні будь-яких датчиків та кнопок.

Скомпілюємо програму, для цього натиснемо кнопочку Make the Project, або через меню Project/Make. Помилок не повинно бути, якщо ви щось не підправили.

Відкриємо папку C: cvavr bin, знайдемо там файл prj.hex. Це і є скомпільована програма для МК. Підключимо програматор до ПК та МК. Запустимо програму Pony Prog і перетягнемо у вікно файл prj.hex. Увімкніть живлення МК і залийте в нього нашу програму… Знову нічого? А проблема в тому, що ми нічого на нульовий розряд порту В не вивели, вірніше вивели, тільки це нуль. А щоб наш світлодіод спалахнув, треба вивести одиницю. Так і зробимо, замінимо в 36 рядку "PORTB = 0x00;" на "PORTB = 0x01;". Скомпілюємо заново програму. А в програмі Pony Prog перезавантажимо файл за допомогою клавіш Ctrl+L або меню File / Reload Files. Зітремо МК і знову заллємо «прошивку» до нього. УРА! ВОНО ПРАЦЮЄ!!!

До речі, Pony Prog підтримує скрипти, і щоб не мучитися з перезавантаженням, стиранням та записом, можна просто написати скрипт з розширенням. e2s, і обізвати його, наприклад, prog. e2s. Зробити це можна за допомогою блокноту. Вміст у нього буде такий:

SELECTDEVICE ATMEGA8
CLEARBUFFER
LOAD-ALL prj.hex
ERASE-ALL
WRITE-ALL

Помістити скрипт слід в одну папку с.hex-файлом і запускати його подвійним клацанням миші. Можна помістити ярлик на робочий стіл, це вже кому як зручно.

Далі буде…

Для розгляду та можливого повторення, дуже просту схему, дуже гарного таймера. З зручною навігацією по меню, з рідкокристалічним LCD дисплеєм, з годинником реального часу, з мінімально можливою кількістю деталей і при цьому можна запрограмувати цілих сто тимчасових відрізків протягом доби.

Компактні розміри

Відео перевірки таймера

Серцем даного таймера є дуже популярний і не дорогий мікроконтролер Atmega8. Ви можете сказати, що для прошивки нам знадобиться програматор якого немає, але це не так, для прошивки Atmega достатньо всього п'ять коротких 10-15 см. Провідки підключені через резистори 150-200 Ом. безпосередньо до LPT порту за цією схемою.


Ось з цієї причини ці мікроконтролери стали найпопулярнішими у радіоаматорів.

На цьому малюнку Ви бачите:Схему розпинування ніжок МК для підключення та прошивки.

Пункт 1. Підготуємо все необхідне виготовлення таймера.

Найобов'язковіші радіодеталі схеми, інше зазвичай можна підібрати у себе вдома, найменша мікросхема, це годинник DS1307.

Нам потрібні такі радіоелементи:

Інтегральний годинник DS1307
LCD рідкокристалічний індикатор
Стабілізатор 7805
500-1000 Мф – 16 вольт.
Реле або електронний ключ (залежно від навантаження, яке планується підключатися).
опором 5,1ком - 3 шт., резистор змінний (за мануалом LCD дисплея).
Кварц вартовий 32768 Гц.
Кнопки без фіксації – 4 шт.
Батарейка таблетка на 3 вольти.
Текстоліт для плати.
Невеликий трансформатор ~220в. -> ~6-12в.
Коробка розпаювальна для корпусу.
+ Для програматора:резистори 150-200 Ом. - 4 шт., роз'єм LPT порту (для зручності, не обов'язковий).

Обов'язкові інструменти кожного радіоаматора:
Паяльник для паяння мікросхем, паяльник для паяння пасивних радіодеталей та проводів.
Тестер для продзвонювання доріжок та перевірки радіодеталей.
Олово, каніфоль.
+ Принтер лазерний (для виготовлення плати чи інший спосіб).

Пункт 2. Приступимо до виготовлення.

Таймер робитимемо за цією головною схемою.


Як бачите на ній відсутня схема блоку живлення та вихідного виконавчого пристрою, це тому, що можливо ви вирішите використовувати виносний стабілізований БП, а також невідомо яке навантаження ви плануєте підключати, тому кожен повинен сам вибрати виконавчий пристрій під свої технічні вимоги.

Особисто я своєму таймері застосував таку схему БП і виконавчий пристрій на транзисторі і реле.


Але ви можете захотіти в якості виконавчого пристрою застосувати тріаки, тиристори та симістори, варіанти таких схем показані нижче.



Вони компактніші (без радіатора), але менш потужні, ніж просте реле.

Відповідно до головної принципової схеми + БП + ВП та аналізу монтажних габаритів вашої коробки для корпусу, а також розмірів підібраних радіо елементів, проектуємо форму, розмір і малюнок доріжок на платі. Для цього зручно користуватися програмою Sprint Layout.

Для мого пристрою вийшла така проста плата.


Отриманий малюнок переносимо за допомогою спеціального маркера або за технологією ЛУТ (за допомогою лазерного принтера та праски) на мідний шар текстоліту. Якщо у вас принтер лазерний Brother (як у мене), то ідею з ЛУТ краще відразу закинути, через тугоплавкий тонер ~400C замість звичайних~200С, що використовується в ньому, я до речі колись по дурості купив цей принтер саме для ЛУТ:(. тому в результаті моя плата мальована маркером.
Нанесений на мідь малюнок витравлюємо у ванночці з хлорним залізом або будь-яким іншим спеціальним розчином.


На готову плату припаюємо деталі згідно зі схемою, особливу увагу звертаємо при монтажі та паянні мікросхеми годинника та кварцового елемента. Довжина доріжок між ними повинна бути мінімальною, а краще використовувати мікро кварц з наручного годинника і припаяти його безпосередньо до ніжок МС годинника. Весь вільний простір поруч із МС годинника та кварцу заповнюємо майданчиками корпусу (GND). Батарея необхідна для підтримки годинника в робочому стані під час відключення від мережі. Якщо з якоїсь причини ви не стали встановлювати цю батарейку, то посадіть плюсовий провід на корпус, інакше годинник просто не піде.

Мікроконтролер прошиваємо програматором або за допомогою 5 проводків.

*Прошивка* (завантажень: 1414)

Автор прошивки спеціально для зручності (за що йому спасибі) і не став змінювати заводські фьюзи, що дуже полегшує, без проблем, прошивку для радіоаматора-початківця. Якщо МК ще не використовувався новий з магазину, то просто заливаєте прошивку і все, але якщо вже є зміни у ф'юзах, то треба виставити їх так CKSEL=0001. Все інше просто і не потребує пояснення.

Пункт 3. Складання.

Для корпусу дуже зручно використовувати розпаювальні коробки з пластмаси, вони бувають різних розмірів та форм.




У прорізану ножем кришку, за допомогою термоклею з пістолета, закріплюємо LCD екран, прорізаємо отвори під кнопки управління і кнопку живлення.



Підрізаємо виступаючий клей.

Годинник зібраний на мікроконтролері ATtiny2313 та світлодіодній матриці показує час у 6-ти різних режимах.

Світлодіодна матриця 8*8 керується методом мультиплексування. Струмообмежуючі резистори виключені зі схеми, щоб не зіпсувати дизайн, і оскільки окремі світлодіоди керуються не постійно, вони не будуть пошкоджені.

Для керування використовується лише одна кнопка, тривале натискання кнопки (натискання та утримання) для повороту меню та звичайне натискання кнопки для вибору меню.

Це хобі-проект, тому точність ходу годинника залежить лише від калібрування внутрішнього генератора контролера. Я не використовував кварц у цьому проекті, тому що він займав би два потрібні мені висновки ATtiny2313. Кварц може бути використаний для підвищення точності альтернативного проекту (друкованої плати).

Частотомір до 500МГц на Attiny48 та MB501

На цей раз я представлю простий малогабаритний частотомір з діапазоном виміру від 1 до 500 МГц і роздільною здатністю 100 Гц.

В даний час, незалежно від виробника, майже всі мікроконтролери мають так звані рахункові входи, спеціально призначені для підрахунку зовнішніх імпульсів. Використовуючи цей вхід відносно легко спроектувати частотомір.

Однак цей лічильний вхід має дві властивості, які не дозволяють безпосередньо використовувати частотомір для задоволення більш серйозних потреб. Одна з них полягає в тому, що на практиці здебільшого ми вимірюємо сигнал з амплітудою в кілька сотень мВ, який не може переміщати лічильник мікроконтролера. Залежно від типу, для правильної роботи входу потрібно сигнал щонайменше 1-2 У. Інше у тому, що максимальна вимірна частота на вході мікроконтролера становить лише кілька МГц, це від архітектури лічильника, і навіть від тактової частоти процесора.

Термостат для електричного чайника на ATmega8(Термопот)

Цей пристрій дозволяє контролювати температуру води в чайнику, має функцію підтримання температури води на певному рівні, а також увімкнення примусового кип'ятіння води.

В основі приладу є мікроконтролер ATmega8, який тактується від кварцового резонатора частотою 8МГц. Датчик температури аналоговий LM35. Семисегментний індикатор із загальним анодом.

Новорічна зірка на Attiny44 та WS2812

Ця декоративна зірка складається із 50 спеціальних світлодіодів RGB, які контролюються. ATtiny44A. Усі світлодіоди безперервно змінюють колір та яскравість у випадковому порядку. Також є кілька різновидів ефектів, що також активуються випадково. Три потенціометри можуть змінювати інтенсивність основних кольорів. Положення потенціометра індикується світлодіодами при натисканні кнопки, а зміна кольору та швидкість ефекту можна перемикати у три етапи. Цей проект був повністю побудований на компонентах SMD через спеціальну форму друкованої плати. Незважаючи на просту схему, структура плати є досить складною і навряд чи підійде для новачків.

Частотний перетворювач для асинхронного двигуна на AVR

У цій статті описується універсальний трифазний перетворювач частоти на мікроконтролері (МК) ATmega 88/168/328P. ATmega бере на себе повний контроль над елементами керування, РК-дисплеєм та генерацією трьох фаз. Передбачалося, що проект працюватиме на готових платах, таких як Arduino 2009 чи Uno, але це не було реалізовано. На відміну з інших рішень, синусоїда не обчислюється тут, а виводиться з таблиці. Це заощаджує ресурси, обсяг пам'яті та дозволяє МК обробляти та відстежувати всі елементи управління. Розрахунки з плаваючою точкою в програмі не провадяться.

Частота та амплітуда вихідних сигналів налаштовуються за допомогою 3 кнопок та можуть бути збережені в EEPROM пам'яті МК. Аналогічним чином забезпечується зовнішнє керування через 2 аналогові входи. Напрямок обертання двигуна визначається перемичкою або перемикачем.

Регульована характеристика V/f дозволяє адаптуватися до багатьох двигунів та інших споживачів. Також був задіяний інтегрований ПІД-регулятор для аналогових входів, параметри ПІД-регулятора можуть бути збережені в EEPROM. Час паузи між перемиканнями ключів (Dead-Time) можна змінити та зберегти.

Частотомір III від DANYK

Цей частотомір з AVR мікроконтролером дозволяє вимірювати частоту від 0,45 Гц до 10 МГц і період від 0,1 до 2,2 мкс у 7 автоматично обраних діапазонах. Дані відображаються на семирозрядному світлодіодному дисплеї. В основі проекту мікроконтроллер Atmel AVR ATmega88/88A/88P/88PA, програму для завантаження ви можете знайти нижче. Налаштування бітів конфігурації наведено на малюнку 2.

Принцип виміру відрізняється від попередніх двох частотомірів. Простий спосіб підрахунку імпульсів через 1 секунду, що використовується у двох попередніх частотомірах (частотомір I, частотомір II), не дозволяє вимірювати частки Герц. Ось чому я вибрав інший принцип виміру для свого нового частотоміра III. Цей метод набагато складніший, але дозволяє вимірювати частоту з роздільною здатністю до 0,000 001 Гц.

Частотомір II від DANYK

Це дуже простий частотомір на мікроконтролері AVR. Він дозволяє вимірювати частоти до 10 МГц у 2-х автоматично вибраних діапазонах. Він заснований на попередньому проекті частотоміра I, але має 6 розрядів індикатора замість 4-х. Нижній діапазон вимірювання має роздільну здатність 1 Гц і працює до 1 МГц. Вищий діапазон має роздільну здатність 10 Гц і працює до 10 МГц. Для відображення вимірюваної частоти використається 6-розрядний світлодіодний дисплей. Прилад побудований на основі мікроконтролера Atmel AVR ATtiny2313Aабо ATTiny2313

Мікроконтролер тактується від кварцового резонатора частотою 20 МГц (максимально допустима тактова частота). Точність вимірювання визначається точністю цього кристала, і навіть конденсаторів C1 і C2. Мінімальна довжина напівперіоду вимірюваного сигналу повинна бути більшою за період частоти кварцового генератора (обмеження архітектури AVR). Таким чином, за 50% робочому циклі можна вимірювати частоти до 10 МГц.

Частотомір I від DANYK

Це, ймовірно, найпростіший частотомір на мікроконтролері AVR. Він дозволяє вимірювати частоти до 10 МГц у 4-х автоматично вибраних діапазонах. Найнижчий діапазон має роздільну здатність 1 Гц. Для відображення вимірюваної частоти використається 4-розрядний світлодіодний дисплей. Прилад побудований на основі мікроконтролера Atmel AVR ATtiny2313Aабо ATtiny2313. Налаштування бітів конфігурації можна знайти нижче.

Мікроконтролер тактується від кварцового резонатора частотою 20 МГц (максимально допустима тактова частота). Точність виміру визначається точністю цього кристала. Мінімальна довжина напівперіоду вимірюваного сигналу повинна бути більшою за період частоти кварцового генератора (обмеження архітектури MCU). Таким чином, за 50% робочому циклі можна вимірювати частоти до 10 МГц.