2016-06-13 9 views
0

私は立ち往生していません。私はArduino NanoからTXとRxピンを介してRPiにそれぞれ送信しようとしています。これまでピンを介してArduinoからRPiへのシリアル通信

この私のコード:

ArduinoのTX:

void setup(){ 
    Serial.begin(9600); 
} 

void loop(){ 
    bProgramLoop = 1 
    while(bProgramLoop == 1){ 
    Serial.write(1); 
    } 
} 

ラズベリーサイド:

import serial 
oSer = serial.Serial("/dev/ttyAMA0",baudrate=9600,timeout=1) 

while True: 
    sSerialInput = oSer.read(1) 
    #sSerialInput = oSer.readline() 
    print sSerialInput 

、ラズベリーPythonスクリプトをArduinoの上にスケッチをロードして起動した後単に何も読まない。

注:

  • Iは、電圧分割器と、いくつかのジャンパ線を介してRPIからのRxピンにアルドゥイーノからのTxピンに接続されています。
  • 私が試してみました
  • "のreadline()" あまりにも、ない運

任意の提案ですか?

答えて

0

私が抱えている問題の解決策を見つけました。私はまだ適切なnoobですが、私はそれを把握することができます限り、Txピンを介してシリアルデータを送信することは問題があります。なぜなら、USBポートとPCの両方に使用されているからです。

したがって、解決策はSoftwareSerialライブラリを使用することです。次のように私は私の2つのコードのスケッチを変更した:

アルドゥイーノ:

#include <SoftwareSerial.h> 
SoftwareSerial mySerial(4,3); // (RX,TX) - Pin Setup for any digital pins you want as Rx or Tx 

void setup(){ 
    Serial.begin(9600); 
    mySerial.begin(57600); // initialize serial communication with serial pin 
} 

void loop(){ 
    bProgramLoop = 1 
    while(bProgramLoop == 1){ 
    mySerial.write("Anything"); 
    } 
} 

ラズベリー:

それは私がRPIへのArduinoからデータを送信することができる午前であるとして
import serial 
oSer = serial.Serial("/dev/ttyAMA0",baudrate=9600,timeout=1) 

while True: 
    sSerialInput = oSer.readline() 
    print sSerialInput 

いつも、私はまだ文字列を整数または浮動小数点に変換する際に問題があります。

詳細については、この投稿を参照してください:Python readline() returns string that wont convert to int or float

関連する問題