Перейти к содержимому

Фотография

Реверсивный счётчик на PIC16F628A


Сообщений в теме: 27

#1
Samopalkin

    Продвинутый пользователь

  • Проверенные
  • 90 сообщений
  • ГородКислобздееевка (рядом с челупиздивкой)
Всем доброго времени суток! Реверсивный счётчик, который я предлагаю для повторения, собран на микроконтроллере PIC16F628A. Он имеет два входа управления: «+1» и «-1», а также кнопку «Reset» (четвёртая кнопка зарезервирована и пока не используется). Мой предыдущий счётчик импульсов имел недоработку: в нём была всего одна кнопка «+1» и при её длительном удержании счёт продолжался. Мой новый счётчик избавлен от этой недоделки. Как бы долго или коротко не была нажата кнопка входа, счёт продолжится только при её очередном нажатии. Максимальное количество поступивших импульсов 9999. При воздействии на вход «-1» счёт ведётся в обратном порядке до значения 0000. Показания счётчика сохраняются в памяти контроллера и при отключении питания. Сброс показаний счётчика и состояния памяти в 0 осуществляется при нажатии кнопки «Reset». Тех, кто решит повторить мою схему, пусть не пугает то, что при первом включении на индикаторе может высветиться непредсказуемая информация. При первом же нажатии на любую из кнопок всё станет на свои места и «мусора» больше не будет. Где и как можно использовать эту схему я пока ещё не придумал, но надеюсь, что она кому-нибудь принесёт пользу. И последнее: если у кого-то под рукой не окажется нужного индикатора, а будет какой-нибудь другой (или даже 4 отдельных одинаковых индикатора), я готов помочь перерисовать печатку и переделать прошивку. Прикрепляю в архиве схему, плату и прошивки под индикаторы с общим анодом и общим катодом. Желаю всем удачи!

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

  • Прикрепленный файл  4189682.jpg   20.52К
  • Прикрепленный файл  ___2___.zip   19.97К
  • Прикрепленный файл  7687570.jpg   23.58К


#2
shpuntic

    Продвинутый пользователь

  • Проверенные
  • 153 сообщений
  • ГородМариуполь
Samopalkin, его можно применить для намоточного станка. smile

#3
Samopalkin

    Продвинутый пользователь

  • Проверенные
  • 90 сообщений
  • ГородКислобздееевка (рядом с челупиздивкой)
Shpuntic, спасибо за подсказку! applause Я сегодня переписал программу и она вполне годится для намоточного станка. Схема и плата остались без изменения.Только назначение кнопок поменялось. Вход теперь один (для подключения геркона, например). Две кнопки направления счёта. Нажимаешь кнопку "плюс" и сигналы по входу суммируются. При этом светится точка на правом крайнем индикаторе. При нажатии на кнопку "минус" засвечивается точка на левом крайнем индикаторе и счёт по входу идёт в обратном направлении - на вычитание. Естественно, результат счёта записывается в память и сбрасывается в ноль кнопкой "резет". при отключении питания последнее состояние счётчика и кнопок направления намотки сохраняются. Все материалы прилагаю в архиве.

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

  • Прикрепленный файл  ___.zip   7.86К


#4
shpuntic

    Продвинутый пользователь

  • Проверенные
  • 153 сообщений
  • ГородМариуполь
Samopalkin, ну вот видишь-нашлось применение.Только нужно еще придумать автоматическое определение и включение направления. smile

#5
Samopalkin

    Продвинутый пользователь

  • Проверенные
  • 90 сообщений
  • ГородКислобздееевка (рядом с челупиздивкой)
Может, использовать два входа? (геркона). Установить их рядом . Как бы там ни было, всё равно сработает сначала один, а потом вторй. Вот пусть тот, который сработает первым, и указывает на направление счёта, а второй считает. Да, пожалуй, так будет неплохо. Спасибо! Как я сам не додумался… bash

#6
TG

    Новичок

  • Пользователи
  • 7 сообщений
Samopalkin, можно увеличить количество разрядов ещё на четыре? Имеется в быту счётчик воды с импульсным выходом (геркон), 1 литр - импульс, хотелось бы присобачить к нему дисплей.

#7
rubilnik

    Новичок

  • Проверенные
  • 9 сообщений
