Arduino學習筆記(1):控制舵機轉速和繼電器開關
阿新 • • 發佈:2019-01-23
準備:
Arduino mega 2560
Micro Servo 9g
杜邦線若干
接線方式如圖:
需要上傳到Arduino的程式碼:
#include <Servo.h> // 宣告呼叫Servo.h庫
Servo myservo; // 建立一個舵機物件
int pos = 0; // 變數pos用來儲存舵機位置
void setup() {
myservo.attach(9); // 將引腳9上的舵機與宣告的舵機物件連線起來
}
void loop() {
for(pos = 0; pos < 180; pos += 1 ){ // 舵機從0°轉到180°,每次增加1°
myservo.write(pos); // 給舵機寫入角度
delay(15); // 延時15ms讓舵機轉到指定位置
}
for(pos = 180; pos>=1; pos-=1) { // 舵機從180°轉回到0°,每次減小1°
myservo.write(pos); // 寫角度到舵機
delay(15); // 延時15ms讓舵機轉到指定位置
}
}
上傳成功後就可以工作了,下面說改變轉速的問題,
for(pos = 0; pos < 180; pos += 1)
這裡更改轉速,設定pos +=10就是指每次增加10度。
準備1路光耦隔離繼電器模組(其他的也行)
DC+====5v
DC-====GND
IN ====訊號線(本文接D3)
程式碼:
int pinRelay = 3; //管腳D3連線到繼電器模組的訊號腳
int val;
void setup() {
pinMode(pinRelay, OUTPUT); //設定pinRelay腳為輸出狀態
Serial.begin (115200);
}
void loop() {
if(Serial.available()>0)
{
val=Serial.read();
if(val=='a')
{
digitalWrite(pinRelay, HIGH);//輸出HIGH電平,繼電器模組閉合
Serial.print("閉合繼電器");
}
if(val=='b')
{
digitalWrite(pinRelay, LOW);//輸出HIGH電平,繼電器模組閉合
Serial.print("關閉繼電器");
}
}
}