我试图通过串口发送数据到arduino并从arduino接收数据。这是我的C#代码:
private void Fan1Val_ValueChanged(object sender,EventArgs e)
{
如果(已连接)
{
serialPort1.Write(" a" + Convert.ToInt32(Fan1Val.Value)+&#34 ;;");
}
}
它控制PWM风扇,这可能需要30秒才能使风扇加速。
这是Arduino代码:
void loop(){
char data [8] = {};
如果(Serial.available()&0){
Serial.readBytesUntil(&#39 ;;',data,8);
}
RPM =字符串(数据);
for(int i = 0; i< 12; i ++){
if(RPM.startsWith(designations [i])){
RPM.remove(0,1);
analogWrite(pwmChannels [I],RPM.toInt());
}
}
String final;
字符串修饰符;
for(int i = 0; i< fanPulseLength; i ++)
{
pulseDuration [i] = pulseIn(fanPulse [i],LOW,250000);
frequency [i] =(int)(1000000 / pulseDuration [i])/ RPMDivider * 60;
if(frequency [i]> 90000){
修饰符=" 0&#34 ;;
}其他{
modifier = String(frequency [i]);
}
if(i == fanPulseLength-1){
final = final + modifier;
}其他{
final = final + modifier +&#34 ;;&#34 ;;
}
}
Serial.println(最终);
}
我也从arduino获得RPM,并以正确的间隔更新。在C#代码中。所以我知道串行连接就在那里。