Cамодельный мини-эхолот на микроконтроллере Atmel ATMega8L и ЖКИ от мобильного телефона nokia3310

Эхолот

Описание опубликовано в журнале «Радио» № 3 за 1999 г., стр. 32. 34, 39 – Эхолот.

Предлагаемый самодельный эхолот может быть использован на любительских судах для измерения глубины водоемов, для поиска затонувших предметов, а также при других работах на воде, связанных с необходимостью знать рельеф дна и глубину. Рыболовы же с его помощью легко смогут отыскать наиболее перспективные места ужения рыбы.

Эхолот прошел опытные испытания в сезон 1998 и 1999 года в речной и морской воде, он измеряет глубину водоемов на четырех пределах: до 2,5; 5; 12,5 и 25 метров. Минимальная измеряемая глубина – 0,3 м. Погрешность не более 4% от верхнего предела на каждом диапазоне.

Функциональная схема эхолота показана на рисунке. Он состоит из 4-х функционально законченных блоков: генератора зондирующих импульсов, приемника, блока управления и блока индикации. Их принцмпмальные схемы приведены в подробном описании. Кнопки SB1. SB4 выведены на переднюю панель, с их помощью осуществляется оперативное изменение режимов работы эхолота.

Импульсы частотой 300 кГц с генератора зондирующих импульсов подаются на пьезокерамический излучатель датчик эхолота и в виде ультразвуковых посылок излучаются во внешнюю среду. Отраженный от дна сигнал принимается в промежутке между посылками тем же излучателем и подается на вход приемника, где он усиливается, детектируется и преобразуется в стандартные логические уровни.

В эхолоте предусмотрена временная автоматическая регулировка усиления (ВАРУ), изменяющая коэффициент усиления в течении каждого цикла от минимального до максимального, что повышает помехоустойчивость прибора. В качестве индикатора используется линейная шкала глубины из 26 светодиодов, на которой может индицироваться до четырех отраженных сигналов и вспомогательная шкала из 4-х светодиодов, отображающая предел измерения. Период обновления информации на индикаторе около 0,1 сек, что позволяет легко отслеживать рельеф дна. Основа блока управления – микроконтроллер AT89C2051, который формирует все сигналы, необходимые для работы эхолота.

Дополнительно повышает помехоустойчивость, защищая от случайных помех, программно реализованный импульсный фильтр. Алгоритм работы фильтра заключается в том, что он выводит на индикатор только те отражения, глубина которых при двух последовательных измерениях изменилась не более, чем на 2% включенного предела измерения глубины. Это позволяет в какой-то степени отсеять помехи, например от двигателя.

Питание этого самодельного эхолота осуществляется от 6 элементов типа A316 с общим напряжением 9 В, работоспособность прибора сохраняется при снижении напряжения до 6 В. Потребляемый ток не превышает 7. 8 мА + 10 мА на каждый горящий светодиод, в среднем при измерении около 30 мА.

Датчик эхолота изготовлен на основе круглой пластины диаметром 31 мм и толщиной 6 мм из пьезокерамики ЦТС-19 с резонансной частотой 300 КГц. Он собирается в алюминиевом стакане от оксидного конденсатора диаметром около 40 мм и длиной 30. 40 мм. Все рисунки и подробное описание методики изготовления самодельного датчика эхолота приведены в подробном описании.

Эхолот весьма прост в наладке и удобен в эксплуатации, не требует калибровки. Предусмотрена возможность оперативного переключения предела измерения, количества индицируемых отражений, а также регулировка эффективности ВАРУ. Импульсный фильтр при необходимости может быть отключен. Значения всех параметров могут сохраняться в памяти в режиме пониженного энергопотребления (SLEEP). В этом режиме потребляемый ток составляет около 70 мкА, что практически не сказывается на сроке службы элементов питания.

Печатную плату я рисовал вручную, в те годы Sprint Layout еще не было. Но радиолюбители, повторившие эту конструкцию, прислали мне рисунки некоторых плат. Я, в свою очередь, делюсь этой информацией с Вами. Это дополнение выложено в архиве в том виде, в каком я его получил – “как есть”.

Cамодельный мини-эхолот на микроконтроллере Atmel ATMega8L и ЖКИ от мобильного телефона nokia3310

“SONAR-3” – это более усовершенствованный вариант первой конструкции самодельного мини-эхолота.

Рабочая частота 200 кГц и может перестраиваться под конкретный имеющийся излучатель (примерно до 300 кГц). Максимальная измеряемая глубина ограничена программно на уровне 16 метров. Измерение глубины разделено на два диапазона: до 4 м и до 16 м. Переключение между диапазонами автоматическое. Минимальная измеряемая глубина – 0,47 м. Информация о глубине и рельефе дна выводится на графический дисплей от мобильного телефона nokia3310. Предусмотрена регулировка скорости прокрутки картинки на дисплее, а также регулировка уровня чувствительности приема отраженных сигналов. В эхолоте реализован программный фильтр ошибочных измерений, который пропускает до 10 значений глубины, находящихся вне диапазона измерений. Также эхолот выдает предупреждающий звуковой сигнал при резком изменении глубины на определенное заданное пользователем значение. Эта функция будет полезна для определения потенциальных мест нахождения рыбы не прибегая к постоянному вниманию на дисплей мини-эхолота. Теоретически данным мини-эхолотом можно измерять и глубину, большую чем 16 метров, но возможности проверить работу устройства на больших глубинах у меня не было. Поэтому и было введено ограничение по максимальной глубине. Погрешность определения глубины в авторском образце (с использованием датчика с резонансной частотой 200кГц) при испытаниях в озере была не более 2..3% от верхнего предела измерений.

Схема мини-эхолота показана на рисунке ниже. Схему с большим разрешением можно посмотреть здесь: mini-sonar-3_circuit.jpg

Основные функциональные блоки устройства: микроконтроллер ATMega8L, схема формирования зондирующих импульсов, датчик-излучатель, схема приема отраженного сигнала, преобразователь питания DC/DC, дисплей, клавиатура и схема зарядки аккумуляторной батареи. Работает эхолот следующим образом: микроконтроллер ATMega8 в начале каждого цикла измерения формирует на выходе PD4 прямоугольные импульсы лог. «0», разрешающие работу задающего генератора, собранного на микросхеме IC2. Далее сигнал задающего генератора делится на 2 D-триггером на элементе IC3.2. Сигнал с противофазных выходов IC3.2 через буферный каскад на микросхеме IC4 подается на ключи VT7 и VT8. Далее сигнал со вторичной обмотки трансформатора Т1 подается на пьезокерамический датчик-излучатель LS2, который посылает ультразвуковые посылки во внешнюю среду.

Отраженный от дна/препятствия сигнал принимается датчиком-излучателем и подается на входной каскад приемника, который являет собой резонансный усилитель с регулируемым коэффициентом усиления. Далее сигнал с резонансного усилителя подается на вход микросхемы IC7, которая используется здесь в непрямом назначении – измерителе уровня сигнала. Диодная сборка VD11 на входе приемника ограничивает входное напряжение приемника в момент работы передатчика. Далее сигнал с выхода IC7 поступает на вход 2 компаратора IC6 и на вход АЦП ADC7 микроконтроллера. Чувствительность компаратора регулируется посредством изменения коэффициента ШИМ на выв.15 микроконтроллера. Сигнал с выхода компаратора поступает на микроконтроллер, который производит обработку сигнала и выдает информацию в нужном нам виде на графический дисплей LCD1. Вся конструкция (кроме датчика-излучателя) собрана в пластиковом корпусе размерами 65,5х45,5х25 мм и показана на фото ниже:

Тип корпуса: BOX-KA08. Питание обеспечивается от литий-полимерного аккумулятора LP403040 напряжением 3.7 Вольт и емкостью 460 мА/ч. Можно использовать и другой тип аккумулятора подходящей емкости с размерами не более 4.0 x 30 x 40 мм. Максимальный потребляемый устройством ток – не более 25 мА (с включенной подсветкой дисплея – около 40 мА). При выключенном питании устройство потребляет ток около 150 мкА. Резисторы R16, R17 – smd типоразмера 1206, R31 – smd сборка из 4-х резисторов, R25 – smd типоразмера 0603, R29 – обычный 0,125 Вт. Все остальные резисторы – smd типоразмера 0805. Конденсаторы С4, С16 – танталовые smd, конденсатор C7 – электролитический “mini”, остальные конденсаторы – smd типоразмера 0805. Светодиоды VD6-VD9 – smd типоразмера 1206, любого цвета свечения. Звукоизлучатель LS1 – любой малогабаритный пьезокерамический без встроенного генератора (например от дешевых наручных часов). Трансформатор Т1 намотан на ферритовом кольце от электронного балласта энергосберегающей лампы. Можно использовать и другое ферритовое кольцо подходящего (10х6х5) размера (например EPCOS B64290-L38-X87) с магнитной проницаемостью 1000. 2000. Первичная обмотка наматывается в 2 жилы и содержит 2х10 витков провода ПЭВ -2 0,2..0,3 мм. Вторичная обмотка содержит 200 витков провода ПЭВ 0,15 мм. Первой мотаем вторичную обмотку. Половины первичной обмотки должны быть «растянуты» по всей длине сердечника. Обмотки необходимо изолировать друг от друга слоем лакоткани или трансформаторной бумаги. В качестве контура L2C22L3 приемника используется контур ПЧ на 465кГц от китайской автомагнитолы. Только контур нужно немного доработать: снимаем экран, сматываем полностью основную обмотку, считая при этом витки. После этого наматываем основную обмотку контура таким же проводом, только количество витков обмотки увеличиваем на 15%. Мест установки для элементов С7, С8, R29, VD10 на плате не предусмотрено. Поэтому их монтируем навесным монтажем непосредственно вблизи трансформатора Т1. Кнопки клавиатуры – тактовые размером 6х6 мм. На печатной плате также есть место для установки R51, которого нет на схеме. Это перемычка, которую устанавливают при необходимости. Она служит для подачи питания на схему от программатора. Окно под дисплей вырезаем из оргстекла толщиной 2 мм и приклеиваем к корпусу эпоксидной смолой. Ультразвуковой датчик-излучатель можно использовать любой готовый на частоту 40..300 кГц (например от китайского эхолота). Можно также изготовить датчик самому по технологии, описанной в [1]. Для подключения датчика-излучателя к печатной плате эхолота используется кабель RG174 без переходных разъемов.

