Много праздников есть на Руси… Новый год, Международный женский день, День защитника Отечества и многие другие. В конце концов, у каждого День рождения есть! А на праздники принято дарить подарки! Приятно не лишь их получать, но и дарить. А если у вас есть творческое мышление и познания в электротехнике, то можно получить удовольствие от изготовления уникального гаджета, который может стать хорошим подарком для ваших друзей и близких.
Такие размышления, а также просмотр одного фильма вдохновили меня на одну очень интересную мысль! Идея была такая: в нашей жизни возникает множество моментов, когда нужно сделать выбор в каких-либо простых вещах. Выпить кофе или чай? Какой фильм посмотреть? Куда сегодня пойти пообедать? И т.д. Обычно, для решения таких простых вопросов служит монетка! Но увидев по телевизору «волшебный» бильярдный шар, дающий советы, я понял, что это неплохая замена железному круглешку. Но покупать мне не хотелось, я подумал, что смогу сделать такой же (может, чуточку лучше). И получился бы оригинальный подарок!
Итак, задача была поставлена: разработать электронное устройство, отвечающее следующим характеристикам:
- Выдаёт ответы на простые вопросы («Стоит ли мне сегодня…?»)
- Красиво выглядит
- Компактное
- Чтобы не разориться на нём.
Не буду приводить все свои искания в области дизайна и схемотехнических решений. Представляю вам готовый рабочий вариант данного устройства.
Состав приведён в конце статьи, а здесь рассмотрим схему устройства:
Микроконтроллер подключается к ЖКИ по 4-х проводному интерфейсу. Старшие 4 порта D подключаются к старшим 4-м выводам линии данных ЖКИ. Линия управления подключается к порту С микроконтроллера: E (или EN, встречал и такое обозначение)-защёлкивание данных, подключаем к линии C4, RS-выбор команда/данные, подключаем к C5. Вывод RW — чтениезапись, подтягиваем к «земле» т.к. читать из ЖКИ мы ничего не будем. К выводу V0 подключаем подстроечный или постоянный резистор нужного номинала. И, при наличии, подключаем подсветку.
К любому выводу подключаем датчик(о его сборке, см. ниже)
Теперь, стабилизатор подключаем по схеме из Даташита:
Ну и для полноты картины, его распиновка:
Паял я всё это на кусочке макетной платы, потому что схема не отличается сложностью, на схему можно добавить разъём, для внутрисхемного программирования микроконтроллера, что бы можно было менять прошивку(а можно и не ставить).
Теперь корпус: за основу был взят G515B — очень удачный вариант, он хорошо смотрится, идеален по размерам, но требует небольшой доработки:
Это верх. Здесь спиливаем все стойки, оставляем лишь одну, ту, что удерживает две половинки корпуса вместе.
Это низ. Здесь тоже спиливаем все стойки, кроме одной, которая удерживает две половинки корпуса, так, чтобы она соединялась с оставшейся стойкой в крышке. В этой же половинке сверлим отверстие для ЖКИ и для выключателя.
Теперь датчик «Встряхивания»:
Его можно найти в игрушках(которые трясёшь и там лампочки мигают, стоят они сущие гроши, но тамошний датчик уж больно сильно надо трясти) или сделать самим. Нам понадобиться пружинка и металлический цилиндр. Я взял корпус от штекера разъёма 3,5 мм вот такой:
Вытаскиваем все внутренности, обматываем корпус проводом(очищенным) и внутрь вставляем пружинку (ту, что должна удерживать провод в разъёме), к ней тоже цепляем провод. Два контакта есть, отлично. Теперь нужно определить: в какой состоянии находится датчик (нормальнозамкнутый/нормальноразомкнутый), это повлияет на одну строчку кода, где мы будем опрашивать ножку к которой подключён этот датчик(в комментариях к коду помечено это место). Как же определить как работает датчик? Очень просто: подключаем светодиод к батарейке, вместо выключателя ставим наш датчик. Смотрим: если светодиод горит постоянно, то датчик нормальнозамкнутый (нужно потрясти датчик, светодиод должен мерцать), если не горит, то нужно потрясти датчик, светодиод должен замигать в такт толчкам.
Вот как я его себе представлял:
А вот что получилось…
В разобранном виде:
Готовый модуль:
Ну и с корпусом всё, да и с «железом» тоже всё…
Теперь прошивка:
Сразу ставим фьюзики: выбираем 8 мегагерц-частота внутреннего генератора, остальное-заводское.
Программа хорошо прокомментирована, всё должно быть понятно. Немного скажу: подпрограммы работы с ЖКИ протестированы неоднократно и хорошо работаю, подпрограмма инициализации сделана по «хардкору» каждой ножкой вручную дёргаю и паузы выставляю. Так, как выяснилось памяти она меньше занимает. Каждая фраза оформлена в виде отдельной функции, при желании можно заменить надписи на другие. Подпрограмма выбора работает очень просто: пр запуске устройства включается таймер, который считает от 0 до значения 0xFFFF и далее обнуляется. Когда срабатывает датчик встряхивания, таймер останавливается и на основании его значения определятся ответ.
Исходник на СИ в конце статьи, программа писалась в WinAVR.
Вот и всё! При правильной сборке получается вот такое чудо:
Всем спасибо за внимание, надеюсь вам понравилась эта статья. Если возникнут вопросы, то пишите в комментарии!
Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот
Основная часть схемы
МК AVR 8-битATmega81
Резистор10 кОм1
Подстроечный резистор25 кОм1
LCD-дисплейWH0802A1
Датчик встряхивания1
Преобразователь питания1
Схема преобразователя питания
DC/DC импульсный конвертерLM25751
Диод Шоттки1N58191
Сin
Электролитический конденсатор100 мкФ1
Cout
Электролитический конденсатор330 мкФ1
L1
Катушка индуктивности330 мкГн1
Добавить все
Скачать список элементов (PDF)
Прикрепленные файлы:
- TRU(2).c (15 Кб)