Дверные контакты

ne4eHbKa.Vbg
Offline
Зарегистрирован: 09.11.2016

Привет всем! Недавно начал познавать ардуино и начал с самого простейшего: имитация дверных контактов...

Идея такая: первый провод от GND и второй от Digital Pin №9(~). При контакте проводов программа пишет "Door close", при разрыве "Door open".

Вот код:

int doorCont1 = 9;   
int val1 = 0;         
void setup() {
Serial.begin(9600);
}

void loop() {
val1=digitalRead(doorCont1);
if (val1==0){
  Serial.println("Door close");
}else Serial.println ("Door open");
delay(1000);
}

Проблема: я вообще не знаю в чём проблема... Такое ощущение, что контролле живёт своей жизнью. При пуске в мониторе порта всё показывает верно при размыкании и соединениее проводов. Но буквально через 20 секунд показания начинают меняться и программа вообще не реагирует на положение проводов. (я даже их вытаскивал из гнёзд, программа писала то close, то open...

Так в чём же ошибка?)

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

Вы открыли секретный код, обнаруживающий потусторонних сущностей ! :)

PS: погуглите про PULLUP

axill
Offline
Зарегистрирован: 05.09.2011

Добро пожаловать

во первых пин9 надо или подтянуть в +5в резистором 1-4.7ком или включить внутреннюю подтяжку командой digitalWrite(9, HIGH)

Если провода будут достаточно длинные то лучше резистором, меньше помех будет, еще лучше между пин9 и gnd поставить конденсатор 0.1мкф

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

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

ne4eHbKa.Vbg, представьте себе, что дверные контакты - это кнопка, по сути ведь так оно и есть ? А дальше почитайте здесь http://arduino.ru/forum/programmirovanie/rabota-s-knopkami-v-pomoshch-novichku начало темы и всё станет Вам ясно.

ne4eHbKa.Vbg
Offline
Зарегистрирован: 09.11.2016

Уважаемый, внутренняя подтяжка помогла!) щас буду читать что это такое (ткнул наобум в void stup).

А про дребезг контактов слышал, но не думал что здесь она проявится... Спасибо огромное!!!

ne4eHbKa.Vbg
Offline
Зарегистрирован: 09.11.2016

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

axill
Offline
Зарегистрирован: 05.09.2011

Дерзайте.

Дребезг есть везде где есть механическая составляющая

 

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

axill пишет:

Дребезг есть везде где есть механическая составляющая

Если Клапауций не запретит.

Клапауций 234
Offline
Зарегистрирован: 24.10.2016

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

axill пишет:

Дребезг есть везде где есть механическая составляющая

Если Клапауций не запретит.

дверной дребезг я разрешил

arduino328
Offline
Зарегистрирован: 01.09.2016

Клапауций 234 пишет:

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

axill пишет:

Дребезг есть везде где есть механическая составляющая

Если Клапауций не запретит.

дверной дребезг я разрешил

Открываешь дверь, а там Клапауций с сертификатом на дребезг двери :)