Как сделать счетчик импульсов на AVR

Обсуждаем цифровые устройства...
Тимур

Как сделать счетчик импульсов на AVR

Сообщение Тимур »

Типа прикрутить фотодиод и фотоприемник??
Спасибо за ответ
Аватара пользователя
Serega
Говорящий с текстолитом
Сообщения: 1529
Зарегистрирован: Пн авг 22, 2005 21:02:22
Откуда: Питер

Сообщение Serega »

Товарищ! У нас правило: излагать проблему целиком :) Для чего счетчик? Где он будет стоять? Че делать? Каковы параметры? и т.п. :)
Лучше быть первым в деревне, чем вторым в Риме
Аватара пользователя
Kot
Дух сайта
Сообщения: 198
Зарегистрирован: Вт авг 23, 2005 15:22:21
Откуда: Обитаю везде

Сообщение Kot »

Ну что значит для чего?! Мяу! Разумеется, для измерения количества взмахов кошачьего хвоста - ну что за вопрос?
Все остальное просто не имеет смысла.
МЯЯЯЯЯУ!
Тимур

Счетчик

Сообщение Тимур »

Вообщем для того что бы посчитать число проходящих
через него предметов.

Параметры сам не знаю.
Аватара пользователя
Spider
Опытный кот
Сообщения: 732
Зарегистрирован: Чт дек 29, 2005 07:29:25
Откуда: Омск
Контактная информация:

Сообщение Spider »

Я думаю, что для тупого подсчета "взмахов хвоста" достаточно повесить конструкцию из фотоприемника, транзистора и резисторов на таймер-счетчик с внешним прерыванием.
А если еще охото знать время прибывания хвоста
в зоне датчика (а заранее знаю скорость можно определить его толщину), то можно перецепить ту же конструкцию на прерывание настроенное на срабатывание по смене состояния и мерить время между срабатываниями.
Gomovich
Родился
Сообщения: 8
Зарегистрирован: Сб апр 10, 2010 20:21:07

Re: Как сделать счетчик импульсов на AVR

Сообщение Gomovich »

Помогите разработать схему
Вложения
автомат.JPG
(85.78 КБ) 1780 скачиваний
.ignore
Родился
Сообщения: 17
Зарегистрирован: Вс июл 31, 2011 03:17:15

Re: Как сделать счетчик импульсов на AVR

Сообщение .ignore »

Энкодер и Bascom-AVR. Счетчик импульсов

http://avrproject.ru/publ/ehnkoder_i_ba ... v/1-1-0-14

Изображение

код в Bascom-AVR:

Код: Выделить всё

$regfile = Attiny2313.dat
$crystal = 8000000

Dim W As Word

Dim N1 As Byte
Dim N2 As Byte
Dim N3 As Byte
Dim N4 As Byte
Dim N5 As Byte
Dim N6 As Byte

Dim M1 As Long
Dim M2 As Long
Dim M3 As Long
Dim M4 As Long
Dim M5 As Long
Dim M6 As Long

Ddrd = &B11011011         ' аноды
Ddrb = &B11111111         ' сегменты

Config Int0 = Falling     ' прерывание INT0 по нисходящему фронту (c + на -)
On Int0 Encod

Enable Interrupts
Enable Int0

Do        ' в главном цикле отображаем количество импульсов

Portd = &B11111110

Select Case N1
Case 0 : Portb = &B11000000
Case 1 : Portb = &B11111001
Case 2 : Portb = &B10100100
Case 3 : Portb = &B10110000
Case 4 : Portb = &B10011001
Case 5 : Portb = &B10010010
Case 6 : Portb = &B10000010
Case 7 : Portb = &B11111000
Case 8 : Portb = &B10000000
Case 9 : Portb = &B10010000
End Select

Waitms 5

Portd = &B11111101

Select Case N2
Case 0 : Portb = &B11000000
Case 1 : Portb = &B11111001
Case 2 : Portb = &B10100100
Case 3 : Portb = &B10110000
Case 4 : Portb = &B10011001
Case 5 : Portb = &B10010010
Case 6 : Portb = &B10000010
Case 7 : Portb = &B11111000
Case 8 : Portb = &B10000000
Case 9 : Portb = &B10010000
End Select

Waitms 5

Portd = &B11110111

