|
Arduino程序:
//任務(wù):通過(guò)按鈕控制電機(jī)啟停和正反轉(zhuǎn),通過(guò)電位計(jì)調(diào)節(jié)電機(jī)轉(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; // 把電位計(jì)連在模擬端口3
int A=2; //數(shù)字端口2、3控制電機(jī)啟停和轉(zhuǎn)向
int B=3;
int PWMpin = 9; // 數(shù)字端口9輸出PWM信號(hào),控制電機(jī)轉(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)
{
//電機(jī)正轉(zhuǎn)
digitalWrite(A,HIGH);
digitalWrite(B,LOW);
}
//如果按下K2(反轉(zhuǎn))按鈕
if(digitalRead(K2)==LOW)
{
//電機(jī)反轉(zhuǎn)
digitalWrite(A,LOW);
digitalWrite(B,HIGH);
}
//如果按下K3(停止)按鈕
if(digitalRead(K3)==LOW)
{
//電機(jī)停止
digitalWrite(A,LOW);
digitalWrite(B,LOW);
}
int sensorValue = analogRead(potpin); //讀取電位計(jì)采樣值
sensorValue = sensorValue/4; // 采樣值 0-1024 轉(zhuǎn)換為 0-255
analogWrite(PWMpin, sensorValue);//把處理后的轉(zhuǎn)換值以PWM信號(hào)形式輸出
delay(20);//延時(shí)
|
|