Годинник зі старого калькулятора

83

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

Інструменти та матеріали:-мультиметр;-осцилограф;-паяльник; — інструменти для травлення та виготовлення друкованих плат; — комп’ютер з arduino ide;- електронні компоненти (файл зі специфікацією можна завантажити );

Крок перший: пристрій і розбирання калькуляторабільшість подібних калькуляторів складаються із загальних основних частин: vfd (вакуумний флуоресцентний дисплей)батарейний отсекмікроконтроллерповишающій трансформатордрукарська плата клавіатури

Дисплей може бути виконаний за різними технологіями, але це не важливо, так як їм буде керувати мікроконтролер.завдяки батарейному відсіку, можна дізнатися при якій напрузі працював даний калькулятор. Майстер збирається подавати харчування для основної плати калькулятора, використовуючи власну схему. У даній моделі встановлювалося 4 батарейки аа, і при тестуванні на змінному джерелі живлення обрана модель (ibico 066 v1) могла працювати в діапазоні від 3 в до 6 в.у зв’язку з цим він вирішив використовувати напругу 5 в. У разі якщо калькулятор працює тільки від 2 батарейок aa, то доведеться додати стабілізатор напруги 3,3 в в схему джерела живлення.

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

Друкована плата клавіатури в більшості випадків являє собою окрему друковану плату, яка підключається до основної друкованої плати калькулятора за допомогою контактних роз’ємів, припаяних до обох плат. Для проекту це найважливіша частина калькулятора, тому що це саме те місце, яке потрібно «зламати» для відображення цифр часу і дати.

Крок другий: відображення дати і часу на дисплеюце завдання можна реалізувати по-різному. Найпростіший спосіб, який майстер придумав, — це імітувати натискання клавіш на клавіатурі за допомогою додаткового мікроконтролера.

Тому він замінив друковану плату клавіатури новою друкованою платою, яка містить: акумуляторний літій-іонний акумулятор.мікросхема ip5305 для зарядки акумулятора і підвищення напруги акумулятора до 5 в. Ds1307 i2c rtc (годинник реального часу).atmega328p-pu з завантажувачем arduino uno.оптопари pc817, які приймають електричний сигнал від atmega328 і діють як електронний перемикач замість механічного перемикача на клавіатурі.

Крок третій: схема і друкована платавсе файли проекту можна знайти в репозиторії проекту на github, включаючи:схематичний дизайнмакет друкованої платисхематичне зображення pdfpdf-файли макета друкованої плати для варіанту виготовлення саморобної друкованої платифайли pcb gerber для заводського виготовленняграфічні виходивідомість матеріаліввсе скетчі arduino, використані в цьому проекті

Крок четвертий: мікросхема ір5305мікросхема ip5305 використовується в багатьох пристрої для зарядки літієвих батарей. В даному випадку вона буде використовуватися для роботи мікросхеми atmega328, всіх доданих компонентів, а також живлення основної плати калькулятора, яка містить мікроконтролер калькулятора, трансформатор і частотно-регульований привід.

Для індикації стану батареї буде використовуватися 1 світлодіодний індикатор.струм зарядки іс становить 0,1 а. Значить, для пристрою необхідно використовувати батарею не менше 1000 ма.в даному випадку майстер використовував літій-іонний акумулятор cgr18650 d panasonic 2350 ма, витягнутий зі старого акумулятора ноутбука.

Крок п’ятий: головний вимикач і резистор фіктивного навантаженнядля включення і виключення годин був перероблений головний вимикач калькулятора.автор від’єднав 2 дроти головного перемикача від основної плати калькулятора і закоротив контактні майданчики на платі.потім підключив перемикач двома проводами до контактних майданчиків на доданій друкованій платі (більш детально далі).резистор фіктивного навантаження доданий для підтримки мінімального значення споживання струму на вихідній шині 5 в, якщо струм, споживаний доданою схемою і схемою обчислювача разом, нижче порога відключення мікросхеми ip5305.

