Saya mengalami kesulitan berkomunikasi dari C++ ke Arduino menggunakan Serial. Saya telah menggunakan metode yang dibahas oleh Salil Kapur di sini: https://salilkapur.wordpress.com/2013/03/08/communicating-with-arduino-using-c/. Saya telah mengadaptasi strategi penulisannya langsung ke file Arduino menggunakan c++. Untuk tugas khusus saya, saya perlu mengirim serangkaian char (yang merupakan perintah untuk diproses oleh Arduino) ke Arduino. Saya sudah membaca karakter dari file di program C++, tetapi karena alasan tertentu, saya tidak mendapatkan apa pun dari monitor Serial Arduino saya ketika saya mengirimkannya. Saya pikir baud rate mungkin menjadi masalahnya, tapi saya tidak yakin. Saya akan memberi Anda kode saya untuk bantuan khusus. Jika seseorang dapat memberi tahu saya cara membuat C++ menulis karakter ke monitor Serial untuk dibaca:
C++:
#include
#include //For sleep()
#include //For FILE
#include //For ifstream
#include //For assert()
#include //For string
using namespace std;
int main()
{
//Setting up the output to the Arduino
FILE *arduino;
arduino = fopen(“/dev/tty.usbmodem1411″,”w”); //Declare the file in write mode
if (arduino == NULL) perror (“Error opening file”);
//Setting up the file input stream
ifstream inFile (“input.txt”);
assert(inFile.is_open());
char input = '\0'; //Starts out as NULL
while (input!= EOF) {
fprintf(arduino,”%c “, input); //Writing to the file
inFile >> input; //Getting the file input to make sure it isn’t the EOF
sleep(1);
}
fclose(arduino);
}
Kode Arduino:
void setup()
{
Serial.begin(9600);
}
void loop()
{
char input;
if(Serial.available()) //If anything is in the Serial
{
input=Serial.read();
Serial.println(input); //Print out any input
}
}
Contoh masukan dari input.txt:
w a d s w d a a s d w
Rangkaian karakter tersebut akan memberikan arah (atas, bawah, kiri, kanan) sesuai WASD.