Даний автомат призначений для прийому оплати за ігрові атракціони в парках, кінотеатрах та інших громадських місцях. Сфера застосування цим не обмежується. Наприклад, один з автоматів обслуговує чотири пральні машинки в студентському гуртожитку і планується установка подібних автоматів в пансіонатах. Теоретично кількість обслуговуваних навантажень (атракціонів, пральних машин та інше) не обмеженої. Але не буде пускатися в маркетинг, а розглянемо роботу автомата.
Автомат складається з купюроприймача, блоку управління і індикації, блоків контролю навантаження і, природно, блоку живлення. Стосовно до атракціонів алгоритм роботи наступний: При отриманні купюр купюропріємником блок управління виробляє підрахунок отриманої суми. Якщо сума більше ніж, встановлений тариф, то при натисканні кнопки вибору атракціону відбувається підключення обраного атракціону до мережі живлення на заданий час. При відсутності споживання електричної енергії атракціоном протягом певного часу вважається, що атракціон так і не була використана (атракціон не робітник, клієнт передумав, дитина завередував та інше) і може бути обраний інший атракціон. Якщо внесена сума, більш ніж встановлений тариф, то залишок може бути використаний для іншого платежу. Стосовно до пральних машинок алгоритм трохи інший: при відсутності споживання електричної енергії вважається, що пральна машинка завершення прання раніше заданого часу і можна її використовувати знову. Звичайно, в цьому випадку можливо, що пральну машинку навіть і не почали використовувати, але це вирішується в кожному конкретному випадку окремо. Саме цей варіант пристрою, програми і прошивки прикладений до даної статті.
Перейдемо до принципової схеми пристрою та опису програми.
Основний блок включає в себе мікроконтролер ATmega 8 (U1) з LCD індикатором (LCD1), мікросхему RTC DS1307 (U11), мікросхеми опитування 74HC165 (U12-U14), мікросхеми управління навантаженням 74HC574 (U6) та ULN2803 (U9). Навантаження підключається до мережі живлення за допомогою реле, підключених до ULN2803. Мікросхеми опитування служать для опитування стану навантаження і опитування кнопок вибору навантаження (U14), а також опитування перемичок, що визначають режими роботи навантажень (U12, U13). Мікросхеми опитування і управління фактично утворюють кільцевої зсувний регістр. Передача даних між мікро контролером і мікросхемами опитування і управління навантаженням ведеться по протоколу SPI. Інтерфейс SPI апаратно мається на ATMega8. Для того, щоб одночасно приймати і передавати дані по протоколу SPI необхідно узгодити рівні дозволу читання в зсувних регістрах 74HC165 і записи в регістр 74HC574. Для цього використовується один логічний елемент мікросхеми 7400, включений як інвертор. Сполучення блоку управління з купюропріємником відбувається по протоколу RS-232 на швидкості 9600 бод. Для перетворення рівнів використовується перетворювач інтерфейсу на базі MAX232, підключений до висновків 2 і 3 мікроконтролера.
Блок контролю навантаження реалізований на базі транзистора Q1. Діоди D3, D4 і резистор R10 утворюють ніби шунт, через який протікає струм навантаження. Транзистор служить пороговим елементом, який при падінні напруги на шунт більш ніж напруга база-емітер транзистора відкривається і подається сигнал на оптопару U5. Спочатку було побоювання, що перехід база-емітер транзистора може бути пробитий при великих токах, але експлуатація показала надійну роботу даної схеми. При відкриванні транзистора також загоряється світлодіод D2, встановлений для візуального контролю. Підбором резистора R10 можна регулювати чутливість блоку до протікаючому струму. При зазначених на схемі 2,2 Ома блок чітко фіксує лампочку потужністю в 100 Ватт; лампочку в 75 Ватт фіксує при напрузі 220 Вольт, але при 200 Вольтах вже не фіксує; лампочка в 60 Ватт вже не фіксує при будь-якому напрузі. Діоди обмежують падіння напруги і, відповідно, потужність, що розсіюється резистором. До речі, діоди, при малих токах навантаження, необхідно підібрати. При зазначених на схемі диодах 10A04 (10A10) і відсутньому резисторі R10 чітко фіксується навіть навантаження у вигляді обмотки пускача. У блоці на фото нижче застосовані діоди Д232, з якими навіть лампочка в 25 Ватт вже не фіксується. Блок контролю навантажень харчується від свого параметричного стабілізатора на елементах D1, D5, R11. В цілому даний блок можна замінити і трансформатором струму з виходом на оптопару, і чотирма попарно-зустрічно-паралельно включеними діодами з оптопарою (див. Нижче фото 2-го варіанту).
Блок живлення використаний готовий від старого LCD-монітора. Блок живлення виробляє напруги +5 Вольт і +14 Вольт. Зрозуміло, що +5 Вольт використовується для живлення логічної частини схеми, а +14 Вольт - для харчування обмоток реле і купюроприймача.
А ось фото ще одного пристрою, в якому блок контролю навантажень замінений доданими мостом з попарно-зустрічно-паралельно включеними діодами. Блок живлення використаний від старого ДВД-плеєра. Як навантаження 1-го каналу використана лампа розжарювання, а для 2-го каналу використовується пускач, який комутує трифазний двигун. Поруч з діодними мостами є місця для установки резисторів, за допомогою яких можна регулювати поріг чутливості.
Програма прикладена для ознайомлення. У ній не реалізовані деякі функції. Проте це реально працююча версія, про що можна судити по фото пристрою.
Особливо хочу відзначити: оскільки використовується протокол RS-232 і мікроконтролер працює від внутрішнього осцилятора, частота якого може відрізнятися від 8 МГц, фактична швидкість може відрізнятися від заданої в 9600 бод. Це призводить до нестабільного обміну даними між купюропріємником і блоком управління. Для усунення цієї проблеми можна використовувати або зовнішній кварцовий резонатор, або коригувати значення OSCCAL мікроконтролера. Оскільки протокол RS-232 цілком нормально працює при відхиленнях в швидкості до 10%, а частота внутрішнього осцилятора змінюється в меншому діапазоні, то я використовую коригування значення OSCCAL мікроконтролера.
Всі пристрій зібрано на односторонній платі розмірами 240 * 180 мм. Реле, для підключення навантажень, розташовані безпосередньо біля блоків контролю навантажень. Котушки реле з'єднані з виходами мікросхеми ULN2803 проводами. Блок живлення, як вже писалося вище, взятий готовий і просто змонтований на платі на вільному місці.
У доданому до статті архіві міститися: файл друкованої плати, проект в Proteus, исходник програми в середовищі BASCOM, HEX-файл. При програмуванні мікроконтролера ATmega 8 необхідно виставити фьюз на роботу від внутрішнього генератора, частоту 8 МГц. У двійковому вигляді установка фьюз матиме вигляд: