Схеми електронні на attiny2313. Простий годинник на мікроконтролері Attiny2313

Схеми електронні на attiny2313. Простий годинник на мікроконтролері Attiny2313

У цій статті пропонується схема цифрового термометра на мікроконтролері AVR ATtiny2313, датчику температури DS1820 (або DS18b20), підключеному до мікроконтролера за протоколом 1-wire, та РК-дисплеї 16x2 на контролері HD44780. Цей пристрій може знайти широке застосування серед радіоаматорів.

Програма для мікроконтролера написана на ассемблері серед AVR Studio. Монтаж виконаний на макетній платі, кварцовий резонатор на 4МГц, мікроконтролер ATtiny2313 можна замінити на AT90S2313 попередньо перекомпілювавши вихідний код програми. Похибка датчика DS1820 близько 0,5 С. ​​В архіві також знаходиться прошивка для випадку, якщо використовується датчик DS18B20. Опитування датчика проводиться щосекунди.

WAV-плеєр зібраний на мікроконтролері AVR ATtiny85 (можна використовувати серію ATtiny25/45/85). У мікроконтролерів цієї серії всього вісім ніжок і два ШІМ (Fast PWM) з несучою 250kHz. Для керування карткою пам'яті достатньо всього 6 проводів: два для живлення та чотири сигнальні. Вісім ніжок мікроконтролера цілком достатньо для роботи з картою пам'яті, виведення звуку і кнопки управління. У будь-якому випадку цей плеєр дуже простий.

За допомогою даного вимірювача ємності можна легко виміряти будь-яку ємність від одиниць пФ до сотень мкф. Існує кілька методів виміру ємності. У цьому проекті використовується інтеграційний метод.

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

Цей проект було зроблено на прохання друга для встановлення на двері до складського приміщення. Надалі було виготовлено ще кілька на прохання друзів та знайомих. Конструкція виявилася простою та надійною. Працює пристрій так: пропускає лише ті RFID-карти, які були заздалегідь занесені в пам'ять пристрою.

Знадобився мені тут термометр в інкубатор, а оскільки термостат у мене вже стоїть, то робитиму тільки сам термометр. У своєму випадку використовуватиму 3-х розрядний, а не 4-х розрядний індикатор. Поговоримо поки що трохи про самі цифрові індикатори. Семисегментний індикатор складається з семи елементів індикації (сегментів), що окремо включаються і вимикаються подачею живлення. Включаючи їх у різних комбінаціях, їх можна скласти зображення цифр. У сучасних індикаторах світлодіоди виготовляють у формі сегментів, тому світлодіодні індикатори мають гранично просту форму - чим менше різних світлодіодів, тим дешевшим є пристрій. Сегменти позначаються буквами від Aдо G. Восьмий сегмент – це точка. Ось параметри індикатора, що використовується в термометрі:

  • Максимальна пряма напруга (при струмі 20 мА):.....2.5
  • Максимальний прямий струм: .....25-30 мА
  • Максимальна зворотна напруга: .....5
  • Зворотний струм (при напрузі 5): .....10 мкА
  • Потужність розсіювання: .....150 мВт
  • Максимальний імпульсний прямий струм: 140-160 мА.
  • Діапазон робочих температур: .....-40…+85°C

Тепер приступимо до виготовлення самого термометра. Вивчимо принципову схему.

Для його виготовлення нам знадобиться:

>>> 4-х розрядний семисегментний індикатор 1шт
>>> Керамічний конденсатор на 0.1 мікрофарад 1шт
>>> Електролітичний конденсатор на 100 мкф 16в (можна і 10)
>>> Резистори 100-200 ом 0.125 вт 8шт.
>>> Мікроконтролер AtTiny2313 1шт.
>>> Панелька 20 ніг 1шт.
>>> Датчик DS18B20 1шт.
>>> Провід, паяльник, золоті руки))

Зібравши всі необхідні радіокомпоненти, приступимо до виготовлення мікроконтролерного термометра. Паяємо резистори до індикатора.

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

