Фото-реле на мікроконтролері ATTiny13. Мініатюрний таймер-нагадувач на мікроконтролері ATtiny13A

Іноді необхідно запрограмувати невелике завдання, для якої навіть Ардуїно занадто надмірний. Для таких невеликих завдань можуть підійти маленькі, недорогі та дуже малопотужні контролери ATTiny.
У цьому огляді я розповім про них, як їх готувати і з чим їсти.

Купив я ATTiny13 досить давно. Лежали вони і чекали свого часу. І тут на роботі я знайшов настільну світловодну ялинку зі згорілою начинкою. Ось тут і згадав про етик контролери.
Але все по порядку

Почнемо з характеристик ATTiny13

Це 8-бітові контролери від c RISC-архітектурою та наднизьким споживанням.
  • Пам'ять для програм (FLASH) – 1Кб
  • Енергонезалежна пам'ять даних (EEPROM) - 64 Байт
    ОЗУ – 64 Байт
    Число входів/виходів - 6
    Виходів ШІМ - 2
    Аналогових входів (АЦП 10біт) - 4
    Таймер 8 біт - 1
    Напруга живлення 1.8 – 5.5В
    Робоча частота – до 20МГц
    Споживання в активному режимі 1.8В/1МГц – 190мкА
    Споживання в режимі сну 1.8В/1МГц - 24мкА
  • Я придбав тіньки в корпусі DIP8.


    У порівнянні з вони дуже маленькі

    Програмування ATTiny

    Програмувати я вирішив з Arduino IDE, Тим більше, що я вже На сайті arduino.cc є . Звідти ж. Розпакую архів у папку c:\Program Files (x86)\Arduino\hardware\ і в Arduino IDE з'являються додаткові плати
    Тепер завантаження програм. Об'єм пам'яті мікропроцесора всього 1Кб і ніякий завантажувач туди не поміститься. Тому завантаження скетч проводиться програматором по ISP. USBAsp, яким я програмував Atmega328 працювати з тинькою не захотів. Потрібна спеціальна прошивка програматора, з якою я не став поратися. . Для цього збираю таку схему:
    В Arduino IDE вибираю "Файл->Зразки->ArduinoISP" і завантажую в Ардуїно скетч програматора. Потім вибираю "Інструменти->Программатор->Arduino as ISP". Тепер можна завантажувати прості скетчі в тіньку. Слід зазначити, що ATTiny13 core for Arduino містить обмежений набір функцій Ардуїно.

    Список функцій Апдуїно, що підтримуються ATTiny13 core

    • random()
    • randomSeed()

    • millis()
    • micros()
    • delay()
    • delayMicroseconds() *
    • analogRead()
    • analogWrite()
    • pinMode()
    • digitalRead()
    • digitalWrite()
    • pulseIn() (Untested)
    • shiftIn() (Untested)
    • shiftOut() (Untested)

    Застосування ATTiny13

    Вирішив відновити таку ялинку зі світловодами
    Спочатку там стояла галогенна лампочка на 12В та моторчик, який крутив кольоровий диск-світлофільтр.

    Все це благополучно померло. Збираю таку схему зі шматочком світлодіодної стрічки:
    на макетній платі
    Нехай тінька плавно змінює кольори стрічки. Але для цього потрібно 3-х канальний ШІМ, а у ATTiny13 апаратно лише два такі виходи. Значить ШІМ буде програмний на 3 канали, керований вбудованим таймером.

    Скетч трьох-канального ШІМ для ATTiny13

    #include #include #include #include uint8_t counter = 0; uint8_t lev_ch1, lev_ch2, ​​lev_ch3; uint8_t buf_lev_ch1, buf_lev_ch2, ​​buf_lev_ch3; ISR(TIM0_OVF_vect)( if (++counter==0) //лічильник переходу таймера через нуль ( buf_lev_ch1=lev_ch1; //значення тривалості ШІМ buf_lev_ch2=lev_ch2; buf_lev_ch3=lev_ch3; PORTB |=(1<

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


    Ялинка готова. Світить не гірше ніж із галогенною лампочкою


    Висновки:

    Мікроконтролери ATTiny13 цілком підходять для нескладних завдань автоматизації. Їх переваги: ​​низьке споживання і невелика ціна До недоліків можна віднести дуже маленькі ресурси і досить складне (порівняно зі звичайним Ардуїно) налаштування програмування. Але безумовно, ці мікроконтролери гідно займають свою нішу

Привіт датагорцям!
Я затіяв ремонтні роботи вдома, і мені знадобилася система автоматичного керування освітленням, яке повинно вимикатися вдень і, відповідно, вмикатися вночі. Я фанат AVR-контролерів і вирішив пошукати на просторах Інтернету готові напрацювання, але, на жаль, не знайшов нічого придатного.