Читайте также:  Блесна-турбинка своими руками

Налаживание мини-эхолота начинают с тщательной проверки монтажа. Только после этого подают питание на схему. Следующий этап – прошивка контроллера. Сначала записываем fuse-bits для работы от встроенного RC-генератора на частоте 4 МГц (CKSEL=0011, SUT0=0). Потом прошиваем саму прошивку. После загрузки прошивки ОБЯЗАТЕЛЬНО нужно прошить EEPROM. Иначе эхолот работать не будет! Включаем эхолот. Для этого удерживаем (примерно 2сек.) кнопку “power”. После включения эхолот отображает заставку, версию прошивки и переходит в основное меню. Теперь нужно проверить выходное напряжения преобразователя DC/DC на MC34063. Оно должно быть в пределах 3,90..4,10 В. Потом нужно войти в режим отображения сервисной информации. Для этого выключаем а потом включаем эхолот. После появления на дисплее заставки сразу нажимаем и удерживаем до появления звукового сигнала кнопку “up”. Эхолот переключится в сервисный режим. В этом режиме на дисплее отображаются напряжение батареи питания (строка “Batt”), напряжение на выходе преобразователя DC/DC (строка “DC/DC”), рабочая частота задающего генератора (строка “Ftx”), глубина (строка “Depth”) и уровень отраженного сигнала (строка “RSSI”). Сначала нужно убедиться в том, что задающий генератор работает на нужной Вам частоте. В противном случае нужно будет отключить питание эхолота, впаять вместо R22 многооборотный подстроечный резистор на 2,2..4,7 кОм, включить эхолот, снова войти в сервисный режим и установить подстроечным резистором нужную Вам частоту. Далее отключаем питание эхолота и вместо R22 устанавливаем нужный постоянный резистор. Снова включаем эхолот. Подключаем параллельно датчику-излучателю осциллограф (через делитель 1:10) и нажимаем кнопку старта начала измерений. Убеждаемся в наличии на датчике импульсов амплитудой не менее 75 В. Если же амплитуда меньше – ищите ошибки в схеме. Потом настраиваем входной каскад приемника. Для этого размещаем датчик в воздухе строго перпендикулярно какой-нибудь ровной плоскости (например пол, или стена) на расстоянии примерно 30..50 см и подключаем осциллограф к выв.12 IC7. Далее, вращая подстроечный сердечник контура L2C22, устанавливаем максимальный уровень отраженного сигнала. Теперь мини-эхолот настроен окончательно.

ОПИСАНИЕ НАСТРОЕК МЕНЮ:

1. “СКОРОСТЬ ИЗМ.” – скорость прокрутки картинки рельефа дна дисплее эхолота;

2. “ЧУВСТВИТЕЛЬН.” – регулировка чувствительности приемника;

3. “ОБНАРУЖ. ЯМ” – значение в [дм], при котором будет подаваться звуковой сигнал, сигнализирующий о наличии соответствующего перепада в рельефе дна;

4. “ДЛИТ. У/З ПОС.” – длительность ультразвуковой посылки в микросекундах. Параметр можно изменять в пределах 35..90 мкС;

5. “КОНТРАСТ” – регулировка контраста дисплея;

6. “ПОДСВЕТКА” – включение/выключение подсветки дисплея;

7. “ЗВУК. СИГНАЛ” – включение/отключение всех звуковых сигналов;

8. “ФИЛЬТР ОШИБОК” – количество измерений глубины, находящихся вне диапазона измерений, которые не будут учитываться при отображении картинки рельефа дна.