Щоб прошити цей МК нам потрібен. Як його зробити дивимося на засланні. Відкриваємо PonyProg (Якщо у вас програматор зі статті вище) і закидаємо прошивку. При закиданні прошивки не забуваємо натискати кнопку " ПРОЧІСТЬФьюзи виставляємо як на фото нижче:

Теж один із важливих факторів: при виставленні ф'юзів не забуваємо натиснути кнопку " ЧИТАТИ(Read). І зберігаємо прошивку, виймаємо мікроконтролер із програматора і вставляємо у пристрій.

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

Як працює термометр на ATTINY

Пристрій дійсно настільки простий, що чудово підійде контролеристам-початківцям, як перший діючий практичний проект на AtTiny. З вами був Boil.

Обговорити статтю ТЕРМОМЕТР НА ATTINY

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

Для створення цього годинника нам знадобляться:

  • Кварцовий резонатор на 16 МГц – 1 прим.;
  • Мікроконтролер Attiny2313 -1 шт;
  • Конденсатор від 22 пф до 27 пф - 2 шт;
  • Конденсатор 220 н - 1 шт;
  • Стабілізатор 7805 - 1 шт;
  • Транзистор – 4 прим;
  • Індикатор SA15-11GWA - 4 шт (можна будь-який інший із загальним анодом);
  • Кнопка – 2 шт.;
  • Резистор 100 Ом - 8 шт;
  • Резистор 200 Ом - 4шт;
  • Резистор 10 ком - 1 шт.
  • Харчування здійснюється від простого.

Опис роботи простих годинників на Attiny2313

Тактується кварцовим резонатором із робочою частотою 16 МГц. Як лічильник часу, у схемі мікроконтролера Attiny2313 запущений 16 бітний таймер з предделителем 256, сконфігурований створення переривання по досягненні лічильником значення 625. Отже, вийшло переривання 100 разів у секунду.

Тимчасовий інтервал перебуває у глобальних змінних, і за кожному перериванні необхідно збільшити значення мілісекунд на 1. Якщо число мілісекунд доходить до 100, необхідно збільшити на 1 величину секунд, а величину мілісекунд скинути. І далі в тій же послідовності до десятків годин, які скидаються після досягнення 24 без додавання наступного розряду. Годинник на мікроконтролері Attiny2313 максимально простий, тому він не відображає ні дату, ні перехід на зимовий/літній час і т.д.

Таким чином, отримуємо величину поточного часу, записаного в глобальних змінних. Тепер потрібно вивезти ці значення. Оскільки кількість портів мікроконтролера негаразд багато, то використовуємо таку особливість зору як інерційність. Катоди всіх чотирьох індикаторів годинника з'єднані паралельно, а аноди управляються окремо, що дозволяє в кожен момент часу відобразити цифру на будь-який індикатор.

Швидко перемикаючи порт B мікроконтролера, до якого підключені катоди і швидко перемикаючи аноди, можемо організувати видимість, що відображаються всі 4 цифри, незважаючи на те, що одночасно працює лише одна. Іншими словами, якщо поточний час 10:43, то виводимо цифру 1 на перший індикатор годинника, через невеликий інтервал часу (порядку 1 мс) виводимо цифру 0 на другий індикатор, через 1 мс відображаємо 4 на 3 індикатор, через 1 мс відображаємо 3 на 4 індикатор та знову по колу.

Пристрій цієї статті – робота з SD картами. Тема стара і порядно заїжджена, але застосування SD карток варто того, щоб про це написати ще раз.
Взагалі SD карти (SDC, SD Card) мають багато переваг і їх дуже просто і зручно застосовувати в невеликих проектах, що вбудовуються. Цьому сприяє низка факторів:
- дуже простий інтерфейс взаємодії з карткою (реалізується за допомогою SPI);
- велика швидкість роботи (мікроконтролер здатний переганяти дані з карти SD зі швидкістю близькою до 10 Мбіт/с);
- низьке енергоспоживання (буквально пару міліампер - не більше);
- невеликі розміри;
- доступність та дешевизна.
У SD карток практично немає недоліків (крім, хіба що, процедури їх ініціалізації:)).

