網頁

2018年9月4日 星期二

DIY - ESP8266:D1 mini SG90 微型舵機直驅程式(一百一十三)

DIY - ESP8266:D1 mini SG90 微型舵機直驅程式(一百一十三):

完成的 TowerPro (輝盛)SG90 微型舵機(Micro Servo)控制板後,便需要編寫驅動程式,祇要根據 TowerPro SG90 微型舵機的的 PWM 信號時間,透過訊號線傳送 PWM 脈波來控制軸柄的停止位置和旋轉角度,這次是由 GPIO2(D4)直接連接到微型舵機的控制線,直接驅動微型舵機。

ESP8266 D1 mini SG90 微型舵機控制板
控制SG90 微型舵機的訊號脈波必須每秒重複 50次(也就是50Hz / 20ms),而脈衝持續時間長短便代表了馬達該將軸柄轉到什麼位置,範圍從1.0ms 到 2.0ms(millisecond,毫秒,千分之一秒),若想置中則是 1.5ms;也可將 1.0ms當做角度 0度,那麼 1.5ms 會是 90度,2.0ms 則是轉到底 180度。注意,也有可能反過來。產生脈衝寬度調變(PWM)信號是很多方式,其中利用 ESP8266 內的 Delay ,便可以輸出不同的 PWM 信號,便可以利用不同的 PWM 信號來驅動 TowerPro SG90 微型舵機(Micro Servo)的轉動角度。

TowerPro SG90 微型舵機的控制訊號
ESP8266 D1 mini SG90 微型舵機的插頭
ESP8266 D1 mini SG90 微型舵機初始化程式:
// ESP8266 D1 mini GPIO2=D4 (On Board BLUE LED   PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U, FUNC_GPIO2);  

ESP8266 D1 mini SG90 微型舵機程式:
// SG90 PWM Time Variables
uint8    cw_time=0;                             // Clockwise
uint8    ccw_time=0;                           // Counter Clockwise
uint32  step_time=30000;                    // Step to step time

if (led==0){
            // SG90 + MG995 Clockwise = 500us = 0.5ms in 20ms Def=23
            for (cw_time=0; cw_time<23 cw_time="" span="">
                        {
                        GPIO_OUTPUT_SET(GPIO_ID_PIN(2),1);
                        os_delay_us(500);
                        GPIO_OUTPUT_SET(GPIO_ID_PIN(2),0);
                        os_delay_us(19500);
                        os_delay_us(step_time);
                        }

            } else {

            // SG90 + MG995 Counterclockwise = 2500us = 2.5ms in 20ms Def=23
            for (ccw_time=0; ccw_time<23 ccw_time="" span="">
                        {
                        GPIO_OUTPUT_SET(GPIO_ID_PIN(2),1);
                        os_delay_us(2500);
                        GPIO_OUTPUT_SET(GPIO_ID_PIN(2),0);
                        os_delay_us(17500);
                        os_delay_us(step_time);
            }
}

ESP8266 程式:DIY - ESP12F - 025 - Servo 02 SG90 MG995 90DRG GPIO2 - 20180319

轉動中的 TowerPro SG90 微型舵機控制板
TowerPro SG90 微型舵機控制板的顯示
2018年 9月 4日 天氣報告
氣溫:28.7@ 19:50
相對濕度:百分之 86%
天氣:天色大致良好

沒有留言:

張貼留言