Текущие функции кнопок управления эхолотом отображаются на дисплее в нижней строке. Для выхода из сервисного режима нужно нажать кнопку “ESC”. При разряде батареи питания ниже 3,40 В эхолот выдает сообщение “Bat Low” и автоматически выключается. Заряжать эхолот можно от персонального компьютера через miniUSB-переходник/кабель или от внешнего блока питания с выходным напряжением 5,0 В и током не менее 200 мА. После зарядки батареи до напряжения 4,20 В эхолот автоматически выключается.

Печатная плата мини-эхолота двухсторонняя. Изготавливается по методике ЛУТ. Размеры печатной платы 41,5х61,5 мм. Размещение компонентов на плате показано на фото ниже:

Cамодельный мини-эхолот на микроконтроллере Atmel ATMega8L и ЖКИ от мобильного телефона nokia3310

для этой схемы

Основные функциональные блоки эхолота: схема управления (то есть микроконтроллер ATMega8L), передатчик, излучатель, приемник, дисплей, клавиатура, схема зарядки аккумуляторной батареи.

Работает эхолот следующим образом: микроконтроллер на выводе РВ7 формирует управляющий сигнал (прямоугольные импульсы лог. «0») длительностью примерно 40 мкс. Этот сигнал запускает на указанное время задающий генератор с рабочей частотой 400 кГц на микросхеме IC4. Далее сигнал подается на микросхему IC5, где частота сигнала делится на 2. Сигнал с IC5 подается на буферный каскад на микросхеме IC6 и далее на ключи Q3 и Q4, нагрузкой которых является трансформатор Т1. Сигнал со вторичной обмотки трансформатора Т1 подается на пьезокерамический датчик-излучатель LS2, который посылает ультразвуковые посылки во внешнюю среду.

Отраженный от дна/препятствия сигнал принимается датчиком-излучателем и подается на вход приемника, который собран на микросхеме SA614AD в типовом включении (см. Datasheet на SA614AD). Диодная сборка BAV99 на входе приемника ограничивает входное напряжение приемника в момент работы передатчика.
Сигнал с выхода приемника подается на компаратор на микросхеме LM2903, чувствительность которого регулируется микроконтроллером.
Далее сигнал обрабатывается в микроконтроллере и отображается в нужном виде на графическом ЖК дисплее 84х48 точек.
Трансформатор Т1 передатчика намотан на сердечнике К16*8*6 из феррита M1000НМ. Первична обмотка наматывается в 2 провода и содержит 2х14 витков, вторичная – 150 витков провода ПЭВ-2 0,21мм. Первой мотается вторичная обмотка. Половины первичной обмотки должны быть «растянуты» по всей длине сердечника. Обмотки необходимо изолировать друг от друга слоем лакоткани или трансформаторной бумаги.
Теперь самая интересная и проблемная часть: датчик-излучатель. У меня эта проблема была решена изначально: у меня уже был готовый излучатель. Как быть Вам?
Вариант 1: приобрести готовый датчик.
Вариант 2: изготовить самому из пьезокерамики ЦТС-19 по технологии, описанной в [1-3] см. раздел «ссылки».

На место R143 впаиваем резистор 1,8 кОм, на место R141 – подстроечный резистор Rп сопротивлением 0,5..1кОм.

Подключаем питание (полностью заряженный аккумулятор или «крону»). Измеряем потребляемый ток: если он выше 30 мА – ищите ошибки в схеме. В моем экземпляре потребляемый ток в режиме «PAUSE» составлял 19 мА. Далее смотрим на дисплей: если Вы видите то, что показано на рисунке ниже – это значит, что собранная схема на 90% рабочая.

Теперь приступим к настройке остальных 10%. Отсоединяем батарею питания. Отключаем питание выходного каскада передатчика (выпаять R21). Отсоединяем выводы 1,2 микросхемы IC4 от вывода 8 (Port B7) микроконтроллера (выпаяв перемычку-переход возле ножки контроллера) и подключаем их на общий провод. Подключаем к выводу 4 IC4 частотомер и подаем на схему питание. Вращением ручки подстроечного резистора Rп устанавливаем частоту генератора равной двойной резонансной частоте вашего излучателя. То есть, если резонансная частота излучателя равна 200 кГц – то устанавливаем частоту генератора равной 400 кГц. Отсоединяем батарею питания. Отсоединяем выводы 1,2 IC4 от общего провода и впаиваем перемычку обратно. Подаем на схему питание и нажимаем кнопку «START». Подключаем осциллограф к выводу 8 микроконтроллера и убеждаемся в наличии управляющего отрицательного импульса длительностью примерно 45 мкС (смотрите осциллограмму ниже).

Подключаем осциллограф параллельно излучателю-датчику и убеждаемся в наличии зондирующих импульсов амплитудой не менее 75В. Если амплитуда меньше – значит проблема скорее всего в неправильной работе трансформатора (к.з., не «тот» сердечник, не подобрано нужное количество витков).