Крок шостий: мікросхема годин реального часу ds1307для часу і дати майстер використовував мікросхему ds1307 i2c rtc.у ній використовувалася зовнішня батарейка типу «таблетка», щоб підтримувати вторинне джерело живлення в разі відключення первинного джерела 5 в, і в якості джерела синхронізації використовується зовнішній кварцовий генератор 32,768 кгц.для більш точного показання можна використовувати ds3231, в якому використовується кварцовий генератор з внутрішньою температурною компенсацією.

Це найважливіший крок. Він про те, як мікроконтролер atmega328 відображає час і дату, отримані з чіпа rtc, на дисплеї калькулятора.хто знайомий з тим, як, наприклад, arduino використовує клавіатуру 4×4, той знає, що клавіатура розділена на два набори контактів (контакти стовпців і контакти рядків).

Arduino відправляє імпульси / сигнали на один з наборів контактів (стовпці або рядки) і чекає, відповіді, чи будуть ці сигнали зчитані / отримані на іншому наборі контактів. Якщо клавіша натиснута, ардуіно зчитує сигнал і розуміє, що клавіша натиснута. При цьому кожна має унікальне положення (стовпець, рядок).

Саме так мікроконтролер калькулятора також сканує свою клавіатуру. Але тут потрібно буде ідентифікувати контакти стовпців і рядків, і знати комбінацію (стовпець, рядок) наступних клавіш: 0,1,2,3,4,5,6, 7,8,9, десяткова точка, c (клавіша очищення).який контакт і яка доріжка конкретно відповідає за яку клавішу, необхідно продзвонить на калькуляторі.

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

Припустимо, завдання відобразити час 11:05:32. Чіп atmega дає наступні команди: активуйте оптопару з ключем («c»), щоб очистити дисплей, потім деактивуйте її, щоб відпустити ключ.активуйте оптопару з ключем («1»), потім двічі деактивуйте її.активуйте оптопару з ключем («.»), щоб ізолювати цифри між годинником і хвилинами, а потім деактивувати її.активуйте оптопару з ключем (‘0’), потім деактивуйте її.активуйте оптопару з ключем («5»), потім деактивуйте її.активуйте оптопару з ключем («0»), щоб виділити проміжок між цифрами хвилин і секунд, а потім деактивуйте її.активуйте оптопару з ключем («3»), потім вимкніть її (майстер вирішив відображати секунди тільки в розряді 10, щоб скоротити час оновлення дисплея).

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

Крок восьмий: мікроконтролер atmega328p-puі нарешті, що не менш важливо, мікроконтролер atmega328p-pu.це мінімальна конфігурація arduino uno, яка включає в себе конденсатори, кварцовий генератор 16 мгц і підтягуючий резистор.він має кнопку введення для перемикання в режим відображення дати замість режиму відображення часу і підключення uart для програмування вбудованої мікросхеми за допомогою перетворювача usb в uart або плати arduino uno.він також визначає, які контакти atmega328 підключені до якої цифрової оптрони.

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

На що слід звернути увагу при проектуванні друкованої плати:як вона буде кріпиться до корпусу калькулятора.розмір літій-іонної батареї і, отже, розмір тримача батареї.розміри друкованої плати і максимальна висота.виготовлення: чи буде вона зроблена самостійно або замовлена на виробництві.майстер спроектував свою друковану плату за допомогою програмного забезпечення altium designer. Розміри друкованої плати складають 80 * 89 мм.для живлення він вирішив використовувати літій-іонний акумулятор 18650.споживання струму схемою становить 68 ма,Тому обрана батарея на 2350 ма може пропрацювати від 24 до 34 годин в залежності від ефективності ip5305, стану батареї і фактичної ємності.

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

