接口 C++ 以使用 Arduino 控制电机步进器



我尝试通过带有可视C++滑块的arduino uno板来控制电机步进器。

但是舵机根本没有移动。

这里是PC端的程序:

void CENVSConfigDlg::OnBnClickedButton1() 
{ 
 SetTimer(cTimer1,80,NULL); 
  }
 void CENVSConfigDlg::OnTimer(UINT_PTR ID)
 { 
   if(ID==cTimer1){ 
    DWORD nbytes;
    char buf[5]; 
    sprintf(buf, "%d n", val_test);
     /* Open serial port. */ 
       if(!WriteFile( hnd_serial, (void*)buf, 5, &nbytes, NULL )){MessageBox(L"Write Com Port fail!");return;} 
 }

和Arduino中的程序:

 #include <Servo.h> 
 Servo servoMain;
int index=0; 
String inputString;
void setup() 
{ 
Serial.begin(9600);
servoMain.attach(9);
}
void loop() 
{ 
  int data;
while (Serial.available()) 
{ 
char inChar = (char)Serial.read(); 
if (inChar == 'n' || inChar == 'z') 
{
  data=stringToInt(inputString); 
Serial.println(data); //
inputString=""; 
servoMain.write(data); //tambahannya
delay(50);
break; 
} 
if (inChar != 0)
{ 
inputString += inChar;
} 
} 
}
int stringToInt(String s)
{ 
char char_string[s.length()+1]; 
 s.toCharArray(char_string, s.length()+1); 
 return atoi(char_string);
 } 

我认为PC正在发送数据,但是为什么电机不工作? 知道吗?

首先,串行链接是否有效? 由于硬件和软件原因,RS232 链路无法工作的方式数量是传奇。 除非你能证明硬件可以传输数据,否则查看你的专用软件是没有意义的。 如果您有示波器,请使用它来查看是否有任何内容正在传输,然后检查它是否到达 arduino 输入上的正确引脚。 如果您无法访问示波器,可以使用一个小LED和一个4.7K电阻来指示线路上有数据 - 它会随着数据闪烁。

最新更新