Далее в режиме «PAUSE» проверяем режим работы по постоянному току приемника сигналов на IC8 и компаратора на IC7 согласно карты напряжений. Напряжение на выводе 2 микросхемы IC4 должно быть больше напряжения на выводе 3 микросхемы IC4 на 30..80мВ, а если быть точнее – то на минимально необходимое для того, чтобы на выходе компаратора еще был лог. «0». В случае необходимости выставляем напряжение подбором номиналов R23..R25.

Нажимаем кнопку «START» и опускаем излучатель в сосуд с водой глубиной не менее 65см. Далее подключаем осциллограф к выводу 3 микросхемы IC7 и наблюдаем формируемые зондирующие импульсы и отраженный сигнал (смотрите осциллограмму ниже).

Ручкой подстроечного резистора Rп подстраиваем частоту задающего генератора передатчика по максимальной амплитуде отраженного сигнала (второй импульс на осциллограмме выше).

Отсоединяем подстроечный резистор Rп и измеряем его сопротивление. Подбираем такого же номинала резистор и впаиваем его на место R141.

Схема зарядки при правильном монтаже работает сразу и в наладке не нуждается.

На этом вся настройка мини-эхолота заканчивается.

Сообщества › Электронные Поделки › Блог › LCF-метр на ATMEGA8 и LCD1602

Я уже собирал несколько измерительных приборов, Частотомер, испытатель транзисторов.
Но, как говорится “наши руки, не для скуки” решил собрать Измеритель LCF. Схему и всю подноготную почерпнул с этой страницы LCF-метр на ATMEGA8 и LCD1602.

Читайте также:  Самодельный поппер для рыбалки из шприца

Данный прибор предназначен для измерения ёмкости конденсаторов, индуктивности и частоты.

Конденсаторы:
Диапазон измерений: 0,1 pF ÷ 10 000,0 uF.
Измерения проводятся в трех диапазонах, переключение диапазонов автоматическое.
В первом диапазоне измеряются емкости до 100 nF, во втором до 100 uF, в третьем выше 100 uF.

Индуктивность:
Диапазон измерений: 0,1 uH ÷ 100,0 H.

Частота:
Диапазон измерений: 1 Hz ÷ 4 MHz.

Выбор измеряемого параметра осуществляется кнопкой “Выбор” по кругу.
Если параметр выходи за пределы измерения на индикатор выводятся прочерки.

Схему и плату делал в ДипТрейс под свои компоненты.

Сначала собирал прибор в безкорнусном варианте на ATMega8(32). В моём архиве есть вариант этой платы.
Но побывав в магазине Чип и Дип обнаружил там много разных корпусов для РЭА
И сразу решил оформлять прибор в подходящий корпус.
Корпус G1204B 142.8×8, 5×38мм как нельзя лучше подходил для данного проекта. Тем более блок питания в корпусе я размещать не собирался. Место было много, я и не старался мельтешить.

Вот готовое устройство.

Что касаемо применяемых деталей, к точности номиналов никаких особых требований нет.

В прилагаемом архиве есть несколько прошивок, как на русском, так и на английской мове. Установите какую понравится, по функционалу разницы не заметил.

Фьюзы для ATMega8 будут
LOW= DE
HIGH= D9

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

Калибровка измерителя емкости.
1. Для калибровки следует выбрать режим измерения емкости и нажать на кнопку SET. В верхней строке дисплея появятся настроечные коэффициенты. Устанавливаемый параметр мигает. В нижней строке измеренная емкость.
2. К входным щупам не должно быть никаких подключений.
3. Нажать на кнопку PLUS или MINUS – произойдет настройка показаний емкости на 0. Коэффициент Z1 (Z2, Z3) установится автоматически. Если показания не стали нулевыми – операцию повторить.
4. Подключить к щупам образцовый конденсатор (для нижнего диапазона 1 nF ÷ 100 nF, для второго 100 nF ÷ 100 uF, для третьего 100 uF ÷ 10000 uF). Прибор автоматически выберет предел измерения.
5. Если показания емкости отличаются от номинала конденсатора – нажать на кнопку SET, начнет мигать параметр C1 (C2, C3).
6. Кнопками PLUS/MINUS установить требуемую емкость.
7. Повторить настройку, начиная с п.1.
8. Все диапазоны настраиваются аналогично. (В верхних диапазонах параметр Z2, Z2 как правило устанавливается в 0.)
9. Через 10 сек от последнего нажатия на кнопки прибор перейдет в основной режим, настройки запишутся в память.
10. Если из основного режима нажать на кнопки PLUS/MINUS, то произойдет установка коэффициентов Z1 (Z2, Z3).