Кроки по монтажу наступні: припаяйте секцію ip5305.переконайтеся, що в схемі немає коротких замикань.переконайтеся, що акумулятор заряджається і розряджається, а вихідна напруга становить 5 в.вийміть акумулятор, щоб завершити пайку.припаяйте мікросхему ds1307 rtc і тримач батарейки.переконайтеся у відсутності коротких замикань на лініях живлення rtc.припаяйте оптопари і переконайтеся, що всі вони добре з’єднуються з доріжками друкованої плати.припаяйте інші частини.додайте батарейку типу»таблетка».додайте літій-іонний акумулятор.увімкніть перемикач, щоб подати на компоненти напругу 5 в. Переконайтеся, що немає перевантаження по струму і короткого замикання.

Тепер можна зібрати пристрій і перейти до програмування.

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

Потрібно буде виконати наступні кроки:запрограмувати atmega328p-pu за допомогою фіктивного коду і подивитися, чи можна його запрограмувати і працювати так, як заплановано чи ні.протестувати підключення кнопки режиму дати.протестувати з’єднання ds1307 rtc.встановити час на ds1307 rtc.перевірити, чи забезпечує мікросхема ds1307 rtc правильні значення часу і дати після програмування чи ні.протестувати кожну оптопару кожного ключа за допомогою мікросхеми atmega328.після виконання всіх цих тестів можна почати писати основний код годинника.

Тестування мікроконтролера атмеда328програмування чіпа atmega328 виконується за допомогою плати arduino uno: ескіз можна завантажити нижче.

void setup() { // put your setup code here, to run once:serial.begin(9600);}void loop() { // put your main code here, to run repeatedly:serial.println («hello world»); delay(1000);}

Перевірка кнопки режиму датипоскольку кнопка режиму дати підключена до контакту 13 чіпа atmega328 (еквівалентному контакту 13 arduino), майстер написав простий ескіз для друку на послідовному моніторі, якщо кнопка натиснута або відпущена.зверніть увагу, що він використовує внутрішній підтягуючий резистор чіпа atmega, і в цьому випадку кнопка активна низько (натиснута = 0, відпущена = 1)

Показати / приховати текст

Тестування підключення i2c ds1307 rtcщоб перевірити, чи підключена мікросхема ds1307 rtc до шини i2c і чи правильно вона обмінюється даними, можна спочатку завантажити ескіз сканера i2c в бібліотеку i2cscanner і перевірити, чи відображається пристрій в скануванні i2c за адресою 0x68.якщо сканер не показує підключений пристрій за цією адресою, потрібно перевірити з’єднання i2c і перевірити, чи правильно підключені підтягують резистори ліній scl і sda.

Установка часу ds1307перед використанням чіпа rtc необхідно встановити фактичний час на чіпі.переконайтеся, що батарея підключена до плати, а лінія vbat має напругу близько 3 в. Ця батарея необхідна поки плата не отримує основне живлення 5 в vcc.завантажте бібліотеку ds1307rtc та імпортуйте її в середовище розробки arduino.завантажте бібліотеку часу та імпортуйте її в середовище розробки arduino.завантажте ескіз заданого часу з бібліотеки ds1307rtc.зверніть увагу, що ескіз часу установки автоматично запрограмує час rtc на час вашого комп’ютера, вказане компілятором, тому вам не потрібно вручну встановлювати час.

Показати / приховати текст

Після установки часу необхідно перевірити роботу мікросхеми.вимкніть калькулятор (вимкніть живлення від основної плати) приблизно на 2 або 3 хвилини, щоб перевірити, чи можуть годинник реального часу працювати від батарейки.завантажте скетч readtest з бібліотеки ds1307rtc і подивіться, чи правильні час і дата, лічені з мікросхеми rtc.якщо час невірний, зміщено або не враховується кількість хвилин, протягом яких було відключено живлення, перевірте підключення батарейки.

Перевірка оптопар і відображуваних цифрдля тестування відображення показань майстер використовує наступний ескіз.

Показати / приховати текст

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

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

джерело (source)

Стаєте автором сайту, публікуйте власні статті, описи саморобок з оплатою за текст.детальніше тут.