1. Введення.

Пристрій, описаний у цій статті, назвав SD Card Talking Device. Трохи пафосно;), але за назвою зрозуміло, що це пристрій, що говорить. Воно призначене для озвучення ваших проектів. Якщо коротко, то воно працює таким чином: на SD карту записуються пронумеровані звукові файли, які пристрій програє за Вашою командою. Сфера застосування досить широка – системи оповіщення, іграшки, роботи, розумний будинок тощо. Габарити пристрою досить скромні (можна і менше, але я свідомо вибрав мікроконтролер ATtiny2313, який дешевше і легше дістати). Основний наголос я намагався робити на простоту та максимальну функціональність.
Забігаючи вперед, дивимося, що має вийти в результаті:

Стане в нагоді такий пристрій? Тоді збираємо!

2 Карта пам'яті.

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

SD карта пройшла досить довгий шлях еволюції та має кілька варіантів її реалізації (MMC – як варіант SD карти, SD ver1, SD ver2, SDHC, SDXC). Процедура спілкування з картою проста і універсальна для всіх типів карт, а ось запуск в роботу (ініціалізація карти) досить неоднозначний і заплутаний процес, з ритуальними «пересмикуваннями» карти, посилкою порожніх «dummy» команд та іншими незрозумілими речами (короче, танці з бубнами) обов'язкові:)). Сама специфікація на SDC протокол описує процес ініціалізації досить просторо, воно й зрозуміло, виробників карток темрява, у кожного своє залізо, зі своїми особливостями… До чого я це веду? - Я спробував зробити процедуру ініціалізації максимально універсальною, але будьте готові до того, що деякі карти не підуть. Тому якщо у Вас чогось не ладнається з пристроєм, спробуйте іншу карту пам'яті – може причина в цьому.

У цьому пристрої підтримуються картки SD розміром до 2 Гб, включно. Все що вище (SDHC та SDXC) – не підтримується.
Для пристрою немає різниці в якому форм-факторі картка (SD, MiniSD або MicroSD), але Ви повинні правильно її підключити, відповідно до розпинування картки.

3 Файлова система.

У пристрої працюють картки, що мають файлову систему FAT16. Ця система якнайкраще підходить для пристроїв подібних до нашого, так як проста і легко реалізована (FAT12 і FAT32, в принципі, теж не складно реалізувати, але це недоцільно, через відсутність будь-яких переваг у порівнянні з FAT16).

Немає особливих вимог щодо форматування картки - її можна відформатувати в будь-якому доступному пристрої. Стандартне форматування Windows цілком підходить для цього.

Для коректної роботи пристрою звукові файли, розташовані на карті SD, повинні відповідати певним вимогам:
а) Формат файлу має бути - стиснутим WAV.
Параметри файлу такі:
- Бітрейт – частота дискретизації (Frequency) – 32000 Гц;
- кількість каналів (Channels) - 1 (mono);
- Розмірність (Sample size) – 8 біт.
Ще можливе таке скорочення - WAV PCM 8U

b) Файл має бути названий особливим чином. Щоб пристрій знало який файл перший, другий, третій тощо. перший символ імені файлу має бути великою літерою латинського алфавіту (решта назви, як і розширення файлу - ігнорується).
Наприклад, коректними будуть такі назви файлів:
А_Лай_собаки.wav – перший трек
B-Це другий трек.wav - другий трек
З Warning! Error!.wav - третій трек

c) Для використання додаткових можливостей пристрою файли можуть розташовуватися у двох папках з іменами «1» і «2». Пристрій має перемикач для вибору активної папки, тобто одна і та ж команда запуску відтворення може запускати треки з папки «1» або «2», залежно від рівня на вході, що перемикає (свого роду вибір звукової схеми - дуже корисна річ!) . Якщо жодної папки (або обох) не існує, файли відтворюються з кореневого каталогу.

Разом зі звуковими треками можна зберігати будь-які інші файли, за умови, що вони не створюватимуть конфліктів своїми іменами (краще їх скласти в окремий каталог, тоді не доведеться звертати уваги, як вони там названі).

d) Зважаючи на малий об'єм SRAM, у ATtiny2313 неможливо створити буфер для попереднього читання даних, тому дані з файлу безпосередньо видаються на відтворення. Відповідно, немає можливості (бракує часу) виконувати пошук фрагментів файлу за таблицею FAT. Іншими словами, файли, записані на карту, мають бути не фрагментовані.

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

4 Схема. Друкована плата.

Схема пристрою є максимально простою. Фактично, крім самого мікроконтролера та SD карти, у ній нічого немає. Для себе я зробив друк під SMD компоненти, тому що планується застосувати цей девайс в обмеженому за габаритами місці. Якщо для Вас габарити не критичні, можна зібрати схему на макетці в DIP варіанті. У разі макетки, збирання пристрою займе у Вас від сили 15 хвилин. Допустима напруга живлення для SD карти від 2.7 до 3.6 вольт. У цьому проміжку нормально працює і мікроконтролер, тому немає необхідності застосовувати будь-які узгоджувальні компоненти. Я перевіряв роботу всього пристрою і при живленні в 5 вольт - все працювало нормально, але не рекомендую так робити на постійній основі, оскільки різні карти можуть перевищувати напругу реагувати по-різному. Як кардхолдер для microSD я використовував адаптер, підпаявшись прямо до його контактів. Якщо потрібні менші габарити краще використовувати справжній кардхолдер для microSD.

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

Після того як плата спаяна – можна прошивати мікроконтролер.

Невелика галерея готового пристрою:




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

5 Робота пристрою.

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

5.1 Кнопки пристрою, їхня дія.

Я спробував зробити пристрій максимально функціональним, тому дуже багато ніжок мікроконтролера задіяні під перемикачі режимів роботи (від цього пристрій нагадує їжачка:)). Якщо Вам якась функція не потрібна - просто залиште «висіти» ногу в «повітря».
Дія перемикачів:
- “Monster” – дозволяє уповільнити (у 2 рази) відтворення треку – створюючи ефект низького голосу. Перемикач працює «на льоту» – швидкість змінюється за фактом перемикання;
- “Helium” – прискорює відтворення треку (на 1/3) – створюючи ефект високого голосу. Перемикач працює "на льоту";
- "Repeat" якщо цей перемикач замкнутий на землю, то вибраний трек буде нескінченно (до моменту розмикання перемикача) відтворюватиметься. Це може бути корисним, наприклад, якщо потрібно створювати певний звуковий фон – шум дощу, горіння багаття, дзюрчання струмка…;
- “Select / Play” кнопка, яка запускає трек на відтворення (опис нижче);
- "Select track"- встановлення номера відтворюваного треку (опис нижче);
- “Dir1/Dir2” – вибір звукової схеми (опис нижче).

5.2 Запуск відтворення.

Запустити відтворення певного треку можна трьома способами:
- надіславши UART заголовну букву латинського алфавіту - відразу починається відтворення файлу, що містить цю букву на початку назви;
- якщо за допомогою “Select track” вибрано номер файлу (двійковим кодом 0001=”A”, 0010=”В”, і т.д. 1- нога замкнута на землю, 0 - “висить” у “повітря”), то кнопка "Select / Play" запустить відповідний файл на відтворення;
- якщо за допомогою "Select track" нічого не вибрано (0000 - ноги "висять" у "повітрях")), то натискаючи кнопку "Select / Play" певну кількість разів, запускаємо відповідний трек (1 раз = "A", 2 рази = "В", і т.д.).

5.3 Звукові схеми.

Дуже корисною функцією є функція вибору однієї із двох звукових схем. Це означає, що перемикачем Dir1 / Dir2 вибирається папка на карті, з якої відтворюватиметься трек.

