나는 이미 비슷한 질문을했습니다. 이것은 직렬 포트를 통해 arduino에 각도를 보내고 arduino가이 각도를 서보 모터에 적용하는 C++의 간단한 프로그램입니다.Mac에서 Xcode와 함께 C++ 및 arduino를 사용하여 직렬 포트 열기
이 C++ 코드
#include <iostream>
#include <unistd.h>
#include <fstream>
using namespace std;
int main()
{
unsigned int angle;
fstream arduino;
cout<<"check-1";
arduino.open("/dev/tty.usbmodem3a21");
cout<<"check-2";
if(arduino)
{
do
{
cout<<"\n\ninsert a number between 0 and 179";
cin>>angle;
arduino<<angle;
}while(angle <= 179);
arduino.close();
}
else
{
cout<<"\n\nERROR!!\n\n";
}
}
이며,이 아두 이노의이다 : 문제가 arduino.open(...)
에서 정지 점이다
#include <Servo.h>
Servo servo;
const int pinServo = 2;
unsigned int angle;
void setup()
{
Serial.begin(9600);
servo.attach(pinServo);
servo.write(0);
}
void loop()
{
if(Serial.available()>0)
{
angle = Serial.read();
if(angle <= 179)
{
servo.write(angle);
}
}
}
, 그리고 난 이유조차 기록하지 않습니다 모른다 "check-1"이고 도구> 직렬 포트에서 arduino 앱에서 선택한 포트 인지도 확신합니다.
arduino.open("/dev/tty.usbmodem3a21",iOS::binary)
으로 작성하거나 잘못된 직렬 포트 이름을 쓰면 "check-1", "check-2"및 "ERROR !!"로 표시되므로 오류가 발생합니다.
:
은 실제 파일 기술자에서 읽으려면 심지어 첫 번째 수표를 인쇄합니까? – frarugi87
이것은 http://stackoverflow.com/questions/11677639/two-way-c-communication-over-serial-connection과 같은 질문입니다 - 당신은 전송 속도를 설정하고 하드웨어 흐름 제어를 해제해야합니다. – TomKeddie