Измерение ширины импульса.

maximooos
Offline
Зарегистрирован: 15.09.2016

Доброго всем времени!

Прошу у вас помощи.

В кратце:

Есть некое охранное устройство имеющее панель светодиодной индикации состояний. Мне нужно  регистрировать Загорание одного из диодов и, в зависимости от его состояния, включать\выключать реле для управления другим устройством. Проблема в том, что идикация на диоде не статичная. Диод управляется сдвиговым регистром. Пробовал мерять ширину импульса через pulseIn. Не зависимо от состояния индикации (свечение или не всечение диода) получаю одни и теже значения с очень маленькой погрешностью. Зацепиться не за что. Пробовал мерять частоту все тем же pulseIn. Получаю те же стабильные показания 130-144Гц не зависимо от индикации.

Не прошу готовый код. Подскажите способ измерения ширины импульса.

Всем спасибо!

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Вы его поди неправильно измеряете. Можете показать скечт и главное - схему - а именно что именно Вы заводите на пин для измерения?

В принципе, измерялка ширины импульса с точность до 0.1 микросекунды есть вот здесь, но судя по тому. что Вы описали, она Вам не поможет. Очень сильно кажется. что проблема у Вас не в точности измерения, а в его идее.

Итак:

1. Схема
2. Скетч
3. Как можно больше информации об измеряемом объекте (с общим чем? какая микросхема делает динамическую индикацию и т.п.), а также есть ли к нему доступ подпаяться.

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Фоторезистор поставить напротив диода? Он тормозной, на мигалку не будет реагировать.

maximooos
Offline
Зарегистрирован: 15.09.2016
Htime=pulseIn (3, HIGH);
Ltime=pulseIn (3, LOW);
Ttime=Htime+Ltime;
frequency=1000000/Ttime;
Serial.println(frequency);

так мерял частоту

duration = pulseIn(pin,HIGH);
Serial.println(duration);

а так ширину импульса.

maximooos
Offline
Зарегистрирован: 15.09.2016

и схема по быстрому нарисованая.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

maximooos пишет:

Htime=pulseIn (3, HIGH);
Ltime=pulseIn (3, LOW);
Ttime=Htime+Ltime;
frequency=1000000/Ttime;
Serial.println(frequency);

так мерял частоту

duration = pulseIn(pin,HIGH);
Serial.println(duration);

а так ширину импульса.

Круто .. ваще-то у 16-и разрядных таймеров дуньки есть специальный "режим захвата", как раз для точного измерения ширины импульса .. не, по прерываниям или опорос в цикле лучше чем специально созданное разработчиком? :)

sadman41
Offline
Зарегистрирован: 19.10.2016

Главного не написали - скоко составляет минимальная длительность выкл и вкл (если представить, что не мигает сдвиговым).

maximooos
Offline
Зарегистрирован: 15.09.2016

вы иемеете ввиду время видимого свечения и не свечения диода?

 

maximooos
Offline
Зарегистрирован: 15.09.2016

Не понял что вы имеете в виду

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

maximooos, со схемой вы кажется слишком поторопились. При каких условиях потечёт ток в фотодиодной части оптрона?

maximooos
Offline
Зарегистрирован: 15.09.2016

Судя по даташиту там фототранзистор. Открывается он когда на входе оптрона появится логическая единица, т.е. 3.3v от которых питается регистр сдвига

MaksVV
Offline
Зарегистрирован: 06.08.2015

Последовательно светодиоду оптопары лучше поставить резистор 150...200 Ом. И нарисуйте внутреннюю схему оптрона. Может неправильно подключили. И лучше чтобы транзистор оптрона замыкал цифровой пин ардуино на GND. В этом случае можно использовать внутреннюю подтяжку к питанию цифрового пина. 

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

maximooos пишет:
Судя по даташиту там фототранзистор. Открывается он когда на входе оптрона появится логическая единица, т.е. 3.3v от которых питается регистр сдвига

Ну хоть посмотрите на типовое включение оптрона  что ли, коли ничего подозрительным не показалось )

maximooos
Offline
Зарегистрирован: 15.09.2016

Я так понимаю, вам не нравится отсутствие подтягивающего резистора на выходе оптрона/входе ардуины?
Не думал что такие азы обязательно всем указывать. Хотя да, наверное я сделал не правильно не указав его в схеме. Признаю косяк.

Не могу с телефона картинку со схемой вставить.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

maximooos, ну вставьте позже. Понимате, в электронике всё важно. Мы же не в курсе уровня ваших знаний, соответссно всё воспринимаем буквально. А буквально по схеме  видно то, что светодиоды быстро  сдохнут, а на пине 3 ардуины никогда не появится лог. "0", потому что не потекёт ток через высокоимпендансный вход МК.

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

maximooos
Offline
Зарегистрирован: 15.09.2016

Вставлю завтра обязательно.
Характеристики озвучены были.
ШИМ на выходе регистра сдвига.
Частота ~140Гц.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

maximooos, ну про 145 Герц -это то, что вы измерили,  а не данные с осциллографа или лог.анализатора, тем более всё это странно видеть на сдвиговом регистре. А значит основания верить этим цифрам пока нет. Кстати если есть возможность снять сигнал осциллографом -то лучше бы это сделать.

Logik
Offline
Зарегистрирован: 05.08.2014

А чего не верить. Там ШИМ частотой 145Гц, а свечение от не свечения отличается скавжностю. Её и мерить. Вот ТС посмотрит не Ttime=Htime+Ltime;, а по отдельности и вопрос закроется.

maximooos
Offline
Зарегистрирован: 15.09.2016

ТС смотрел по отдельности. В стартпосте есть пример того как я это делал. Никаких отличий достаточных для привязки, во время свечения или не свечения я не вижу

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Если 145 герц то ссылка на #1 Вам поможет, даже пин менять не придётся )))

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ЕвгенийП пишет:

 

В принципе, измерялка ширины импульса с точность до 0.1 микросекунды есть вот здесь, но судя по тому. что Вы описали, она Вам не поможет. Очень сильно кажется. что проблема у Вас не в точности измерения, а в его идее.

вот видите Евгений Петрович, актуально, не одному мне точная мерялка потребовалась )))

__Alexander
Offline
Зарегистрирован: 24.10.2012

И я сомневаюсь что на 595, к одному выходу которого подключен светодиод, ШИМ. Нахер он там надо? 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

ua6em пишет:

вот видите Евгений Петрович, актуально, не одному мне точная мерялка потребовалась )))

ну, ему-то как раз неактуально.