Калибровка измерителя индуктивности.
1. Для калибровки следует выбрать режим измерения индуктивности и нажать на кнопку SET. В верхней строке дисплея появятся настроечные коэффициенты. Устанавливаемый параметр мигает. В нижней строке измеренная индуктивность.
2. Закоротить входные щупы.
3. Нажать на кнопку PLUS или MINUS – произойдет настройка показаний индуктивности на ноль. Параметр L0 устанавливается автоматически. Если показания не стали нулевыми – операцию повторить.
4. Подключить к щупам индуктивность известного номинала.
5. Если показания индуктивности отличаются от номинала – нажать на кнопку SET, начнет мигать параметр LC.
6. Кнопками PLUS/MINUS установить требуемую индуктивность.
7. Повторить настройку, начиная с п.1.
8. Через 10 сек от последнего нажатия на кнопки прибор перейдет в основной режим, настройки запишутся в память.
9. Если из основного режима нажать на кнопки PLUS/MINUS, то произойдет установка коэффициента L0 (настройка показаний на ноль, при этом щупы должны быть замкнуты).

Моя оценка работы прибора.
Начну с простого. Частоту прибор меряет достаточно точно и хорошая чувствительность, максимальное напряжение не мерил, щупы в розетку не совал.

Подключение и использование LCD Nokia 3310 (5110) к AVR-микроконтроллеру

В данной статье я постараюсь рассказать о том, как подключить и начать работать с LCD дисплеями 3310 (5110) и микроконтроллерами семейства AVR на языке С.

С чего хотелось бы начать?

Как правило, большинство проектов на микроконтроллерах, основной своей задачей являют обработку и последующий вывод какой либо информации в доступном и понятном виде для человека. Это либо вывод данных на ПК, или на семи-сегментный индикатор. Неважно какое устройство Вы собираете. Будь то вольтметр, амперметр, термометр или любой другой . метр – основная его задача – показать нам результат его работы. Для реализации этой задачи существует множество семи-сегментных индикаторов, отличающихся цветом, схемой подключения и количеством разрядов. Но работая с ними, мы всегда ограничены набором сегментов при помощи которых можем выводить только часть алфавита и цифры.А ведь хотелось бы выводить и какой либо текст, фигуру, да еще и на русском языке. Вот тут нам на помощь и приходят LCD экраны от самых популярных моделей мобильных телефонов 3310 (5110). При этом рынок просто кишит готовыми к использованию устройствами. Нет необходимости разбирать телефон и делать переходник для контактов. Стоимость же такого готового блока колеблется в районе 2-3 доллара. Пример лотов на TinyDeal или DealExtreme. Обратите внимание, если у вас в устройстве всего 1 индикатор – то он явно дешевле. Но ведь на экран с разрешением 84х48 пикселей мы можем выводить до 6 строк по 12 символов!

Согласно описанию, питается данное устройство от 2.7 до 3.3. вольта, имеет голубую подсветку и 8 контактов.

Первые 5 используются для управления микроконтроллером, 6 питание, 7 – подсветка, 8 -масса.

1. RST ——— reset
2. CE ———- chip selection
3. DC ———- data/commands choice
4. DIN ——— serial data line
5. CLK ——— serial Clock Speed
6. 3.3V ——– VCC
7. LIGHT ——- backlight control terminal
8. GND ——— power negative

Осталось только подключить дисплей к микроконтроллеру и при помощи кода на С связать оба устройства. В данной статье мы не станем изобретать колесо и воспользуемся готовыми библиотеками. Для упрощения задачи, я выложил архив в котором находятся библиотеки для работы с AVR GCC, библиотеки для того что бы добавить устройство LCD 5110 в протеус, готовый проект протеуса с подключенным дисплеем к микроконтроллеру Atmega8A файлик “Памятка.pdf” – в котором описаны основные функции по работе с библиотекой. Я не стал писать библиотеку с нуля, а тоже взял готовую но значительно ее изменил. В коде библиотеки указан адрес первоисточника.Из изменений – выбросил немного лишнего, переназвал и переиначил работу функций для более удобной работы и понимания, а так же добавил функцию перевода значения с плавающей точкой типа float в строку. Отличие от стандартных sprintf и dtostr в размере (разница около 2 кб.)

Я не буду описывать как добавить библиотеки для AVR Studio или ISIS Proteus, и сразу перейду к практике. Если же такие вопросы будут – посмотрите обучающее видео

Библиотека работает следующим образом:
1. Инициализируем экран
2. Формируем данные для передачи
3. Передаем данные.

Распиновка для подключения находится в файле n5110.h – по умолчанию для порта B. Но при необходимости достаточно изменить только следующие строки

Итак. Дисплей подключен.библиотеки подключены. Что же дальше?

Давайте напишем простейший код – в котором выведем на экран какую либо фигуру и 3 значения – статическое, сохраненное в переменной и число с плавающей точкой. (Используйте шпаргалку)

В итоге получим вот такие результаты:

