Buttons

Coordinator
Aug 13, 2010 at 10:24 AM

Вы правы - "висеть в воздухе" вывод микроконтроллера не должен, и если Вам нужно подцепить к микроконтроллеру кнопку или выключатель, то в разомкнутом состоянии нога микроконтроллера должна через резистор быть соединена например с +5, а в замкнутом - с землей. Либо наоборот. Оба варианта можно изобразить вот так:
http://freeduino.ru/images_forum/pull_up_down.gif
Первый вариант предпочтительнее, т.к. подтягивающие к +5В резисторы уже есть внутри микроконтроллера - их нужно только программно включить. Ваш выключатель будет либо соединять вывод микроконтроллера с землей, либо разъединять, и тогда он "притянется" резистором к +5.
После того, как вывод установлен на "вход" чтобы включить на нем подтягивающий резистор нужно "записать" в него 1.
программа будет примерно такой:

void setup() {
  pinMode(13, OUTPUT);   //13я нога - выход
  pinMode(3, INPUT);     //3я - вход
  digitalWrite(3, HIGH); //включаем подтягивающий резистор
}
void loop() {
  digitalWrite(13, digitalRead(3));
}

Ну, и при работе с кнопками и выключателями нужно бороться с дребезгом контактов. На www.arduino.cc даже есть несколько библиотек для этой цели. Появятся вопросы - пишите.