Хочу сделать мини сейф. Суть в следующем надо использовать 2 кнопки 2 светодиода ну и сам запирающий механизм. Одна на кнопка используется как датчик открытия/закрытия и после закрытие с задержкой 2 секунды доложен срабатывать замок. Вторая служит для открытия. Ну и светодиоды должны показывать состояние открытия/закрытия. Проблема в следующем не знаю как записать 2 кнопки в loope как их записать?
Я написал такой простой код который будит в моём сейфе показывать открыта или закрыта, но мне надо добавить ещё одну кнопку для открытия сейфа, но как это сделать не знаю
int led = 13; int led1 = 11; const int sensorbutton = A0; const int openbutton = A2; int buttonState = 0; // the setup routine runs once when you press reset: void setup() { // initialize the digital pin as an output. pinMode(led, OUTPUT); pinMode(led1, OUTPUT); pinMode(sensorbutton, INPUT); pinMode(openbutton, INPUT); for(int i = 0; i < 8; i++) { digitalWrite(led, (i & 0x1) != 0x1); delay(100); } } // the loop routine runs over and over again forever: void loop() { buttonState = digitalRead(sensorbutton); // check if the pushbutton is pressed. // if it is, the buttonState is HIGH: if (buttonState == HIGH) { delay(2000); digitalWrite(led1, HIGH); } else { // turn LED off: digitalWrite(led, HIGH); digitalWrite(led1, LOW); digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); } }
Код (C): #define PIN_LED_OPENED 13 #define PIN_LED_CLOSED 11 #define PIN_BTN_SENSE_LOCK A0 #define PIN_BTN_OPEN_LOCK A2 bool lock_state = false; void setup() { pinMode(PIN_LED_OPENED, OUTPUT); pinMode(PIN_LED_CLOSED, OUTPUT); pinMode(PIN_BTN_SENSE_LOCK, INPUT); pinMode(PIN_BTN_TOGGLE_LOCK, INPUT); for(byte i = 0; i < 8; i++) { digitalWrite(PIN_LED_OPENED, (i & 0x1)); digitalWrite(PIN_LED_CLOSED, !(i & 0x1)); delay(100); } } void loop() { digitalWrite(PIN_LED_OPENED, !lock_state); digitalWrite(PIN_LED_CLOSED, lock_state); if (digitalRead(PIN_BTN_SENSE_LOCK)) { delay(2000); lock_state = true; } if (digitalRead(PIN_BTN_OPEN_LOCK) { lock_state = false; } delay(100); // run locking/unlocking mechanics // }
Код (C): int ledPin1 = 13; // сетодиод1 int ledPin2 = 12; // сетодиод2 int btnPin1 = 11; // кнопка1 int btnPin2 = 10; // кнопка2 val,val2=0; void setup() { pinMode(ledPin1, OUTPUT); // это выход - светодиод1 pinMode(ledPin2, OUTPUT); // это выход - светодиод2 pinMode(btnPin1, INPUT); // а это вход - кнопка1 pinMode(btnPin2, INPUT); // а это вход - кнопка2 } void loop() { val = digitalRead(btnPin1); // узнаём состояние кнопки1 val2 = digitalRead(btnPin2); // узнаём состояние кнопки2 if(val==HIGH) // кнопка1 нажата { digitalWrite(ledPin1, HIGH); // зажигаем светодиод } else // кнопка1 не нажата { digitalWrite(ledPin1, LOW); // гасим светодиод1 } if(val2==HIGH) // кнопка2 нажата { digitalWrite(ledPin2, HIGH); // зажигаем светодиод } else // кнопка2 не нажата { digitalWrite(ledPin2, LOW); // гасим светодиод1 } delay(100); }
В вашем примере ничего не сказано о том, что означают "кнопка1", "кнопка2", "светодиод1" и "светодиод2", поэтому переложить на них логику работы сейфа из первого поста невозможно.