Выход изменился при отпускании кнопки в Python - PullRequest
0 голосов
/ 21 июня 2019

Я разрабатываю алгоритм, который сигнал будет отправлять в Firebase с помощью Python. Поток, когда я нажимаю кнопку, он будет обнаружен и будет считаться как 1 раз, когда он отпустит.

Код Python, который я пробую, выглядит так

AS = serial.Serial('COM8',9600)
url = 'https://xxx.firebaseio.com/'
AoS = 40
FB = firebase.FirebaseApplication(url, None)

result = FB.patch('/ParkingSeat/',{'Amount of the seats': str(AoS) + '/40'})
while (1==1):
    if(AS.inWaiting()>0):
        msg = AS.readline().strip().decode()
        if (msg == '1'):
            print ("Waiting for release")
            print (msg)
            if (AoS>0) and (msg == '0'):
                AoS-=1
                print ("The Signal now is " + str(AoS))
                result = FB.patch('/ParkingSeat/',{'Amount of the seats': str(AoS) + '/40'})
        if (msg == '2'):
            print ("Waiting for release")
            print (msg)
            if (AoS<40) and (msg == '0'):
                AoS+=1
                print ("The Signal now is " + str(AoS))
                result = FB.patch('/ParkingSeat/',{'Amount of the seats': str(AoS) + '/40'})
        print(msg)

и код Arduino, который я пробую, выглядит так

const int BUTTON1 = 6;
const int BUTTON2 = 7;
String i, j, x;

int ButtonState = 0;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(BUTTON1, INPUT_PULLUP);
  pinMode(BUTTON2, INPUT_PULLUP);
}

void loop() {
  if (digitalRead(BUTTON1) == LOW) {
    delay(500);
    i = "1";
    Serial.println(i);
  } 
  else if (digitalRead(BUTTON2) == LOW) {
    delay(500);
    j = "2";
    Serial.println(j);
  } 
  else {
    delay(500);
    x = "0";
    Serial.println(x);
  }
}

Я также соединяю python с arduino. И arduino продолжает посылать сигнал питону как 0. Когда нажмете button1 или button2, он отправит 1 или 2.

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

Но теперь мой код может принимать сигнал только при нажатии кнопки 1 или кнопки 2. Когда я продолжаю нажимать кнопку, он будет продолжать посылать сигнал, но я не хочу. Как я могу написать как сигнал отправит сразу после отпускания кнопки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...