Мені потрібна була проста система, яка б заміряла рівень освітленості, перемикала освітлення в режимі «день/ніч» і мала б таймер затримки перемикання реле.

Так народився цей проект – фото-реле на дрібному восьминогому 8-бітному МК ATTiny13. Навіщо «городити город» на МК, коли все можна зібрати на транзисторах та купі розсипухи? Давайте вважати мій проект навчальним, спрямованим на освоєння контролерного сегмента електроніки.

Схема фото-реле


Схема має власний безтрансформаторний блок живлення, побудований на C1, C2, R1, R2, стабілітроні D1 та діодному мосту BR1.

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

На стабілітроні виходить напруга 9,1 В. Це на 2 В вище, ніж мінімальна допустима вхідна напруга для нормальної роботи стабілізатора 78L05 і достатня для роботи реле (хоч і номінальна напруга котушки у нього 12, про це пізніше).
Діод D3 служить для захисту стабілізатора 78L05. Ємності C3, C4, C5 є його стандартним обважуванням. Транзистор Q1 є ключем для реле RL1, резистор R4 обмежує базовий струм. Ємності C6, C7, C8 згладжують шуми на лініях контролера.

Підрядні резистори «LUX» та «TIME» служать для налаштування порога спрацьовування реле в залежності від освітленості та регулювання затримки даного спрацьовування від 1 до 29 хвилин.

З харчуванням довелося повозитися. Справа в тому, що максимально допустимий струм через стабілітрон D1 (якщо він на 1 Вт) становить 31 мА. Значить споживаний струм реле разом із стабілізатором напруги U2 та контролером U1 не повинен перевищувати цього значення. Слід врахувати можливі коливання Мережі від 235 до 190 В. При ємності C1 0,47 мкФ струм через стабілітрон становить бл. 22 мА при рівні вхідної напруги 220, теоретично є запас.
Провівши досліди я з'ясував, що застосоване реле надійно спрацьовує при напрузі 6,9 і струмі 18 мА, а відпускання відбувається аж при 2 В. На практиці я спостерігав, як при мережному напрузі 190 В реле продовжувало нормально працювати.

--
Дякую за увагу!

Прошивки LED + UART для заливки (hex)
🕗 03/12/16 ⚖️ 20,82 Kb ⇣ 25 Здрастуйте, читачу!

--
Дякую за увагу!
Ігор Котов, головний редактор журналу "Датагор"

Схему налагоджував у Proteus v8.4 SP0
🕗 03/12/16 ⚖️ 22,72 Kb ⇣ 31 Здрастуйте, читачу!Мене звуть Ігор, мені 45, я сибіряк і затятий електронник-аматор. Я вигадав, створив і утримую цей чудовий сайт з 2006 року.
Вже понад 10 років наш журнал існує лише за мої кошти.

Гарний! Халява скінчилася. Хочеш файли та корисні статті - допоможи мені!

--
Дякую за увагу!
Ігор Котов, головний редактор журналу "Датагор"

Друковану плату малював у SprintLayout v6.0

Програму писав CodeVision AVR 3.12 ( вихідники):

Конструкція являє собою пристрій ІЧ-локатора, реалізований на одному мікроконтролері AVR, мікросхемі ATtiny13. Короткі пачки імпульсів випромінюються передавачем (ІЧ-світлодіодом) в інфрачервоному діапазоні хвиль і приймаються, відбившись від поверхні своїм фотоприймачем. Прийняті відбиті сигнали обробляються і якщо сприйняті як корисний сигнал відображаються світлодіодною індикацією.

Іноді потрібно просто встановити часовий інтервал, без особливої ​​мікроскопічної точності. Наприклад, для приготування їжі, де похибка кілька секунд за півгодини, година не відіграє важливої ​​ролі. Виходячи з цих міркувань як тактовий генератор вибраний внутрішній RC-генератор. Стабільність якого залежить від температури та зміни напруги живлення, оскільки мікроконтролер зберігає свою працездатність при напрузі 1,8-5,5 В. Як джерело живлення застосував 3-вольтову батарейку (або 2 елементи по 1,5 В).

Ця проста міні-охоронна сигналізація на мікроконтролері ATtiny 13 призначена для охорони квартир, офісів, дач... При розмиканні геркона сигналізація подає звуковий сигнал або при невеликому доопрацюванні можна зробити відправку SMS з мобільного телефону. Управління сигналізацією здійснюється ІЧ-брелками. Основні характеристики: динамічне живлення фотоприймача, пробудження з режиму "SLEEP" за перериванням від сторожового таймера в режимі "POWER-DOWN", і як наслідок низьке енергоспоживання - близько 30мкА.

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

Дротовий шлейф, розрахований на урвище дроту при порушенні периметра;

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

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

Для радіоаматорів-початківців, що освоюють мікроконтролери, часто необхідно зібрати і перевірити прошивку або схему в дії на реальному мікроконтролері (наприклад proteus часто просто відмовляється адекватно симулювати схему з мікроконтролером). Для цих цілей, і не тільки початківці, використовують налагоджувальну плату або макетну плату. Для мікроконтролерів Attiny13/15 та сумісними з ними по розпинуванню висновків інших мікроконтролерів, була виготовлена ​​налагоджувальна плата оснащена мінімальним необхідним функціоналом. Така плата має невеликий компактний розмір і дешева у збиранні.

На фото вище в мікроконтролер завантажена програма і сама налагоджувальна плата підключена до живлення 5 вольт через програматор від USB порту ноутбука.

Налагоджувальна плата для мікроконтролерів Attiny13/15 побудована за наступною схемою:

Для підключення мікроконтролера до налагоджувальної плати використовується роз'єм для мікросхем в корпусі DIP-8 або по простому роз'єм "ліжечко" для восьми-ногих мікросхем. Цей роз'єм можна використовувати як у звичному виконанні з притискними контактами, так і у варіанті з цанговими контактами. Застосування такого роз'єму обумовлюється можливість швидкої заміни мікроконтролера у налагоджувальній платі при можливих несправностях, пов'язаних із мікросхемою. Наприклад, через недосвідченість можна закласти мікроконтролер. Швидким рішенням буде замінити його у налагоджувальній платі, а в майбутньому вилікувати мікроконтролер із застосуванням інших засобів - RC - ланцюжок або Fuse bit doctor"a. Також можливо буде швидко змінити марку мікроконтролера - наприклад Attiny13 замінити на Attiny15 в рамках однієї плати.

Нижче представлена ​​готова налагоджувальна плата з боку монтажу та з боку паяння:

Як перемички, крім звичних дротяних, використовувалися резистори типорозміру 1206 номіналом 0 Ом.

Отже, трохи про те, що є на платі налагодження. Почнемо від живлення - напруга на мікроконтролер береться від програматора від USB порту (5 вольт), ця напруга до мікроконтролера може подаватися безпосередньо або через три діоди, що знижують напругу до 3,2 - 3,3 вольт. Застосування діодів обумовлено їхньою мінімальною вартістю. За бажанням Ви завжди можете підредагувати друковану плату та застосовувати стабілізатори напруги типу AMS1117 3,3 вольта. вибір напруги живлення здійснюється перемичками Jmp1 і Jmp2 на налагоджувальній платі. Зручно використовувати джемпера з "ручками" як на фото, щоб не виголятися при необхідності перекинути живлення. Також живлення від програматора на мікроконтролер надходить через обмежувальний резистор R2. Його номінал можна брати від 0 до приблизно 10 Ом в залежності від переваг. До висновку PB5 (reset) мікроконтролера резистором R1підтягується напруга живлення, це необхідно для запобігання мимовільному перезапуску контролера за наявності будь-яких перешкод. Також до цього висновку підключено тактову кнопку для можливості вручну перезапустити мікроконтролер у процесі налагодження будь-якої схеми або прошивки.

Так як пріоритетом даної налагоджувальної плати є виготовлення не найскладніших проектів, то на платі передбачені рознімання з цанговими контактами для підключення трьох світлодіодів. Обмежувальні струм резистори підібрані таким чином, щоб можна було використовувати світлодіоди трьох кольорів одночасно (червоний, зелений та синій) – 180 Ом для червоного кольору та по 100 Ом для зеленого та синього кольору. Такий розкид номіналів обумовлений тим, що падіння напруги на червоних світлодіодах зазвичай менше, ніж на інших кольорах. Таке рішення дозволить використовувати RGB світлодіоди.

Однак застосовувати можна і звичайні світлодіоди для індикації чогось.

Спеціально для програмування на друкованій платі передбачений стандартний 10-піновий роз'єм для програматорів AVR, наприклад USBasp або AVRdoper або інших.

Для підключення до висновків мікроконтролера різних компонентів або пристроїв передбачено кілька роз'ємів (штирьових з'єднань). З одного боку два типи роз'ємів (PLS-5 та PBS-5) - включають контакт напруги живлення та контакт нульового потенціалу (Gnd), а також PB0, PB1, PB2 мікроконтролера. З іншого боку також два типи роз'ємів (PLS-4 і PBS-4) - включають контакт нульового потенціалу (Gnd) та контакти висновків мікроконтролера PB3, PB4, PB5. Окремо є роз'єм PLS-3, що включає три контакти приєднаних до напруги живлення Vcc. Детальніше дивіться електричну схему принципову.

На платі є кілька конденсаторів, що фільтрують живлення, що підводиться до мікроконтролера, для покращення якості роботи.

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

