21 февраля 2013-го

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

Пульт управления космическим кораблем

21 февраля 2013, 15:19

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

Идея такая: 

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

Сначала рисуем схему:

Затем собираем на макетной плате:

Пишем программу:

В этом примере мы впервые работает с сенсорами. Сенсор в нашем случае — это кнопка, на нажатие которой, надо реагировать.

Вот текст программы:

int swich = 2;//кнопка
int green = 4;
int red1 = 7;
int red2 = 12;
// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pin as an output.
  pinMode(green, OUTPUT);
  pinMode(swich, INPUT);//натраиваем сенсор
  pinMode(red1, OUTPUT);
  pinMode(red2, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
  int swichState = 0;
  swichState = digitalRead(swich);//считываем состояние кнопки
  if (swichState==LOW){ //если кнопка не нажата
    digitalWrite(green,HIGH);
    digitalWrite(red1,LOW);
    digitalWrite(red2, LOW);
  }
  else {//если кнопка нажата
    for(int i=0;i<=2;i++){
      digitalWrite(green,LOW);
      digitalWrite(red2,HIGH);
      digitalWrite(red1,LOW);
      delay(250);
      digitalWrite(red2, LOW);
      digitalWrite(red1, HIGH);
      delay (250);
    }
  }
}

Пульт в действии: