Подключение счетчика жидкости к Ардуино
Подключение счетчика жидкости к Ардуино
Добрый день!
Имею большой опыт программирования, но совсем чайник в электронике.
Возникла необходимость подключения счетчика жидкости к Ардуино.(Arduino MEGA 2560)
Счетчик выдает по двум каналам импульсы (т.е. замыкаются герконы) со сдвигом 180 градусов ( диаграмка на рисунке)
Сочинил я схему, в которой использую Ардуиновские 3.3v Землю и два цифровых пина(рисунок)
При такой схеме (возможно и неправильной!) программа реализуема, но получается больно ветвистая.
Нужно отслеживать чтобы не срабатывал второй канал, когда замыкается первый.
Может подскажете как "разделить" каналы схемно?
Если ответит кто, то "разжуйте" чайнику без проффи-жаргона...
(Может схему "подрихтуете"?)
[url][http://img.radiokot.ru/files/90189/medium/473ifjxv6.jpg][/url]
Имею большой опыт программирования, но совсем чайник в электронике.
Возникла необходимость подключения счетчика жидкости к Ардуино.(Arduino MEGA 2560)
Счетчик выдает по двум каналам импульсы (т.е. замыкаются герконы) со сдвигом 180 градусов ( диаграмка на рисунке)
Сочинил я схему, в которой использую Ардуиновские 3.3v Землю и два цифровых пина(рисунок)
При такой схеме (возможно и неправильной!) программа реализуема, но получается больно ветвистая.
Нужно отслеживать чтобы не срабатывал второй канал, когда замыкается первый.
Может подскажете как "разделить" каналы схемно?
Если ответит кто, то "разжуйте" чайнику без проффи-жаргона...
(Может схему "подрихтуете"?)
[url][http://img.radiokot.ru/files/90189/medium/473ifjxv6.jpg][/url]
- Вложения
-
- MySchem.jpg
- (23.78 КБ) 706 скачиваний
- Реклама
- blackx
- Говорящий с текстолитом
- Сообщения: 1518
- Зарегистрирован: Пт дек 28, 2012 21:56:46
- Откуда: St. Petersburg
Re: Подключение счетчика жидкости к Ардуино
ой как нехорошо замыкать +питания на землю
хотя бы так сделайте:

по теме - что в ардуине, что в таких датчиках я не разбираюсь. Можете описать словами алгоритм вычисления потока жидкости?
Если просто нужно считать кол-во импульсов в секунду и следить, чтобы они были в "противофазе", то, по-моему ничего сложного нет вообще. По крайней мере если писать код под чистый avr-libc
хотя бы так сделайте:
по теме - что в ардуине, что в таких датчиках я не разбираюсь. Можете описать словами алгоритм вычисления потока жидкости?
Если просто нужно считать кол-во импульсов в секунду и следить, чтобы они были в "противофазе", то, по-моему ничего сложного нет вообще. По крайней мере если писать код под чистый avr-libc
- Вложения
-
- MySchem.jpg
- (28.22 КБ) 6018 скачиваний
only pure true norwegian blackx 
Re: Подключение счетчика жидкости к Ардуино
Конфигурируеш выводы МК как "вход с включенным подтягивающим резистором" и цепляеш общий вывод кнопок на "корпус", а раздельные к соответствующим лапкам МК.

- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Подключение счетчика жидкости к Ардуино
Так на 6 и 7 ногах будет всегда +3.3 висеть, независимо от состояний кнопокblackx писал(а):хотя бы так сделайте:
![]()
- blackx
- Говорящий с текстолитом
- Сообщения: 1518
- Зарегистрирован: Пт дек 28, 2012 21:56:46
- Откуда: St. Petersburg
Re: Подключение счетчика жидкости к Ардуино
Блин 
делайте с внутренней подтяжкой короче, как BOB51 нарисовал. Проще и дешевле.
делайте с внутренней подтяжкой короче, как BOB51 нарисовал. Проще и дешевле.
only pure true norwegian blackx 
- Реклама
Re: Подключение счетчика жидкости к Ардуино
А как напряжение 3.3v подается в рисунке BOB51? Или вообще не подается? А что измерять?blackx писал(а):Блин
делайте с внутренней подтяжкой короче, как BOB51 нарисовал. Проще и дешевле.
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Подключение счетчика жидкости к Ардуино
Вот, с внутренней подтяжкойansen писал(а):А как напряжение 3.3v подается в рисунке BOB51? Или вообще не подается? А что измерять?
То-же самое, что и на предыдущей схеме, только сопротивления внутри, которые можно подключить программно.
- Вложения
-
- MySchem.jpg
- (68 КБ) 4887 скачиваний
- blackx
- Говорящий с текстолитом
- Сообщения: 1518
- Зарегистрирован: Пт дек 28, 2012 21:56:46
- Откуда: St. Petersburg
Re: Подключение счетчика жидкости к Ардуино
Напряжение подается через внутренние цепи микроконтроллера. Есть такой режим работы портов ввода-вывода - pull-up ("подтяжка"). Когда она включена, ножка МК подключается через сопротивление к + питания. Таким образом, для ввода сигнала остается лишь замыкать ножку на землю, и не нужно ставить никаких дополнительных сопротивлений - после размыкания через подтяжку напряжение опять вернется на уровень + питания.ansen писал(а):А как напряжение 3.3v подается в рисунке BOB51? Или вообще не подается?
Впрочем, Alex правильно перерисовал мой вариант схемы - фактически в таком варианте включения резисторы и есть эта подтяжка. Такой вот альтернативный вариант.
Не знаю как для Arduino, а для обычной АВР-ки вам нужно просто проверять в цикле значения регистров PINXX, где XX - идентификатор вывода GPIO - например D5.
only pure true norwegian blackx 
Re: Подключение счетчика жидкости к Ардуино
Для ардуинофилов этоНапряжение подается через внутренние цепи микроконтроллера. Есть такой режим работы портов ввода-вывода - pull-up ("подтяжка"). Когда она включена, ножка МК подключается через сопротивление к + питания.
Код: Выделить всё
pinMode(pinNumber,INPUT_PULLUP); //ножка на вход, внутри к ножке подключается резистор, другим концом подключенный к питанию
...
if (digitalRead(pinNumber)==LOW)
{
//снаружи пин замкнули на землю
}
А что за датчик? Может, там не совсем 180°? Если два контакта, то скорее всего он работает как инкрементальный энкодер. Вот код для энкодера под Ардуино:
Спойлер
Код: Выделить всё
/******************************************************************************
* Polls encoder and returns +1 for CW, -1 for CCW rotation "click". *
******************************************************************************/
int16_t PollEncoder(void)
{
int16_t dir=0;
uint8_t sA,sB;
static uint8_t prev_state=0;
sA=digitalRead(BTN_ENCA);
sB=digitalRead(BTN_ENCB);
if ((sA==LOW) && (sB==LOW))
{
if (prev_state==4)
{
dir=-1;
}
if (prev_state==2)
{
dir=1;
}
prev_state=1;
}
if ((sA==HIGH) && (sB==LOW))
{
prev_state=2;
}
if ((sA==HIGH) && (sB==HIGH))
{
if (prev_state==2)
{
dir=-1;
}
if (prev_state==4)
{
dir=1;
}
prev_state=3;
}
if ((sA==LOW) && (sB==HIGH))
{
prev_state=4;
}
delay(5);
return dir;
}
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Re: Подключение счетчика жидкости к Ардуино
Спасибо за код! Я приблизительно так и написал.
А счетчик посмотреть можно http://www.gespasa.es/en/pro/fuel_u1/me ... index.html
А скупая инструкция его "родственника" во вложении.
Там никакой информации о герконах! Наверное дребезг контактов есть, а какой?
Какую задержку ставить?
Попробовал с производителем связаться - глухо как в танке! Испанцы! Видать сиеста круглосуточно...
P.S. Добавил и "родную" инструкцию - мало чем отличается
А счетчик посмотреть можно http://www.gespasa.es/en/pro/fuel_u1/me ... index.html
А скупая инструкция его "родственника" во вложении.
Там никакой информации о герконах! Наверное дребезг контактов есть, а какой?
Какую задержку ставить?
Попробовал с производителем связаться - глухо как в танке! Испанцы! Видать сиеста круглосуточно...
P.S. Добавил и "родную" инструкцию - мало чем отличается
- Вложения
-
- MGI110 M203b.pdf
- (166.73 КБ) 877 скачиваний
-
- MGI250 MGI400 v4 M89d.pdf
- (583.56 КБ) 533 скачивания
Re: Подключение счетчика жидкости к Ардуино
Гм. Вообще, если Вам не надо определять направление потока жидкости, можно просто считать количество импульсов за секунду, и все. Или все же надо именно с направлением?
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Re: Подключение счетчика жидкости к Ардуино
А если дребезг контактов есть, то можно лишних импульсов насчитать. Наверное потому в спецификациях герконов и указывают время замыкания.
Re: Подключение счетчика жидкости к Ардуино
Подождите 5 мс после замыкания, и будет Вам счастье.А если дребезг контактов есть, то можно лишних импульсов насчитать.
Разница между теорией и практикой на практике гораздо больше, чем в теории.