В целом как видно из кода все достаточно просто! Осталось только выбрать что выводить и как! Будут вопросы – с радостью отвечу.

Cамодельный мини-эхолот на микроконтроллере Atmel ATMega8L и ЖКИ от мобильного телефона nokia3310

Очень маленькое, но очень полезное устройство.

Автор: ELcat
Опубликовано 31.08.2012
Создано при помощи КотоРед.

Здравствуй, дорогой Кот! Позволь поздравить тебя с Днём рождения и от всей души пожелать рабочего вдохновения, творческих успехов ну и чтоб, как говорится, «всё Коту было Масленица»! А также преподнести тебе очень маленький скромный подарочек. Ой, а где же он? В кармане затерялся? Мяу-миу-рауж… О! Вот же он, «МИРАЖ».

Надеюсь, он тебе понравится и станет твоим верным спутником.

Каждый день мы куда-то торопимся, не успеваем, опаздываем. К сегодняшнему дню человечество изобрело массу всевозможных хронометров. От примитивных песочных и солнечных часов, до сложнейших, основанных на процессах квантовых переходов элементарных частиц, сверхточных атомных. Человечество даже научилось «из времени делать деньги», но, к сожалению, так и не освоило обратный процесс. Одним словом время – это то, чего нам всегда критически не хватает. И особенно для того, чтобы просто, никуда не спеша, свернуться калачиком и от всей души «придавить хорька». Конечно же, данный прибор не «растянет» вам время, но поможет его подсчитать, а значит экономно и с умом его использовать, с пользой для себя и окружающих.

Читайте также:  Устройство для очистки рыбы (чертежи и схемы)

Итак, что же за хронометр сегодня у нас? Идея систем отображения с механической развёрткой, отнюдь, не нова. Данные часы были разработаны чуть больше полугода назад, когда один из приднестровских котов опубликовал здесь свою статью с подобным прибором. Целью моей разработки было создать некое совершенное во всех отношениях устройство подсчёта времени, основанное на подобных принципах, но лишённое всех недостатков модели приднестровского товарища. Во избежание «переноса недостатков» как принципиальная схема, так и программный код разрабатывались с нуля. Да и не было желания «ковыряться» в чужом коде, хотелось разработать что-то своё, новое и совершенно отличное. Так, после двух месяцев творческих поисков и двух неудачных образцов появился «МИРАЖ». Уникальность данного устройства счёта времени заключается в его неимоверной простоте, дешевизне и столь модных сегодня минималистических тенденциях. Как говорят: «Всё гениальное должно быть просто!». Но, не смотря на это, данный хронометр умеет считать секунды, минуты, часы, числа, месяцы, годы, вычисляет дни недели по дате и добавляет по дню в високосные годы. Кроме того этот «малыш» довольно точен и экономичен. За полгода его работы уход времени составил не более двух минут, а элемент питания до сих пор не требует замены.


Из чего же он состоит? «Сердцем» устройства является излюбленный посетителями данного сайта 8-ми битный Flash микроконтроллер фирмы Atmel – ATmega8. Секрет сверхнизкого энергопотребления устройства заключается в том, что большую часть времени МК, как и положено всем порядочным котам, «дрыхнет»! Причём столь глубоко, что его ток потребления составляет при этом немногим более 8мкА! «А кто же тогда время считает?» – спросите вы. А всё дело в том, что в его составе имеется хитрый таймер-счётчик TC2, имеющий в своём составе независимый генератор тактовых импульсов с предделителем и возможностью подключения внешнего кварцевого резонатора. Вот он-то как раз и считает генерируемые генератором импульсы с частотой 32 786Гц, которая задаётся внешним опорным «часовым кварцем». Один раз в секунду происходит переполнение таймера и по данному событию он формирует сигнал прерывания, способный «разбудить» вычислительное ядро микроконтроллера. При пробуждении запускается внутренний калиброванный RC-осциллятор с делителем на 8, от которого и происходит тактирование ядра частотой порядка 1,2 МГц. При этом ток потребления скачком возрастает до полутора миллиампер. Ядро производит математические действия и снова уходит в спящий режим. Переполнение таймера – не единственное условие для пробуждения МК. Это также происходит и по нажатию кнопки «Wake». При этом МК в течение 5 секунд не уходит в спящий режим, ожидая действий пользователя, и выполняя алгоритмы пользовательского интерфейса. Если по истечению 5 секунд никаких действий не последует, МК снова уйдёт в режим сна.

Как пользоваться данным устройством? Элементарно! Держите устройство в руке горизонтально батареей к себе. Кратковременно нажмите кнопку «Wake» и начните совершать взмахи влево-вправо с частотой от 3 до 5 взмахов в секунду. Перед вами появится «виртуальное табло» с отображением текущего времени.

Ещё одно кратковременное нажатие, и на «табло» появится текущая дата.

