Разработка данных устройств началась когда одновременно двое моих знакомых купили станки СРН-05 с "уставшими" механическими счетчиками витков. Также знакомый, некоторое время владеющий токарным станком, попросил сделать ему тахометр. Т.к. последний из вышеперечисленных товарищей, работает электриком, у него, как и у любого технаря, скапливается списанная техника. Ввиду направления его работы у него скапливаются списанные, неисправные и просто счетчики электроэнергии с истекшим сроком проверки. Самой популярной моделью счетчика, попадающий на запчасти является трехфазный счетчик ЛЭМЗ ЦЭ2727. Для удобства, на фото показаны две платы.
На плате счетчика присутствуют:
- Микроконтроллер Microchip PIC16F76
- микросхема часов реального времени с батарейкой
- i2c ПЗУ'шка
- спец. АЦП ADE7752AR
- ЖК дисплей в комплекте с микросхемой-контроллером HOLTEK HT-1621B
- куча другой полезной SMD рассыпухи (кренка, опорник, оптопары, кварцы...)
При беглом поиске на просторах интернета, была найдена статья http://pakhom.weebly.com/ard_ht1621.html автор которой разобрался с подключением к Arduino ЖК дисплея на таком же контроллере. Скачав библиотеку и тестовый скетч, я вернулся к железу. На плате много незаполненных компонентами контактных площадок, что намекает нам на то что данные счетчики не нафаршированы лишними опциями. Платы бывают нескольких ревизий, между собой отличаются они: цветом маски, корпусами и расположением некоторых деталей(на пример оптопар), распиновка нужных для переделки компонентов остается неизменна. Первым делом я захотел сделать, так называемую, "отладочную плату" с ЖК дисплеем и его контроллером, для этого необходимо отпаять все активные и габаритные компоненты с верхней части платы счетчика, кроме ЖКИ и контроллера HOLTEK HT-1621B.
Отпаянные детали(PIC, ПЗУ, RTC, оптопары, ....) и нижнюю часть платы можно оставить для использования в других проектах. Горизонтальный изоляционный пропил в плате, подкидывает не плохую идею.....
Для обрезки плат я применил ножницы по металлу, но можно использовать и ножовку по металлу или лобзик. Также на плате присутствует(справа от экрана) место под разъем PLS-10, на этот разъем выведено питание и rx\tx UART'a микроконтроллера PIC. Запаиваем разъем PLS-10, но с обратной стороны платы, это позволит как подключать Arduino для отладки, так и навесить самодельную плату "вторым этажом" снизу. Далее следует вывести необходимые 3 линии(DATA, CS, WR) контроллера ЖКИ на разъем PLS-10. Проще всего это делается запайкой перемычек на то место где был МК PIC.
Всего понадобится 3 перемычки. Первая соединяет контактные площадки 2 и 22, вторая 3 и 21, третья 4 и 18. Если при запайке перемычек возникли проблемы и контактные площадки оторвались, то можно сделать перемычки между переходными отверстиями, расположенными рядом с контактными площадками, так даже надежней. Далее, чтобы не путаться в рапиновках разъема, обозначенного на плате счетчика как X1, была сделана наклейка с таблицей соответствия номеров контактов и линий управления контроллером ЖКИ. Файл для печати наклейки(Microsoft Publisher) прилагаю.
На этом отладочную плату с ЖКИ и контроллером HOLTEK HT-1621B можно считать готовой. Ее можно подключать к Arduino или другой отладочной плате и заливать тестовую программу/скетч. Для тестового скетча подключение оптодатчика не обязательно.
Для облегчения восприятия, в программе Fritzing была нарисована монтажная схема подключения отладочной платы и датчика к Arduino.
При первых экспериментах с софтом, тестовый скетч отказывался компилироваться, ругань компилятора была про библиотеку. Как выяснилось, некоторый критичный код в библиотеке был написан КАПСОМ! Исправленную библиотеку предлагаю. Далее на форуме http://www.arduino.ru/forum/apparatnye-voprosy/podklyuchenie-i-ispolzovanie-zhk-segmentnogo-indikatora был найден код который выводит uptime микроконтроллера в миллисекундах на ЖКИ. Но к сожалению при попытке вывести цифры на экране появлялись непонятные символы. Почитав datasheet на HOLTEK я понял что вывод информации предполагается блоками по 3 сегмента. Переделав матрицу и изменив параметры цикла функции вывода, я добился правильной работы тестового скетча. Далее я подключил к Arduino UNO оптодатчик от принтера, используя соответствующий токоограничительный(R1) и подтягивающий(R2) резисторы. Начать я решил с реализации программы для счетчика. Для того чтобы обеспечить возможность быстрой проверки, из катушки от печатной машинки и шуруповерта был сделан тестовый стенд.
На обоих "дисках" катушки уже было по одному отверстию, но с одной из сторон я просверлил еще одно, это пригодится для повышения точности тахометра. Программа счетчика витков основана на функции вывода с форума и прерываниях по 2-му порту. Сброс организован штатными средствами МК, ни чего нового я придумывать не стал. Программа тахометра тоже работает по прерываниям, но она считает сколько раз в секунду был пропущен/прерван свет в датчике и умножает эту переменную на 30(так как дырки в диске 2)
void pegarpm() { rpmconta++; } void loop() { rpmconta = 0; attachInterrupt(0, pegarpm, FALLING); delay(1000); detachInterrupt(0); rpmconta = rpmconta * 30; //зависит от количества отверстий
Для повышения точности тахометра (если необходимо измерять низкие обороты) необходимо увеличить количество отверстий в диске, и соответственно изменить значение. Для одной дырки 60, для 2-х 30, 3-20, 4-15, 6-10. Отверстия рекомендую сверлить тонким сверлом и через равные промежутки.
Так как программы получились небольшие, да и Arduin'ка у меня одна, а прибора надо было 3, было решено развести платы на AtMega8. Данные приборы будут эксплуатироваться в т.н. "гаражных" условиях я решил сделать плату универсальной, в том числе и в плане питания. Я поставил диодный мост и КРЕН'ку, чтобы прибор можно было запитать от первого попавшегося маломощного трансформатора или БП. Сперва я нарисовал схему в Proteus'е.
Затем настало время чертить плату. Идея сделать на плате разъем PBS-10 и воткнуть плату в уже распаянный разъем отладочной платы с ЖКИ и HOLTEK"ом "вторым этажом", была с самого начала, но я не был уверен в том как данное соединение поведет себя в условиях вибраций, которые возможны (прим. неотбалансированная заготовка на станке). Для решения данной проблемы я предусмотрел крепежные отверстия по углам платы.
Начертив плату в программе Sprint-Layout 5, я принялся за ее изготовление. Изготавливать плату решил, традиционным для себя, фоторезистивным способом. Сперва отрезал и зашкурил кусок фольгированного стеклотекстолита, размером ~60x35mm(чуть больше чем нужно). Затем я прошелся по заготовке губкой "scotch bright".
Затем вырезал чуть большей по размеру кусок пленочного фоторезиста, и при помощи ламинатора "накатил" и приклеил его к текстолитовой заготовке.
Пока заготовка ездила по ламинатору, на лазерном принтере был напечатан фотошаблон. Далее экспонируем, проявляем, травим, моем, сверлим, паяем. Должно получится как-то так.
Так как конкретно данная плата предназначалась для тахометра, разъем под кнопку сброса(J2) не впаян. Для счетчиков необходимо запаять этот разъем. Затем необходимо прошить в ATmega8 загрузчик Arduino «bootloader» по инструкции. Используя этот загрузчик мы используем встроенный в ATmega8 тактовый генератор на 8MHz. Для прошивки я использовал программатор USBTINY. Далее, не отсоединяя "мегу" от программатора, запускаем Arduino IDE, импортируем библиотеку, открываем нужный скетч, выбираем программатор, компилируем(CTRL+R) и прошиваем(CTRL+SHIFT+U). Все, можно вынимать МК из панельки программатора, вставлять в панельку на плате и состыковывать бутерброд из плат. Ниже приведены образцы того как это выглядит в собранном виде.
И с обратной стороны.
На фото видно, что на первой сделанной плате была допущена ошибка, на разъем J3 я вывел 5V заместо земли(с кем не бывает), пришлось резать дорожку и кидать перемычку. На чертеже платы прикрепленном к статье данная ошибка исправлена, а других не обнаружено. Убедившись в том что ошибок на плате нет, можно включать и испытывать.
На данном фото показан готовый тахометр, перед тем как он был отдан товарищу с токарным станком.
P.S. Контроллер ЖКИ HOLTEK HT-1621, помимо данной модели электросчетчика, также применяется: в некоторых счетчиках "меркурий" и "энергомера", стационарных телефонах, также в дисплеях кассовых аппаратов. Да и китайцы на ebay'е готовые платки продают. Конечно сам ЖКИ и плата будут уже другими, но вывод не долго переделать.
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
U1 | МК AVR 8-бит | ATmega8 | 1 | DIP-28 | Поиск в магазине Отрон | |
U2 | Линейный регулятор | LM78L05 | 1 | TO-92 | Поиск в магазине Отрон | |
BR1 | Диодный мост | DF005M | 1 | DIP-4 | Поиск в магазине Отрон | |
C1, C4 | Электролитический конденсатор | 100 мкФ | 2 | Поиск в магазине Отрон | ||
C2, C3, C5, C7 | Конденсатор | 100 нФ | 4 | керамика, C6 на плате счетчика | Поиск в магазине Отрон | |
R1, R2 | Резистор | 10 кОм | 2 | 1/4 или 1/8 W | Поиск в магазине Отрон | |
R3 | Резистор | 220 Ом | 1 | 1/4 или 1/8 W | Поиск в магазине Отрон | |
J1, J2 | Клемма | 2 контакта | 2 | Поиск в магазине Отрон | ||
J3 | Клемма | 3 контакта | 1 | Поиск в магазине Отрон | ||
J4 | разъем | PBS-10 | 1 | на плату | Поиск в магазине Отрон | |
LCD | Разъем | PLS-10 | 1 | на плату от счетчика | Поиск в магазине Отрон | |
RESET | Кнопка | без фиксации | 1 | на сброс | Поиск в магазине Отрон | |
P1 | Датчик фотопрерыватель | инфракрасный | 1 | из принтера или другой оргтехники | Поиск в магазине Отрон | |
LCD | плата с ЖКИ и контроллером | HOLTEK HT-1621B | 1 | от счетчика ЛЭМЗ ЦЭ2727 | Поиск в магазине Отрон | |
Скачать список элементов (PDF)
Прикрепленные файлы:
- atmega8_optical_counter_and_tachometr.pdf (14 Кб)
- atmega8_optical_counter_and_tachometr.lay (31 Кб)
- HT1621.zip (13 Кб)
- atmega8_optical_counter_and_tachometr1.pdf (14 Кб)
- tachometer.ino (1 Кб)
- ht1621_lib.zip (2 Кб)
- counter_LCD3.ino (1 Кб)
Комментарии (5) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
[Автор]
[Автор]
Кстати я тут недавно искал информацию по некоторым новым мултиметрам и обнаружил что HT-1621 применяется и там.
Ну а счетчиков и т.п. на этом контроллере, до сих пор огромное кол-во в обороте, детали для экспериментов найти не проблема.
Также знакомый недавно заказывал эти микрухи в Китае и ему прислали неупакованную нормально кучу в которой была часть holtek'ов и часть каких-то почти аналогов(с отличиями, я в подробности не лез). Так что, если соберетесь использовать в "боевых" проектах - имейте в виду.
Где-то год назад я делал знакомому двухканальный термометр на 10к термисторах для того чтобы он весел рядом с коллекторами отопления(частный сектор) и монеторил разницу температур на горячей и холодной стороне котла. Плату я для этого не травил, оставалась запасная arduino nano, я ее туда воткнул, питание от ЗУ старого телефона.