Пятница, 17.05.2024, 12:18
Приветствую Вас Гость | RSS
Главная | Cчетчик витков | Регистрация | Вход
Меню сайта
Вход на сайт
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Практическая электроника

    Счетчик витков для намоточного станка.

    Знакомство с STM8 мне хотелось начать с какого нибудь полезного устройства. Им оказался счетчик витков для ручного намоточного станка.

     Мне хотелось сделать устройство с батарейным питанием от двух микропальчиковых батарей, потребляющее мало энергии в рабочем режиме, имеющее простое кнопочное управление-"Сброс","Вкл/Выкл". Счетчик должен уметь реверсно считать. Иногда приходится отматывать витки, или бывают не штатные ситуации.

    В наличии  были STM8S003F3P6 и STM8L051F3P6 в корпусах TSSOP-20. Выяснилось что S003 не годится для моей задумки-у нее питания 3-5в, и скорее всего при 50% разряде 3вольтовой батареи микроконтроллер работать не будет. Поэтому выбор пал на STM8L051F3P6. По даташиту питание у нее от 1,8 до 3,6в. В качестве дисплея решено было использовать МT-10T7 Российского производителя МЭЛТ. Данный ЖК был куплен лет 7 назад, с тех пор достойного применения так и не нашел.Выкинуть его было жалко. 

    Начнем с датчиков. В начале решено было использовать интегральные датчики Холла,формирующие  логический сигнал на выходе. Они мне достались с платы подводного фонаря. Оказалось что они не воспринимают короткие изменения магнитного поля. Даже при не больших оборотах, счетчик отказывался считать. Это меня огорчило. Пришлось изобретать свой велосипед. Решил использовать датчики холла от мотора cd-rom привода и lm358. Крайне сомнительно была работа этой затеи от 3в. Но попытка не пытка. На мое удивление схема отлично заработала при таком питании.

    Схема проще не придумаешь. R5-задает ток через датчики Холла U1,U2. На DA1, сделан усилитель с КУ=50.К его выходам подключены транзисторы Q1,Q2 представляющие  преобразователя уровней.Входы микроконтроллеров подтянуты через резисторы к плюсу,поэтому дополнительный огород городить не стал. Сигналы с выходов DA1 не соответствуют логическим уровням STM8. Зачем на плате предусмотрены элементы С1,С2-уже и не помню.Очевидно собирался бороться с помехами. Транзисторы на самом деле bc817-40. Но и те что на схеме должны работать. Датчики холла hw-101A(маркировка D).

    Питание на датчик, и дисплей приходят  с вывода PB1 микроконтроллера. Нагрузочной способности для этих целей более чем достаточно.

     R1 это перемычка. Номинала "0"(пофигистора) у меня не нашлось,поэтому поставил самый мелкий что был.

    Максимальное значение для счета это 65535. Кнопка "RESET" используется для сброса показаний счетчика, "ON/OFF" -вкл/выкл устройства.

    Так как это  мой второй проект на STM8, печатную плату можно назвать скорее отладочной.

    Фото готового устройства.

    В качестве датчика оборотов выступает стеклотекстолитовый диск, с приклеенным на нем ниодиевым магнитом диаметром 5мм,толщиной 1мм, и плата с датчиками Холла.Растояние между магнитом и датчиками около 5мм. Половина знакомест на дисплее осталась не задействована. Ни чего умнее не придумал-как показывать там напряжение питания. Контрастности индикатора не достаточно,поэтому пришлось наклонить всю плату под 45градусов. На фото датчик прикреплен скотчем, потом я его прикрепил несколькими витками изоленты. Конструкция получилась не шибко эстетичной, но этого мне вполне достаточно. Сам намоточный станок-ничто иное как старый механизм для перемотки кинопленки.Ни знаю   какие манипуляции  он был призван производить, но на него надевается бобина с пленкой. Индикатор,батарейный отсек, плата микроконтроллера приклеены к куску текстолита термоклеем.

    Потребляемый ток во включенном состоянии 12,8мA , в выключенном 1,71мкА.

    Программное обеспечение.

    На звание гугу программирования ни коем разе не претендую, для спецов этот момент не будет интересен.

    Код написан в среде IAR Embedded Workbench IDE. Микроконтроллер работает от встроенного RC генератора HSI с частотой 16мгц. Подсчетом числа витков занимается таймер общего назначения TIM2. Он имеет 16битный счетный регистр, и возможность работы с экодером(encoder mode). Это существенно облегчает задачу. Достаточно настроить таймер, и забыть. Он сам по себе будет считать значения, и реализовывает возможности реверсного счета. Правда значения там в два раза больше реальных получаются,из за оссобеностей работы этого режима.

    Конечно же значения из TIM2 нужно как то извлекать, и выводить на экран. Этим занимается 8битный TIM4, генерирующий прерывания, по которому происходит эта операция. Прерывания приходят каждые 8мс.В обработчик засунут  опрос кнопки "сброс",и манипуляции по выводу информации от АЦП и TIM2 на экран.

    Измерением напряжения батареи занимается АЦП.  Вход опорного напряжения, внутри соединен с плюсовым источником питания микроконтроллера. Выбрать внутренний источник нельзя(как это например сделано в AVR). Зато можно измерить напряжение этого самого источника. Напряжение источника VREF измерено на заводе и записано в VREFINT_Factory_CONV byte,его можно считать. 

    Что бы основной программе не было скучно, она смотрит-не завершено ли преобразование АЦП и на основе 16 выборок вычисляет среднее.

    Включение/выключение схемы реализовано на основе внешнего прерывания по нажатию на кнопку. По приходу прерывания меняем переменную, и сидим ждем пока кнопку отпустят.

    Если пользователь хочет выключить устройство,то основная программа сохраняет значение счетного регистра TIM2  в ОЗУ. Все не задействованные выводы делает выходами,устанавливает на них нуль. Если этого не сделать у меня ловит помехи. Отключаем источник эталонного напряжения VREF и АЦП и засыпаем. Использован самый экономичный режим halt. Проснется микроконтроллер от нажатия кнопки "On",по внешнему прерыванию(External interrupts).

    Прошивка микроконтроллера.

    Это отдельная история. Когда покупал  STM32F0 Discovery, думал что программатор на ней умеет шить STM8.Оказалось что нет. Тратить деньги на отдельный программатор не хотелось, а возможности прошивки по USART меня не впечатлила(не всё 8битное семейство умеют это).

    По  ссылке нашел  полноценный ST-Link. Внимательно посмотрев на схему,и на  Discovery,  выяснилось -можно допаять недостающие детали,обновить ПО, и получить почти полноценный программатор. Что  и сделал. Все заработало. Теперь мой  Discovery умеет шить STM8. Фото, без комментариев. 

    Файлы проекта.

     

     

     

    Бесплатный конструктор сайтов - uCozCopyright MyCorp © 2024