Наводки, длина кабеля :(

kast2k
Offline
Зарегистрирован: 16.01.2015

Добрый день!

Для возможного будущего проекта решил поставить следующий эксперимент.

Дано:

1. Помещение 10*5 метров

2. 6 стендов. на каждом стенде по 4 кнопки.

3. Каждый стенд подключен к ардуино кабелем "витая пара" не экранированным. Длины кабелей варьируются в диапазоне 10-20 метров

4. Каждая кнопка на стенде висит на своей паре (т.е. в 1 кабель собирается сигнал с 4 кнопок стенда)

к кнопке подведены соответственно цветной\белый и цветной кабели.

5. На ардуино все 6 кабелей "витая пара" раздеты следующим образом:

все цветные\белые провода кабеля обжаты единой клеммой, все цветные провода также обжаты единой клеммой.

клемма цветного\белого кабеля подключается к GND на Ардуино, а клемма цветных проводов к соответствующему аналоговому входу платы.

Задача: при нажатии любой кнопки на любом стенде выдавать через Arduino Uno в RS 232 цифру, соответствующую номеру аналогового входа на плате.

Итак, простейший скетч написан

void setup() {
  Serial.begin(9600);
}

void loop() {

  int sensorValue0 = analogRead(A0);
  int sensorValue1 = analogRead(A1);
  int sensorValue2 = analogRead(A2);
  int sensorValue3 = analogRead(A3);
  int sensorValue4 = analogRead(A4);
  int sensorValue5 = analogRead(A5);
  
  if (sensorValue0==0)
  {  
  Serial.print(0);
  }
  if (sensorValue1==0)
  {  
  Serial.print(1);
  }
  if (sensorValue2==0)
  {
  Serial.print(2);
  }
  if (sensorValue3==0)
  {  
  Serial.print(3);
  }
  if (sensorValue4==0)
  {  
  Serial.print(4);
  }
  Serial.println(99);
  delay(100);        
}

кабели подведены. Плата подключена к USB компа. "Протяжка, продувка...", фэйл :(

В порт валится поток мусора :(

т.е. наблюдаю, например "01499", "2499","099"

Если отключаю провода от аналоговый входов (всех!), то получаю только "99", т.е. как и должно быть.

Но как только подключаю хоть 1 из проводов - снова мусор в эфире.

В случае если просто скрепкой замыкаю контакты аналогового входа и GND, то все ОК ("099", "499" и т.д.)

Коллеги, подскажите, пожалуйста, как же правильно реализовать мою задачу? Что я делаю не так? Что я упустил?

Спасибо.

Araris
Offline
Зарегистрирован: 09.11.2012

Схему бы...

В описании же я не нашел ни слова о подтяжке входов к плюсу/земле, это так ?

P.S. Пожалуйста, выложите схему.

kast2k
Offline
Зарегистрирован: 16.01.2015

Если на скорую руку, то как-то так

Araris
Offline
Зарегистрирован: 09.11.2012

Спасибо, теперь все понятно. Нет подтяжки. Читайте http://arduino.ru/forum/programmirovanie/rabota-s-knopkami-v-pomoshch-novichku, там уже в самом начале сказано 

"Дело в том, что пин МК (в режиме входа) должен иметь заранее известное состояние (1или 0).
В «подвешенном» состоянии будет собирать внешние наводки (статические, электрические и электромагнитные излучения).
Чтобы привести пин в заранее известное состояние и используют подтягивающие резисторы.
"

ну и далее.

Datak
Offline
Зарегистрирован: 09.10.2014

И ещё, я не понял - при такой схеме, какой смысл читать аналоговое значение?

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Кондёрчики подвесьте, пляска прекратится

А вообще какой сакральный смысл кнопки и аналогового чтения её??????????????

kast2k
Offline
Зарегистрирован: 16.01.2015

Araris,

Огромное спасибо!

Поставил подтяжки и все заработало.