2017-06-05 4 views
-1

から返された値に基づいて処理させるには、set_for_comparisonという値の集合を返します。print set_for_comparisonの場合、set['5','8','32']が得られます。関数openthedoor(set_accepted_list,set_list_ant_id)が何らかの値を返すたびに、LEDを点滅させるためのardunioコードを書きました。私はコードの後半部分ですべての関数を呼び出します。しかし、コードを実行すると、LEDは一度点滅してから停止しますが、関数は値を返しています。助言がありますか?arduinoを、以下のコードでPythonの関数

Python_code:

set_for_comparison = set() 
def openthedoor(set_accepted_list,set_list_ant_id): 
if len(set_accepted_list & set_list_ant_id) >0: 
    print"yes" 
else: 
    print"no" 
set_for_comparison = set(set_accepted_list & set_list_ant_id) 
return set_for_comparison 

私はLEDを点滅するためにset_for_comparisonを使用します。 LEDを点滅させるために返される値を使用するPythonコードを以下に示します。

def code_controlling_gate(set_for_comparison): 
connected = False 
ser = serial.Serial("COM11",9600) #for communicating with the arduino 
while not connected: 
    serin = ser.read() 
    connected = True 
ser.write('1') 
while ser.read() == '1': 
    ser.read() 
ser.close() 

Arduinoのコード

void setup() { 
    Serial.begin(9600); #baud rate 
    pinMode(10,OUTPUT); #output pin to connect arduino 
    Serial.write('1'); 
} 
void loop() { 
    while(Serial.available()<0){ 
    digitalWrite(10,HIGH); 
    delay(50); 
    digitalWrite(10,LOW); 
    delay(50); 
    Serial.read(); 
    } 
} 
+0

あなたはPythonコードをシリアルに一度だけ印刷します。コードと書式を確認してください。また:https://stackoverflow.com/help/mcve – jikuja

+0

@jikuja。あなたはそれを解決する方法を提案できますか? –

+0

書式設定やコードが完了していないことを解決しますか? – jikuja

答えて

0

接続したPythonスクリプトのみのリブートごとに一度trueになりますにおけるので、あなただけの(){...}セットアップに(1)serial.writeを呼び出しているのであなたのarduino。

loop(){..}内でserial.writeを呼び出す必要があります。

+0

私はやってみましたが、一度LEDを点滅させていません。 –

関連する問題