Реклама ⓘ
Главная » Микроконтроллеры
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

Советчик в кармане

Много праздников есть на Руси... Новый год, Международный женский день, День защитника Отечества и многие другие. В конце концов, у каждого День рождения есть! А на праздники принято дарить подарки! Приятно не только их получать, но и дарить. А если у вас есть творческое мышление и познания в электротехнике, то можно получить удовольствие от изготовления уникального гаджета, который может стать хорошим подарком для ваших друзей и близких.

Такие размышления, а также просмотр одного фильма вдохновили меня на одну очень интересную мысль! Идея была такая: в нашей жизни возникает множество моментов, когда нужно сделать выбор в каких-либо простых вещах. Выпить кофе или чай? Какой фильм посмотреть? Куда сегодня пойти пообедать? И т.д. Обычно, для решения таких простых вопросов служит монетка! Но увидев по телевизору "волшебный" бильярдный шар, дающий советы, я понял, что это неплохая замена железному круглешку. Но покупать мне не хотелось, я подумал, что смогу сделать такой же (может, чуточку лучше). И получился бы оригинальный подарок!

Итак, задача была поставлена: разработать электронное устройство, отвечающее следующим характеристикам:

  • Выдаёт ответы на простые вопросы ("Стоит ли мне сегодня...?")
  • Красиво выглядит
  • Компактное
  • Чтобы не разориться на нём.

Не буду приводить все свои искания в области дизайна и схемотехнических решений. Представляю вам готовый рабочий вариант данного устройства.

Состав приведён в конце статьи, а здесь рассмотрим схему устройства:

Микроконтроллер подключается к ЖКИ по 4-х проводному интерфейсу. Старшие 4 порта D подключаются к старшим 4-м выводам линии данных ЖКИ. Линия управления подключается к порту С микроконтроллера: E (или EN, встречал и такое обозначение)-защёлкивание данных, подключаем к линии C4, RS-выбор команда/данные, подключаем к C5. Вывод RW - чтение\запись, подтягиваем к "земле" т.к. читать из ЖКИ мы ничего не будем. К выводу V0 подключаем подстроечный или постоянный резистор нужного номинала. И, при наличии, подключаем подсветку.

К любому выводу подключаем датчик(о его сборке, см. ниже)

Теперь, стабилизатор подключаем по схеме из Даташита:

Ну и для полноты картины, его распиновка:

Паял я всё это на кусочке макетной платы, так как схема не отличается сложностью, на схему можно добавить разъём, для внутрисхемного программирования микроконтроллера, что бы можно было менять прошивку(а можно и не ставить).

Теперь корпус: за основу был взят G515B - очень удачный вариант, он хорошо смотрится, идеален по размерам, но требует небольшой доработки:

Это верх. Здесь спиливаем все стойки, оставляем только одну, ту, что удерживает две половинки корпуса вместе.

Это низ. Здесь тоже спиливаем все стойки, кроме одной, которая удерживает две половинки корпуса, так, чтобы она соединялась с оставшейся стойкой в крышке. В этой же половинке сверлим отверстие для ЖКИ и для выключателя.

Теперь датчик "Встряхивания":

Его можно найти в игрушках(которые трясёшь и там лампочки мигают, стоят они сущие гроши, но тамошний датчик уж больно сильно надо трясти) или сделать самим. Нам понадобиться пружинка и металлический цилиндр. Я взял корпус от штекера разъёма 3,5 мм вот такой:

Вытаскиваем все внутренности, обматываем корпус проводом(очищенным) и внутрь вставляем пружинку (ту, что должна удерживать провод в разъёме), к ней тоже цепляем провод. Два контакта есть, отлично. Теперь нужно определить: в какой состоянии находится датчик (нормальнозамкнутый/нормальноразомкнутый), это повлияет на одну строчку кода, где мы будем опрашивать ножку к которой подключён этот датчик(в комментариях к коду помечено это место). Как же определить как работает датчик? Очень просто: подключаем светодиод к батарейке, вместо выключателя ставим наш датчик. Смотрим: если светодиод горит постоянно, то датчик нормальнозамкнутый (нужно потрясти датчик, светодиод должен мерцать), если не горит, то нужно потрясти датчик, светодиод должен замигать в такт толчкам.

Вот как я его себе представлял: 

А вот что получилось...

В разобранном виде:

Готовый модуль:

Ну и с корпусом всё, да и с "железом" тоже всё...

Теперь прошивка:

Сразу ставим фьюзики: выбираем 8 мегагерц-частота внутреннего генератора, остальное-заводское.

Программа хорошо прокомментирована, всё должно быть понятно. Немного скажу: подпрограммы работы с ЖКИ протестированы неоднократно и хорошо работаю, подпрограмма инициализации сделана по "хардкору" каждой ножкой вручную дёргаю и паузы выставляю. Так, как выяснилось памяти она меньше занимает. Каждая фраза оформлена в виде отдельной функции, при желании можно заменить надписи на другие. Подпрограмма выбора работает очень просто: пр запуске устройства включается таймер, который считает от 0 до значения 0xFFFF и затем обнуляется. Когда срабатывает датчик встряхивания, таймер останавливается и на основании его значения определятся ответ.

Исходник на СИ в конце статьи, программа писалась в WinAVR.

Вот и всё! При правильной сборке получается вот такое чудо:

Всем спасибо за внимание, надеюсь вам понравилась эта статья. Если возникнут вопросы, то пишите в комментарии!

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

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
Основная часть схемы
МК AVR 8-бит
ATmega8
1 Поиск в магазине ОтронВ блокнот
Резистор
10 кОм
1 Поиск в магазине ОтронВ блокнот
Подстроечный резистор25 кОм1 Поиск в магазине ОтронВ блокнот
LCD-дисплейWH0802A1 Поиск в магазине ОтронВ блокнот
Датчик встряхивания1 Поиск в магазине ОтронВ блокнот
Преобразователь питания1 Поиск в магазине ОтронВ блокнот
Схема преобразователя питания
DC/DC импульсный конвертер
LM2575
1 Поиск в магазине ОтронВ блокнот
Диод Шоттки
1N5819
1 Поиск в магазине ОтронВ блокнот
Сin Электролитический конденсатор100 мкФ1 Поиск в магазине ОтронВ блокнот
Cout Электролитический конденсатор330 мкФ1 Поиск в магазине ОтронВ блокнот
L1 Катушка индуктивности330 мкГн1 Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 1
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 5 Проголосовало: 1 чел.

Комментарии (8) | Я собрал (0) | Подписаться

0
si4karuk #
И еще раз убеждаемся в том, что человек сам творец своей судьбы
Ответить
0
ProniX #
Ну я в своё время тоже в подарок аналогичное устройство делал, так решил, что индукционное питание проще - берем катушку от реле, внутрь неодимовый магнит, по концам заглушки из резины. Трех-четырех потряхиваний хватало, чтобы МК выбрал случайную запись из памяти, передал на дисплей от нокии и заснул - а т.к. дисплей потребляет немного, на пять секунд показа записи хватало. Зато можно всю конструкцию навсегда залить эпоксидкой. Самое сложное было придумать штук сто разных записей
Ответить
0
KROKS #
Будьте добры выложить готовый hex файл.
Ответить
0

[Автор]
МеханикАртем #
Вот, готовый файл:
Прикрепленный файл: TRU.hex
Ответить
0
1essor1 #
А отчего питается то?
Ответить
0

[Автор]
МеханикАртем #
От батарейки типа "крона"
Ответить
0
diogen_b #
Теперь нужно определить: в какой состоянии находится датчик (нормальнозамкнутый/нормальноразомкнутый), это повлияет на одну строчку кода, где мы будем опрашивать ножку к которой подключён этот датчик(в комментариях к коду помечено это место)
Крайне неудачное решение - со временем, датчик вполне может изменить свое стабильное положение и безделушка перестанет работать (я уж не говорю о том, что менять программу в зависимости от того какой получился датчик это слишком примитивно). Если бы Вы, уважаемый автор, чуть дальше прочитали бы описание микроконтроллера, то увидели бы, что датчик у Вас как раз присоединен ко входу внешнего прерывания. Если задействовать это прерывание, будет без разницы, каково устойчивое положение датчика.
Ответить
0

[Автор]
МеханикАртем #
Если бы Вы, уважаемый автор, чуть дальше прочитали бы описание микроконтроллера
Не стоит полагать, что если я не использовал прерывания в своём проекте, то я не знаю весь функционал используемого микроконтроллера.
Второе, да, дельное замечание, стоило использовать прерывания, но я почему-то этого не сделал (судьба).
Третье, если вам угодно, можете сами переделать код под ваши нужды.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Программатор Pickit3
Программатор Pickit3
USB осциллограф DSO-2090 200 Вт усилитель класса D на IRS2092
вверх