Для того, щоб запрограмувати мікроконтролер Attiny13 тестової програмою (прошивкою) необхідно знати конфігурацію ф'юз бітів:

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

Список радіоелементів

Позначення Тип Номінал Кількість ПриміткаМагазинМій блокнот
IC1 МК AVR 8-біт

ATtiny13A

1 ATtiny15 До блокноту
VD1-VD3 Випрямний діод

1N4148

3 До блокноту
C1 Електролітичний конденсатор10 мкФ1 До блокноту
C2, C3 Конденсатор100 нФ2 До блокноту
R1 Резистор

10 ком

1 До блокноту
R2 Резистор

4.7 Ом

1 Від 0 до 10 Ом До блокноту
R3, R5 Резистор

100 Ом

2 До блокноту
R4 Резистор

180 Ом

1 До блокноту
LED1 СвітлодіодЧервоний1 До блокноту
LED2 СвітлодіодЗелений1 До блокноту
LED3 СвітлодіодСиній1 До блокноту
S1 Тактова кнопкаTC-A1091 До блокноту
X1 Роз'ємPLS-41 4 штирьки До блокноту
X2 Роз'ємPBS-41 До блокноту
X3 Роз'ємPLS-51 5 штирьків До блокноту
X4 Роз'ємPBS-51

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

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

Пристрій використовується для вимірювання одного з чотирьох можливих періодів часу: 15 хвилин, 30 хвилин, 1:00 або 2:00. Відлік часу сигналізується швидким миготінням світлодіодів, а кінець відліку миготінням та звуком. Для живлення передбачена одна батарея типу CR2032, тому нагадувач дуже легкий та мініатюрний.

Конструкція

Принципова схема запропонованого рішення показана малюнку нижче.

Використання мікроконтролера ATtiny13A компанії ATMEL дозволило значно спростити конструкцію пристрою. Цей тип мікроконтролера ідеально підходить для використання у цьому випадку. Він має невеликий корпус SO8, можливість використання напруги від 1,8В та різні режими зниження енергоспоживання. Крім того, це один із найпопулярніших і найдешевших мікроконтролерів цього класу, який доступний практично в будь-якому магазині електроніки.

Для живлення використовується літієва батарея типу CR2032, що забезпечує напругу 3В, що достатньо для живлення компонентів пристрою.

Звукове сповіщення про закінчення заданого проміжку часу здійснюється за допомогою п'єзоелектричного випромінювача з вбудованим генератором. Він досить гучний і його можна почути навіть тоді, коли пристрій захований, наприклад, у кишені. Управління звуковим випромінювачем здійснюється за допомогою транзистора VТ2 (BC847).

Запуск зворотного відліку та зупинка здійснюється одним натисканням кнопки SW1, контакт якого попередньо підтягнутий R6 (10кОм) до плюсу живлення.

Такий самий резистор встановлений на виводі RESET мікроконтролера, щоб запобігти випадковій зміні його логічного рівня. Подібна зміна може бути викликана внаслідок зовнішнього електромагнітного поля або впливом на мікроконтролер надто великої кількості статичної електрики.

Вибір часового інтервалу здійснюється шляхом перемикання однієї з чотирьох секцій перемикача SW2 типу DIP-SWITCH. Замкнена секція підключає на мінус живлення один із чотирьох резисторів (R7 до R10), утворюючи з резистором R11.

Мікроконтролер, подаючи високий логічний рівень на резистор R11, вимірює за допомогою АЦП (анало-цифрового перетворювача) напругу, яка утворюється на дільнику.

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

Складання та введення в експлуатацію

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

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

Експлуатація

Перебуваючи у сплячому режимі, схема не виявляє жодних ознак роботи. Після одноразового натискання кнопки SW1 зчитується інформація з дільника та починається відлік часу, про що свідчить одноразове миготіння світлодіодів. З цього моменту вони блиматимуть кожні 1 секунду до закінчення зворотного відліку. Якщо всі перемикачі SW2 знаходяться в положенні OFF, світлодіоди не блимають, а пристрій перейде в режим сну.

Через встановлений час світлодіоди починають блимати інтенсивно, а звуковий випромінювач видає короткі звуки. Зупинка здійснюється коротким натисканням SW1.

Важливо, що як тільки зворотний відлік запущено, ви не зможете зупинити або змінити його тривалість. Це дозволяє уникнути ситуації випадкового вимкнення відліку часу, який може статися при випадковому натисканні кнопки SW1.

Споживаний струм у стані спокою становить близько 0,5 мА, тому теоретично батареї номінальною ємністю 200 мАч має вистачити на 45 років у режимі очікування. На практиці ж можна розраховувати на якийсь час порівняно з терміном придатності батареї. Під час зворотного відліку середнє споживання струму становить близько 8 мА, а стан оповіщення підвищується до 15 мА.

(11,5 Kb, завантажено: 304)