找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 15690|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

通過按鈕控制電機啟停和正反轉(zhuǎn)的Arduino程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:338510 發(fā)表于 2018-5-26 08:44 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
Arduino程序:

//任務(wù):通過按鈕控制電機啟停和正反轉(zhuǎn),通過電位計調(diào)節(jié)電機轉(zhuǎn)速。
int K1=5;  //把K1(正轉(zhuǎn))按鈕連在數(shù)字端口5
int K2=6;  //把K2(反轉(zhuǎn))按鈕連在數(shù)字端口6
int K3=7;  //把K3(停止)按鈕連在數(shù)字端口7
int potpin = 3; // 把電位計連在模擬端口3
int A=2;   //數(shù)字端口2、3控制電機啟停和轉(zhuǎn)向
int B=3;  
int PWMpin = 9; // 數(shù)字端口9輸出PWM信號,控制電機轉(zhuǎn)速
//初始化
void setup()
{
   pinMode(K1,INPUT);//把數(shù)字端口5、6、7設(shè)置輸入模式
   pinMode(K2,INPUT);
   pinMode(K2,INPUT);
   pinMode(A,OUTPUT);//把數(shù)字端口2、3設(shè)置輸入模式
   pinMode(B,OUTPUT);
}
//主程序
void loop()
{
   //如果按下K1(正轉(zhuǎn))按鈕
  if(digitalRead(K1)==LOW)
  {
    //電機正轉(zhuǎn)
    digitalWrite(A,HIGH);
    digitalWrite(B,LOW);
  }
  //如果按下K2(反轉(zhuǎn))按鈕
  if(digitalRead(K2)==LOW)
  {
    //電機反轉(zhuǎn)
    digitalWrite(A,LOW);
    digitalWrite(B,HIGH);
  }
  //如果按下K3(停止)按鈕
  if(digitalRead(K3)==LOW)
  {
    //電機停止
    digitalWrite(A,LOW);
    digitalWrite(B,LOW);
  }
  int sensorValue = analogRead(potpin); //讀取電位計采樣值     
  sensorValue = sensorValue/4; // 采樣值 0-1024 轉(zhuǎn)換為 0-255
  analogWrite(PWMpin, sensorValue);//把處理后的轉(zhuǎn)換值以PWM信號形式輸出
  delay(20);//延時

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表