Samopalkin! Если исходник на ассемблере, мне интересно посмотреть, я сам делал такой
счётчик на pic16f84 хотелось бы сравнить ход наших мыслей. Если это не секрет, то сбрось исходник на форум
или на мыло zaharow.zaxar2012@yandex.ru .

#8
Samopalkin

    Продвинутый пользователь

  • Проверенные
  • 90 сообщений
  • ГородКислобздееевка (рядом с челупиздивкой)
TG, для того, чтобы увеличить количество разрядов, нужно использовать контроллер с большим количеством портов. В принципе это возможно. Если есть острая необходимость, я могу посчитать схему и нарисовать программу.
Rubilnik, наши мысли очень вряд ли сходятся. Дело в том, что я до сих пор не вырос из штанишек FiowCode. Это я только пытаюсь казаться умненьким, а на самом деле строю программы из "кубиков" FC. cry Если интересно - посмотри, как это выглядит:

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

  • Прикрепленный файл  01-Sch_OK.rar   3.01К


#9
Gipsy

    Продвинутый пользователь

  • Разработчик MICROCHIP
  • 626 сообщений
  • ГородСтаниславів
Не нужно большего контроллера.
1. Точка в дисплее (сегмент "Н") не используется - освобождаем 1 вывод у порта В.
2. Вход от счетчика будет только один, и работать будет только на увеличение - освобождаем 3 линии от кнопок с порта А
3. Освободившиеся 4 сегмента вешаем на еще 4 катода (или анода) индикатора.

#10
TG

    Новичок

  • Пользователи
  • 7 сообщений
Samopalkin, ,был бы очень признателен, т.к. на просторах интернета есть только 4-х разрядные счётчики, встречал ещё 6-ти разрядный, а вот 8-ми нет. Думаю, что такой будет пользоваться спросом. За ранее, спасибо.

#11
Samopalkin

    Продвинутый пользователь

  • Проверенные
  • 90 сообщений
  • ГородКислобздееевка (рядом с челупиздивкой)
Хорошо, на выходных что-то придумаю.

#12
rubilnik

    Новичок

  • Проверенные
  • 9 сообщений
Samopalkin. Проверил твоё творение Proteus Version 7.7 что-то неработает.

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

  • Прикрепленный файл  4562778.dsn   83.45К


#13
Samopalkin

    Продвинутый пользователь

  • Проверенные
  • 90 сообщений
  • ГородКислобздееевка (рядом с челупиздивкой)
И что? Оба варианта прошивок у меня работает в железе. Снять видео?

#14
rubilnik

    Новичок

  • Проверенные
  • 9 сообщений
Samopalkin.Счётчик конечно считает и в плюс и в минус. А вот Proteus ругается на запись в EEPROM .
Я то-же в своей схеме таким методом каждый счётный импульс записывал EEPROM, но видно это нехорошо
для микроконтроллере так как число записей в EEPROM оговорено в инструкции . Посмотри как сделано здесь. http://eldigi.ru/site/house/8.php
И в твоём счётчики я добавил-бы будильник или даже два.
А в железе сохраняются показания, если отключить питания не несколько минут ?

#15
Samopalkin

    Продвинутый пользователь

  • Проверенные
  • 90 сообщений
  • ГородКислобздееевка (рядом с челупиздивкой)
Показания в EEPROM сохраняются при отключении питания. Их необходимо записывать при каждом счёте, иначе что тогда запоминать?

#16
Gipsy

    Продвинутый пользователь

  • Разработчик MICROCHIP
  • 626 сообщений
  • ГородСтаниславів
Судя по даташиту на кристал производитель гарантирует минимум 1 миллион циклов записи для ЕЕПРОМ даных при тимичном значении 10 миллионов.
Итого, если счетчик будет использоваться для учета воды, то в самых пессимистических прогнозах он должен отсчитать 1000000/1000 = 1000 м3 воды. При среднем расходе на семью 20м3 в месяц этого хватит на период около 4 лет. Не так уж и много. (Или на 40 лет - если Микрочип не врет про типичные значения :), чего должно хватить с вершком). Если же мы будем мотать трансформаторы, то опять же минимум - 500 шт (берем в качестве среднестатистического транс с 2000 витков первички), типично - 5000. Как для радиолюбителя, то должно хватить.

