2016-08-04 8 views
1

Мне нужно связаться с малиной pi с ардуино по последовательной связи. И общаться, я использую те же скорости передачи данных в обе стороны, но до сих пор я не смог этого сделать ..Малина pi - arduino Последовательная связь

это мой Arduino код

int ledPinSpeedOne = 11; 
int ledPinSpeedTwo = 12; 
int ledPinSpeedThree = 13; 

char inbyte; 

void setup() { 

    Serial.begin(9600); 

    pinMode(ledPinSpeedOne, OUTPUT); 
    pinMode(ledPinSpeedTwo, OUTPUT); 
    pinMode(ledPinSpeedThree, OUTPUT); 

    digitalWrite(ledPinSpeedOne, LOW); 
    digitalWrite(ledPinSpeedTwo, LOW); 
    digitalWrite(ledPinSpeedThree, LOW); 
} 

void loop() 
{ 

    if (Serial.available() > 0) { 
    delay(100); 
    inbyte=Serial.read(); 
    if (inbyte == '3') functionSpeedTwo(); 
    } 
} 

//functionSpeedTwo 
void functionSpeedTwo() { 
    digitalWrite(ledPinSpeedOne, LOW); 
    digitalWrite(ledPinSpeedTwo, HIGH); 
    digitalWrite(ledPinSpeedThree, LOW); 
} 

И вот что я имею в малина pi side,

#!/usr/bin/python 
import serial 
ser = serial.Serial('/dev/ttyACM0',9600) 
ser.write('3') 

Эта вещь не работает, но иногда она работает. Может ли кто-нибудь помочь мне решить эту проблему.

+0

Посмотрите, сбрасывается ли arduino при запуске скрипта python. Если это так, установите состояние контрольной линии перед открытием порта с помощью pyserial – handle

+0

, что вы подразумеваете под «состоянием контрольной линии» ??? –

+0

Сбрасывает ли ваш Arduino при запуске скрипта? – handle

ответ

0

Я решил свою проблему. Было время, чтобы получить доступ к значению, мне просто нужно было добавить цикл while, чтобы получить значение. В моем коде arduino я добавил задержку в строке № 24.