2016-05-13 2 views
2

Ich versuche, eine Nummer vom Raspberry Pi zu einem Arduino Uno über USB angeschlossen zu senden. Ich folgte this Tutorial, das ziemlich einfach ist.Wie senden Nachrichten von Raspberry Pi zu Arduino über USB-Kabel

Ich kann den Anschluss finden, mit dem der Arduino verbunden ist, und ich habe den Code geschrieben, so dass, wenn der Arduino etwas über den seriellen Anschluss (irgendetwas) empfängt, blinkt die Standard-LED ein paar Mal. Das Problem ist, dass es nie etwas erhält.

Wenn ich das Python-Skript von der Himbeere laufen, blinkt die LED auf dem Arduino zufällig (wie es gerade an das Netzteil angeschlossen wurde), aber dann stoppt es und nichts passiert.

Der Code ist dies:

void setup() { 
    Serial.begin(9600); 
    pinMode(13, OUTPUT); 
} 

void loop() { 
if (Serial.available() > 0) { 
    blinkLED(3); 
    } 
} 

void blinkLED(int count) { 
    for (int i=0; i< count; i++) { 
    digitalWrite(13, HIGH); 
    delay(1000); 
    digitalWrite(13, LOW); 
    delay(1000); 
    } 
} 

Während der Python-Code ist:

import serial 
ser = serial.Serial('/dev/ttyACM0', 9600) 
ser.write('3') 

Was mache ich falsch?

+0

Welche 'default' LED blinkt: Leistung, Rx, Tx, oder 13. Wenn Sie einfach den Arduino stecken funktioniert die Power-LED leuchtet? –

+0

Entschuldigung, standardmäßig habe ich LED 13 gemeint. Aber ich habe herausgefunden, was ich falsch gemacht habe, ich schreibe unten den anwser – Beriol

Antwort

1

Ich habe das Problem herausgefunden. Grundsätzlich, wenn ich den Port von Python öffnete das Arduino selbst zurückgesetzt, so dass die Sachen, die ich nach dem Öffnen des Ports gesendet wurde von der Arduino verworfen wurde (da es noch zurückgesetzt wurde).

Ich löste für jetzt, indem ich einfach einen Schlaf hinzufüge, nachdem ich den Hafen öffne, so währenddessen Arduino das Zurücksetzen beendet.

Der Python-Code sieht nun wie folgt aus:

import serial 
import time 
ser = serial.Serial('/dev/ttyACM0', 9600) 
time.sleep(5) 
ser.write('3') 
Verwandte Themen