Select Case N3
Case 0 : Portb = &B11000000
Case 1 : Portb = &B11111001
Case 2 : Portb = &B10100100
Case 3 : Portb = &B10110000
Case 4 : Portb = &B10011001
Case 5 : Portb = &B10010010
Case 6 : Portb = &B10000010
Case 7 : Portb = &B11111000
Case 8 : Portb = &B10000000
Case 9 : Portb = &B10010000
End Select

Waitms 5

Portd = &B11101111

Select Case N4
Case 0 : Portb = &B11000000
Case 1 : Portb = &B11111001
Case 2 : Portb = &B10100100
Case 3 : Portb = &B10110000
Case 4 : Portb = &B10011001
Case 5 : Portb = &B10010010
Case 6 : Portb = &B10000010
Case 7 : Portb = &B11111000
Case 8 : Portb = &B10000000
Case 9 : Portb = &B10010000
End Select

Waitms 5


Portd = &B10111111

Select Case N5
Case 0 : Portb = &B11000000
Case 1 : Portb = &B11111001
Case 2 : Portb = &B10100100
Case 3 : Portb = &B10110000
Case 4 : Portb = &B10011001
Case 5 : Portb = &B10010010
Case 6 : Portb = &B10000010
Case 7 : Portb = &B11111000
Case 8 : Portb = &B10000000
Case 9 : Portb = &B10010000
End Select

Waitms 5

Loop

End

Encod:              ' тут узнаем в каком направлении вращают ручку энкодера

 If Pind.5 = 1 Then        ' если на ноге единица (импульс не пришел) тогда
 Incr W                    ' инкременируем переменную (увеличиваем на 1)
 Else                      ' в обратном случае
 Decr W                    ' декрементируем переменную (уменьшаем на 1)
 End If
 Waitms 5                  ' ждем пока утихнет дребезг контактов         
 Gifr = 64                ' сбрасываем регистр хранения прерывания INT0

' а тут готовим переменную к выводу на дисплей

M1 = W
M2 = M1
M3 = M1
M4 = M1
M5 = M1

M1 = M1 / 10000        ' обработка первого разряда
N1 = Abs(M1)

M2 = M2 Mod 10000      ' обработка второго разряда
M2 = M2 / 1000
N2 = Abs(M2)

M3 = M3 Mod 1000        ' обработка третьего разряда
M3 = M3 / 100
N3 = Abs(M3)

M4 = M4 Mod 100         ' обработка четвертого разряда
M4 = M4 / 10
N4 = Abs(m4)

M5 = M5 Mod 10           ' обработка пятого разряда
N5 = Abs(m5)

Return
Вложения
s19234711.jpg
shem_m
(20.28 КБ) 11803 скачивания
19234711.png
shem
(87.23 КБ) 1050 скачиваний
counter.rar
arhiv
(1.55 КБ) 525 скачиваний
из ХЗ делаю ТЗ
Аватара пользователя
vervoolf
Открыл глаза
Сообщения: 65
Зарегистрирован: Пт авг 26, 2011 18:30:21

Re: Как сделать счетчик импульсов на AVR

Сообщение vervoolf »

Есть ли смысль собирать?у нас в новосибирске с LCD стоит не больше 450 рублей (простой), при стоймости тиньки2313 126 рублей?
Аватара пользователя
nictrace
Мучитель микросхем
Сообщения: 492
Зарегистрирован: Вс янв 11, 2009 09:29:08
Откуда: Ярославль
Контактная информация:

Re: Как сделать счетчик импульсов на AVR

Сообщение nictrace »

о! моя тема! :) будем наблюдать!
Мои верные друзья - АМD и AVR
LM317 - атцтой, LM2576ADJ - форева! :)
Аватара пользователя
Meteor
Друг Кота
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....
Контактная информация:

Re: Как сделать счетчик импульсов на AVR

Сообщение Meteor »

vervoolf писал(а):у нас в новосибирске с LCD стоит не больше 450 рублей (простой), при стоймости тиньки2313 126 рублей?

Это где вы берете такие тиньки 2313?
Давно было, но покупал в новосибирском представительстве Аргуссофта (на советской) по 37р\шт. Еще можно вточку опоры заглянуть (была на Коммунистической) а не шастать по Микронике, Радиоле и пр. Современные цены не знаю.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Как сделать счетчик импульсов на AVR

