1. 程式人生 > >Arduino學習筆記(1):控制舵機轉速和繼電器開關

Arduino學習筆記(1):控制舵機轉速和繼電器開關

準備:
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("關閉繼電器"); } } }