Но отвлечемся от практики и посмотрим в сторону теории. Итак, как нам поступить если процесы будут быстротекущими, и надо гарантировано знать на чем остановились.
Выход первый и самый простой - акумулятор по питанию. Недостаток - дорого, надо еще контроль заряда акумулятора мутить , да и сдохнет он таки быстрее чем ЕЕПРОМ контроллера.
Развиваем тему дальше - батарейка, и не на всю схему а только на контроллер. Свет пропал - счетчик считает дальше, даные помнит, только не показывает. и ЕЕПРОМ не надо трогать :). Недостаток тот же - батарейка не из долговечных устройств.
Тогда ставим вместо батарейки конденсатор (тоже развязаный от общей схемы, только на контроллер) а на один из входов контроллера садим питание. Свет пропал - на входе 0, но на контроллере питание еще есть, кондюк держит. Контроллер видит такое безобразие, быстренько переводит все свои выходы в высокий импеданс, записывает текущие даные в ЕЕПРОМ и спокойно засыпает. Так как запись длится в среднем 4-8 мс, то конденсатор не такой уж и большой ставить надо. Минус - схема не работает когда нет света.
Такие вот пироги с котятами.

Добавлено (12.02.2011, 20:15)
---------------------------------------------
Samopalkin, как успехи, прицепил еще разряда к индикатору?


#17
rubilnik

    Новичок

  • Проверенные
  • 9 сообщений
Их необходимо записывать при каждом счёте, иначе что тогда запоминать? Обнаружив отключение напряжения, программа успевает записать текущий результат счета в EEPROM микроконтроллера еще до прекращения его функционирования по причине выключения питания. При последующем включении программа прочитает число, записанное в ЕЕРРОМ, и выведет его на индикатор. Счет будет продолжен с этого значения. Мне интересно на что ругается Proteus ?А время которое проработает микроконтроллер это смотря где применить этот счётчик. Мне решение этого вопроса нравиться больше эдесь.http://eldigi.ru/site/house/8.php

#18
TG

    Новичок

  • Пользователи
  • 7 сообщений
Quote (Gipsy)
Судя по даташиту на кристал производитель гарантирует минимум 1 миллион циклов записи для ЕЕПРОМ даных при тимичном значении 10 миллионов.
Итого, если счетчик будет использоваться для учета воды, то в самых пессимистических прогнозах он должен отсчитать 1000000/1000 = 1000 м3 воды. При среднем расходе на семью 20м3 в месяц этого хватит на период около 4 лет.

А можно в новую пикушку записать текущие показания счётчика, в случае если её придётся заменить через 4 года?

#19
Gipsy

    Продвинутый пользователь

  • Разработчик MICROCHIP
  • 626 сообщений
  • ГородСтаниславів
TG, конечно можно.

#20
Axell

    Новичок

  • Пользователи
  • 1 сообщений
Quote (Samopalkin)
Всем доброго времени суток! Реверсивный счётчик, который я предлагаю для повторения, собран на микроконтроллере PIC16F628A. Он имеет два входа управления: «+1» и «-1», а также кнопку «Reset» (четвёртая кнопка зарезервирована и пока не используется). Мой предыдущий счётчик импульсов имел недоработку: в нём была всего одна кнопка «+1» и при её длительном удержании счёт продолжался. Мой новый счётчик избавлен от этой недоделки. Как бы долго или коротко не была нажата кнопка входа, счёт продолжится только при её очередном нажатии. Максимальное количество поступивших импульсов 9999. При воздействии на вход «-1» счёт ведётся в обратном порядке до значения 0000. Показания счётчика сохраняются в памяти контроллера и при отключении питания. Сброс показаний счётчика и состояния памяти в 0 осуществляется при нажатии кнопки «Reset». Тех, кто решит повторить мою схему, пусть не пугает то, что при первом включении на индикаторе может высветиться непредсказуемая информация. При первом же нажатии на любую из кнопок всё станет на свои места и «мусора» больше не будет. Где и как можно использовать эту схему я пока ещё не придумал, но надеюсь, что она кому-нибудь принесёт пользу. И последнее: если у кого-то под рукой не окажется нужного индикатора, а будет какой-нибудь другой (или даже 4 отдельных одинаковых индикатора), я готов помочь перерисовать печатку и переделать прошивку. Прикрепляю в архиве схему, плату и прошивки под индикаторы с общим анодом и общим катодом. Желаю всем удачи!

Здравствуйте…Весчь хорошая…А можно у Вас попросить исходник данного проекта(С, Pascal, Basic)…
просто хочу переделать на подсчет импульсов…Заранее спасибо