Подсчет количества импульсов
- Войдите на сайт для отправки комментариев
Ср, 13/03/2019 - 23:25
Здравствуйте,
есть некое устройство, которое формирует импульсы длиной 200 мс абсолютно хаотичным образом.
Для подсчета этих импульсов какие надо использовать входа Ардуино: цифровые или аналоговые?
Каким лучше воспользоваться способом подсчета?
Заранее спасибо!
А какова аплитуда импульсов? если больше 3-х вольт, то обычный цифровой. Считать проще по прерыванию (по фронту). Но многое зависит от конкретных деталей
Цифровым, прерыванием
Это, - смотря какие импульсы.
Если импульсы цифровые, лучше использовать цифровой вход, а если аналоговые - аналоговый.
У меня в качестве входного сигнала выступает реле устройства (замыкается на 200 мсек). Я посажу на вход 5В от выхода Ардуино. С прерываниями картина прояснилась. Только на Уно есть всего два входных прерывания.
А у меня глобально задача следующая:
1) при поступлении импульса на один вход, делачем счетчик +1
2) при поступлении импульса на другой вход, делачем счетчик -1
4) если счетчик превысил определнное значение, то должно сработать реле
5) если значение счетчика упало, то реле должно вернуться в исходное состояние
6) значение счетчика должно транслироваться на табло по 485 интерфейсу.
Вопросы:
1) такое вообще можно сделаь на Ардуино?
2) сколько глобально будет прерываний? Только для подсчета входных импульсов надо два прерывания. А они не будут друг другу мешать, ведь они будут плюсовать или минусовать один и тот же счетчик?
3) надо ли для использовая 485 интерфейса использовать прерывания?
4) в чем смысл volatile. Что оно значит я знаю, а вот почему Ардуино без нее не сможет работать, я понять не могу?
Для начала решите проблему с дребезгом (программно или аппаратно), иначе контакты вам такого на прерываниях насчитают - разгружать заемучаетесь.
Уважаемый, 200мск - это очень много, не нужны Вам никакие прерывания, прекрасно за 10мск проверите дребезг и поставите флаг. При снятии флага - добавите или убавите переменную. А использования на 485 интерфейсе прерываний я, лично, считаю извращением - ну медленная там скорость.
Уважаемый, 200мск - это очень много, не нужны Вам никакие прерывания, прекрасно за 10мск проверите дребезг и поставите флаг. При снятии флага - добавите или убавите переменную. А использования на 485 интерфейсе прерываний я, лично, считаю извращением - ну медленная там скорость.
Тут вопрос, чем еще дуина будте заниматься, кроме отлова этих импульсов. Потому как если будет загружена - без прерываний никак. Но ТС всю задачу не озвучивал. :)
Тут вопрос, чем еще дуина будте заниматься, кроме отлова этих импульсов. Потому как если будет загружена - без прерываний никак. Но ТС всю задачу не озвучивал. :)
Абсолютно с Вами согласен. Но если надо делать еще какие-то долгие процессы - проще поставить еще один контроллер (ну и дешевле, соответственно), чем грузить несчастную дуинку под завязку.
И повторю автора поста - уважаемый ТС - опубликуйте полное ТЗ!