Подключение цифрового датчика к аналоговому входу.

rapidshe
Offline
Зарегистрирован: 31.12.2015

Добрый день! помогите пожалуйста)

задача такая: считывать состояние датчиков. всё бы ничего, но попались датчики которые в режиме ожидания выдают 1, в при срабатывании 0.  получается аналоговые входы этих датчиков надо подтягивать к 5в через резистор 10ком?

сигналку(построенное устройство) увезу на дачу и неохото там возиться с паяльником в случаях, когда надо на место датчика, выдающего 0 при срабатывании, поставить датчик выдающего 5в при срабатывании.

сейчас 6 входов притянул к земле сопротивлениями 10ком

для начала состряпал простенький код для проверки. в монитор прилетает всегда LOW и в случаях когда подаю 5в на вход прилетает HIGH.

А как сделать, чтобы достаточно было только в программе переконфигурировать уровень входа, на которые мне будет приходить смска? может надо одновременно и + и - притянуть через резисторы.....???

01void setup() {
02Serial.begin(9600);  //скорость порта
03pinMode(16,INPUT);
04pinMode(17,INPUT);
05pinMode(18,INPUT);
06pinMode(19,INPUT);
07pinMode(20,INPUT);
08pinMode(21,INPUT);
09}
10 
11void loop() {
12 
13for (int i = 0; i < 6; i++) {
14     if (digitalRead(16+i) == HIGH)
15     {
16     Serial.print(i+1); Serial.println("HIGH");
17      }
18      if (digitalRead(16+i) == LOW)
19      {
20      Serial.print(i+1); Serial.println("LOW");
21      }
22   }
23}

 

James
Offline
Зарегистрирован: 26.02.2016

стоп. если это сигналка, то логично, что в случае нормы "1". иначе если обрыв, то как мы узнаем? аналаговые входы? это питание датчиков?, вы определитесь, что с него "выходит" и что "входит". а если из него "выходит" сигнал 5 в, то програмно на ноге будет 1, а если из датчика будет "выходить" 0, то на ноге будет LOW

rapidshe
Offline
Зарегистрирован: 31.12.2015

это универсальная сигналка-оповещатель)

будут датчики протечки(тревожный сигнал - 5в), датчик дыма (тревожный - 0в) и прочие.

на аналоговые пины вешаю потомучто цифровые заняты. точнее остались 11,12,13 но их оставил свободными на случай очередного слета загрузчика...

 

по какому сигналу (0в или 5в) слать смску - это будет программироваться через смску.

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

Если датчики выдают активный сигнал в виде напряжения, т.е. без нагрузки на выходе датчика при его рабатывании меняется напряжение с 0 В на 5 В, или, наоборот, с 5 В на 0 В, то при длине проводов от датчика до Ардуино до единиц метров подтягивающие резисторы не нужны. Если провода длиннее, то входы уже нужно притянуть, к общему проводу - чуть лучше. Если провода "очень длинные", может потребоваться переход на отронную развязку для подавления помех.
Если на выходе датчика стоит герконовое или электромагнитное реле, то подключать его нужно также, как тактовую кнопку. Об этом на форуме горы информации.
Если на выходе датчика схема с "открытым коллектором" ("открытым стоком" в случае с полевым транзистором), то входы Ардуино обязательно нужно подтягивать к плюсу питания резистором 5 - 10 кОм.
Одновременная подтяжка и к плюсу, и к общему проводу в данном случае может только навредить.

nikolaki
nikolaki аватар
Offline
Зарегистрирован: 14.02.2013

Ув. Тс ! Покажите датчики ! Или их имя. Аналоговые  датчики , выдающие  или "1" ,или "0" есть очень не аналоговые датчиги..Если у них не обрыв или не замыкание...

Если аналоговые- работаем с 0 -1023, если дискретные - то или "0", или"1",т.е. -"выкл" или"вкл". Это как у выключателя света , два состаяния- "света есть" или "света не все ест"