И, наконец, эмблемка «МИРАЖ».

Для установки времени необходимо в режиме отображения времени нажать и удерживать не менее 2 секунд кнопку «Wake» до засвечивания нижнего светодиода. При взмахах появится:

Каждое кратковременное нажатие будет увеличивать отображаемый параметр на единицу. Ещё одно нажатие с удерживанием переключит в режим установки минут:

Отображаемый параметр изменяется аналогично. Следующее нажатие с удержанием сохранит установленное время и переключит в режим отображения времени. Если вы не желаете сохранять установленное время – просто не производите с устройством никаких действий в течение промежутка времени длительностью не менее пяти секунд. Устройство без сохранения перейдёт в спящий режим.

Аналогично устанавливается и дата. Необходимо перейти в режим отображения даты, далее нажатием с удержанием войти в режим установки даты. Далее производятся действия, аналогичные описанным выше как и при установке времени:

Ну чтож, без внимания остался лишь самый загадочный элемент устройства – это «датчик взмахов». Для удобства назовём его «акселерометр», хотя это и не совсем корректно.

Данный компонент изготавливается вручную. Для этого вам понадобятся напильник, паяльник, шило, кусачки-бокорезы ну и, конечно же, пара не очень кривых рук. За основу корпуса берётся планка штыревая типа PLD-80. От неё очень аккуратно откусываются 2 отрезка по 8 штырей. Все штыри вынимаются. В результате получается 16 штырей и 2 пластиковые детали. Далее 4 штыря изгибаются под прямым углом с отступом около 2мм от края и вставляются в одну из пластиковых деталей со стороны без углубления (см. фото).

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

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

В качестве грузика используется кусочек медной или латунной проволоки сечением около 1,5мм с золотым или серебряным покрытием – идеально подходят кусочки контактов некоторых старых «совковых» разъёмов. В качестве пружинки применена струнка, выпаянная из оптической головки лазерного CD/DVD привода. На таких струнках подвешиваются подвижные пластиковые рамки с обмотками и микролинзами. Пружинка должна иметь 1-1,5 витка (подбирается экспериментально), навивается на оправке диаметром около 1мм (вывод какого-нибудь выводного элемента с соответствующим сечением). Одним кончиком пружинка припаивается к грузику, на другом формируется «петелька», которая припаивается к медному прямоугольнику. Далее на штыри надевается вторая пластиковая деталь углублением вниз, образуя таким образом «крышечку коробочки» со всей «механикой» внутри. Далее «крышечку» необходимо снять, аккуратно подгибая пружинку тонким пинцетом, необходимо добиться, чтобы груз не касался верхней или нижней стенки коробочки, а был слегка прижат к левому контакту («крышечка» для проверки периодически устанавливается на место). Таким образом в собранной конструкции при взмахах грузик будет ударяться только о боковые штыри-контакты.

После регулировки и сборки верхние выступы штырей обкусываются кусачками и стачиваются напильником. Далее акселерометр ставится всеми четырьмя контактами на напильник и производится стачивание контактов до толщины не более 0,3-0,5мм, после чего он готов к пайке на плату. После пайки акселерометр необходимо самым тщательным образом промыть средством для удаления флюса и грязи. При определённой сноровке пластиковые детали корпуса также можно очень сильно утонить, получив акселерометр почти крохотных размеров.

Жёсткость пружинки и сила прижима грузика окончательно доводятся после сборки и прошивки устройства по корректности развёртки изображения. При очень мягкой пружинке левая или правая сторона растра «сминается», при слишком жёсткой акселерометр перестаёт реагировать на взмахи, растр появляется не при каждом взмахе или не появляется вообще.

Номинал резисторов R1-R8 выбирается в соответствии цвета устанавливаемых светодиодов (точнее от заявленного напряжения их переходов). Для синих, белых, и ultra bright зелёных – 8-16 Ом, для красных, жёлтых и зелёных обычных – порядка 47-56Ом. Также хочу обратить ваше особое внимание на то, что микроконтроллер ATmega8A-AU по ряду его архитектурных особенностей в данной конструкции не применим. Устройство будет корректно работать только с МК ATmega8-16AU и ATmega8L-8AU.

Также напомню об обязательном соблюдении правил антистатической безопасности при работе с микроэлектроникой. После сборки и монтажа не забывайте тщательно мыть платы специализированными средствами для удаления флюса и грязи. Перед включением проверьте плату на наличие непропаев, обрывов и закороток. Готовую плату можно покрыть лаком, например «Цапонлак» или «Plastik». Следите, чтобы остатки паяльного материала и лак не попали в акселерометр.

Всем желаю удачи, хорошего настроения и побольше свободного времени!

Фузы, прошивка и плата(SL5.0) находятся в архиве.

Ссылка на основную публикацию