PWM - 使用伺服马达
材料准备
- Ameba x 1
- Servo x 1 (Ex. Tower Pro SG90)
范例说明
伺服马达会依照指示命令动作, 它上面有轴柄, 通常可以转0~180度。一般的Servo会有三条线,红色是电源线,黑色或棕色是GND,以及讯号线。
我们传送PWM讯号到讯号线上来控制轴柄的角度。讯号的频率是50Hz,即每个讯号长度为20ms。每个Servo会定义pulse bandwidth, 通常是1ms~2ms。举例来说, 如果pulse长度是1ms, 轴柄转到0度, 那么1.5ms的pulse长度会让轴柄转到90度, 2ms的pulse长度会让轴柄转到180度。另外Servo也会定义dead bandwidth, 代表这一次的pulse长度与上一次的差异至少要大于dead bandwidth, Servo才会动作。
我们将Servo接上Ameba RTL8195:
我们将Servo接上Ameba RTL8195:
RTL8710 接线图如下:
然后打开范例程式 “File” -> “Examples” -> “AmebaAnalog” -> “ServoSweep”
这个范例会让Servo从0度转到180度, 再从180度转回0度
程式码说明
Ameba的Servo API仿照 Arduino的API, 但是Arduino已经有原生的Servo API, 所以header档我们改成 “AmebaServo.h”, Class的名称也改成AmebaServo, 除此之外使用方式跟Arduino一样。
Arduino Servo预设的pulse bandwidth为0.5ms~2.4ms, 刚好与Power Pro SG90一样,所以attach的部份直接设定要接的pin:
接着让轴柄转至设定的角度, 其中write里面填的是角度
Arduino Servo预设的pulse bandwidth为0.5ms~2.4ms, 刚好与Power Pro SG90一样,所以attach的部份直接设定要接的pin:
myservo.attach(9);
接着让轴柄转至设定的角度, 其中write里面填的是角度
myservo.write(pos);
Realtek IoT/Wi-Fi MCU Solutions . All Rights Reserved. 使用条款