Сообщение Jack_A »

vervoolf писал(а): у нас в новосибирске с LCD стоит не больше 450 рублей (простой), при стоймости тиньки2313 126 рублей?


Богатенькие Буратины ! Я в нашем захолустном Минске за 1$ покупал. За 3$ - AT90USB162. Вот те и кризис с инфляцией.
eXL
Открыл глаза
Сообщения: 57
Зарегистрирован: Ср мар 19, 2008 16:41:39
Откуда: Сибирь

Re: Как сделать счетчик импульсов на AVR

Сообщение eXL »

А не подскажет ли ALL схему счетчика с таймером.
Т.е. выставляем время счета 5...10...45сек...1...5...10 минут(т.е. регулируемое время) и считаем число импульсов пришедших за это время.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15545
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Как сделать счетчик импульсов на AVR

Сообщение BOB51 »

любой частотомер с изменяемой длительностью "окна" счета
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Как сделать счетчик импульсов на AVR

Сообщение Jack_A »

eXL писал(а):А не подскажет ли ALL схему счетчика с таймером.
Т.е. выставляем время счета 5...10...45сек...1...5...10 минут(т.е. регулируемое время) и считаем число импульсов пришедших за это время.


Ну так сам же весь алгоритм расписал, и все понятно : 2 счетчика, на один подаются считаемые импульсы, на другой - таймерные кварцованные, стартуются и останавливаются одновременно. А если на АВР, так это все вместо железки реализуется внутри МК программно. Программа - пара страничек ассемблера. Делов-то.
eXL
Открыл глаза
Сообщения: 57
Зарегистрирован: Ср мар 19, 2008 16:41:39
Откуда: Сибирь

Re: Как сделать счетчик импульсов на AVR

Сообщение eXL »

BOB51

Где есть частотомеры с регулируемым плавно временем счета ?\
Ссылку плиз.
Последний раз редактировалось eXL Сб июн 30, 2012 16:46:25, всего редактировалось 2 раза.
eXL
Открыл глаза
Сообщения: 57
Зарегистрирован: Ср мар 19, 2008 16:41:39
Откуда: Сибирь

Re: Как сделать счетчик импульсов на AVR

Сообщение eXL »

Jack_A писал(а):
eXL писал(а):А не подскажет ли ALL схему счетчика с таймером.
Т.е. выставляем время счета 5...10...45сек...1...5...10 минут(т.е. регулируемое время) и считаем число импульсов пришедших за это время.


Ну так сам же весь алгоритм расписал, и все понятно : 2 счетчика, на один подаются считаемые импульсы, на другой - таймерные кварцованные, стартуются и останавливаются одновременно. А если на АВР, так это все вместо железки реализуется внутри МК программно. Программа - пара страничек ассемблера. Делов-то.


Дуб я в программировании :(
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15545
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Как сделать счетчик импульсов на AVR

Сообщение BOB51 »

тогдыть ничем не поможем - обЪявляй тему как "сделайте мне того и этого под заказ" :)))
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Как сделать счетчик импульсов на AVR

Сообщение Jack_A »

Открою страшную тайну ( только для участников ветки "Цифровая техника" :) ) - частотомеры можно делать и без МК ! Более того, именно так их и делали со времен Петра I вплоть до Ильича II . Легкими движениями руки за полдня частотомер паяется на рассыпухе типа 1533, 155 и т.п. Точность порядка 10^-5 -- легко, а если больше, надо мудрить с термостатированием опорного генератора или питаться от цезиевого стандарта частоты ( у кого есть :) )
Аватара пользователя
Jman
Мучитель микросхем
Сообщения: 414
Зарегистрирован: Ср янв 26, 2011 13:43:30
Откуда: С того берега моря
Контактная информация:

Re: Как сделать счетчик импульсов на AVR

Сообщение Jman »

Можно ли сделать счетчик на 5 каналов, на Тиньке 2313?
[color=#4080FF]- Бежит этот подлец-электрон, а вокруг его масса (аж 10 в 23й) штук ионов кремния и 10 в 15й ионов примеси и он, подлец, взаимодействует![/color]
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: Как сделать счетчик импульсов на AVR

Сообщение akl »

Можно.
Ответить

Вернуться в «Цифровая техника»