/*
* 例 5-5:旋轉可變電阻,測試伺服馬達信號上下限、及反應
*/
#include <ESP32Servo.h> // 引用函式庫
Servo myServo; // 建立伺服馬達物件,名稱為 myServo
const byte servoPin = 40; // 使用 GPIO33 作為信號輸出
const byte VR = 20; // 使用 GPIO32 作為可變電阻之信號輸入
short val; // 可變電阻之數位讀值儲存處
void setup() {
pinMode(servoPin, OUTPUT);
pinMode(VR, INPUT);
Serial.begin(9600);
myServo.setPeriodHertz(50); // 50hz 代表信號週期為 20ms
myServo.attach(servoPin); // 連接伺服馬達物件
}
void loop() {
val = analogRead(VR); // 讀取可變電阻的數位值(0 到 4095)
val = map(val, 0, 4095, 500, 2500); // 轉換到 500 到 2500 之間
Serial.print(val); // 印出目前數位值
Serial.println("us"); // 印出單位
myServo.writeMicroseconds(val); // 驅動到伺服馬達
}
esp:0
esp:1
esp:2
esp:3
esp:4
esp:5
esp:6
esp:7
esp:8
esp:9
esp:10
esp:11
esp:12
esp:13
esp:14
esp:15
esp:16
esp:17
esp:18
esp:19
esp:20
esp:21
esp:26
esp:33
esp:34
esp:35
esp:36
esp:37
esp:38
esp:39
esp:40
esp:41
esp:42
esp:45
esp:46
esp:3V3
esp:5V
esp:GND.1
esp:TX
esp:RX
esp:RST
esp:GND.2
servo1:GND
servo1:V+
servo1:PWM
pot1:VCC
pot1:SIG
pot1:GND