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

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

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

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

Сообщение Serega »

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

Сообщение Kot »

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

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

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

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

Сообщение Spider »

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

Сообщение Gomovich »

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

Сообщение .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 КБ) 11829 скачиваний
19234711.png
shem
(87.23 КБ) 1053 скачивания
counter.rar
arhiv
(1.55 КБ) 528 скачиваний
из ХЗ делаю ТЗ
Открыл глаза
Аватара пользователя
Сообщения: 65
Зарегистрирован: Пт авг 26, 2011 18:30:21

Сообщение vervoolf »

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

Сообщение nictrace »

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

Сообщение Meteor »

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

Сообщение Jack_A »

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

Сообщение eXL »

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

Сообщение BOB51 »

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

Сообщение Jack_A »

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

Сообщение eXL »

BOB51

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

Сообщение eXL »

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

Сообщение BOB51 »

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

Сообщение Jack_A »

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

Сообщение Jman »

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

Сообщение akl »

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

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