Застосувань дуже багато: повідомлення російською та англійською (навчальні іграшки), дитячий та дорослий голос, шуми поточної води та палаючого вогню, кішка / собака, добрий і злий поліцейський:) , заспокійливі / бадьорі звуки та ще купа подібних варіантів.

Наприклад, Вам потрібно, щоб ваш пристрій вміло спілкуватися чоловічим та жіночим голосом. Реалізується це так:
- створюємо два комплекти повідомлень, відповідно, в жіночому та чоловічому варіанті;
- Нумерацію файлів для обох варіантів робимо однакову. Не забуваємо, що пристрій «бачить» тільки першу літеру в назві файлу, тому для себе Ви можете імена зробити більш зрозумілими, наприклад «С_Ожидаю команду_муж.wav» і «С_Ожидаю команду_жен.wav» цілком коректні;
- комплект чоловічих повідомлень копіюємо до папки «1», а жіночих до папки «2».
Тепер в залежності від стану перемикача "Dir1 / Dir2" по одній і тій же команді відтворюватимуться треки з "чоловічої" або "жіночої" папки.

5.4 Індикація роботи пристрою.

Так як у тині2313 дуже мало ніг, і майже всі задіяні на перемикачі, мені довелося пожертвувати нормальною індикацією, а натомість зробити щось НЕ нормальне. Для індикації різних режимів роботи використовується лише одна нога мікроконтролера, до якої підключено два світлодіоди - червоний і зелений (ну або які Вам більше подобаються). Різні режими роботи пристрою відображаються певним колірним кодом:
- блимає червоний світлодіод - відсутня SD карта або її тип не підтримується пристроєм;
- горить червоний світлодіод - SD карта підтримується та вдало проініціалізувалася, але карта відформатована не в FAT16;
- горить зелений світлодіод - SD карта вдало проініціалізувалася, знайдено потрібну файлову систему і пристрій готовий відтворювати трек - очікування команди;
- блимає зелений світлодіод - пристрій відтворює трек;
- горить зелений, короткочасно спалахує червоний, знову горить зелений - не знайдено трек;
- горить зелений, короткочасно тухне і знову спалахує зелений - натиснута клавіша вибору треку.

5.5 Налагоджувальна інформація.

Для полегшення пошуку проблемних місць (якщо пристрій не хоче працювати), я кожен етап ініціалізації в програмі продублював повідомленнями по UART. Після кожного успішного кроку UART відправляється відповідний символ:
- "S" - (Start) периферія мікроконтролера проініціалізована нормально;
- "C" - (Card Init) SD карта проініціалізована нормально та підтримується;
- "F" - (FAT Init) FAT система підтримується;
- "1" - (No 1 Dir) немає папки "1" читання буде здійснюватися з кореневої директорії;
- “2” - (No 2 Dir) немає папки «2» читання буде здійснюватися з кореневої директорії;
- "R" - (Ready) пристрій повністю готовий - чекає команди запуку треку;
- Крім того, при кожному запуску треку, в UART передається велика літера імені треку.

6 Треки для озвучення Ваших пристроїв.

6.1 Конвертування треків

Якщо в бібліотеці вище нічого потрібного не знайшлося, то отримати необхідні треки можна в мережі (є багато спеціальних сайтів для музикантів та відео монтажу, де вже зібрані великі бібліотеки звуків), в інсталяціях ігор (часто звуки ігрового процесу розділені по треках і складені в окрему папку). Ще можна вирізати звукові ефекти з фільмів та музичних композицій. Знайдені треки потрібно переконвертувати у формат, який підтримує пристрій. Нагадую, формат файлу має бути - стиснутим WAV. 32000 Гц, 1 канал, 8 біт (WAV PCM 8U)
Для конвертації в такий формат підійде будь-який музичний редактор, або, якщо потрібно просто конвертувати трек без його редагування -

 

 

Це цікаво: