欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
arduino串口輸出PWM波控制電機轉速
[打印本頁]
作者:
electmotor_fish
時間:
2017-8-10 21:30
標題:
arduino串口輸出PWM波控制電機轉速
通過串口輸出PWM信號,也就是脈沖寬度調制。改變占空比,可以近似輸出不同的電壓,從而對電機進行調速。
所有資料51hei提供下載:
串口_調_PWM.rar
(4.84 KB, 下載次數: 54)
2017-8-10 21:28 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
arduino源程序如下:
// 串口管理單元
// Alita 2016-10-13 嘗試簡單的數值命令--實用版
// Alita 2016-10-15 v2:支持負數
int GetCMD()
{
// Read serial input:
while (Serial.available() > 0)
{
// 讀取一個字符
int inChar = Serial.read();
// Alita 2016-10-15 負數符號判定
if(inChar == 45 and inString.length() == 0)
{
// 負號條件必須出現在字符串的開頭(當前先這樣處理)
inString += (char)inChar;
}
// 判定是不是數值字符(0~9)
// [注意]該判定方法組會導致只提取字符串中的所有數字并將其構成一個數字字符序列
if (isDigit(inChar)) {
// 添加到字符串中(byte轉換為char類型)
inString += (char)inChar;
}
// 換行符表示結束--也可以使用特殊字符但是需要小心處理
if (inChar == '\n')
{
// 有效性判定
if(inString.length() <=0)
{
// 無效數據
return 0;
}
// 將字符轉換為數值
int intCMD = inString.toInt();
if(intCMD == -10)
{
Serial.println("right");
}
Serial.println(intCMD);
// 清空輸入
inString = "";
// 反饋結果
return intCMD;
}
}
// 無效結果
return 0;
}
//對串口接受到的數據進行有效性判定
void Test_SerialPort_CMD1()
{
int intCMDValue = 0;
intCMDValue = GetCMD();
if(intCMDValue < -255 or intCMDValue > 255)
{
// 無效命令
Serial.println("[Error]Err Speed CMD,Range exception ,not between[0,255]");
return;
}
else if(intCMDValue == 0)
{
return;
}
else
{
analogWrite(13, intCMDValue);
}
}
復制代碼
作者:
白魚
時間:
2018-12-8 13:47
下載看看好像合用
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1