2018年9月6日 星期四

DIY - ESP8266:D1 mini SG90 微型舵機光耦合隔離器程式(一百一十五)

DIY - ESP8266:D1 mini SG90 微型舵機光耦合隔離器程式(一百一十五):

ESP8266 D1 mini TowerPro SG90 微型舵機(Micro Servo)光耦合隔離器(Photocoupler)程式,其實和 TowerPro SG90 微型舵機的直驅程式一樣,祇是加入了光耦合隔離器 Renesas (瑞薩電子)PS2561 零件, I/O 口也會加上 GPIO15 (D8),因為直驅用的 GPIO2(D4)是驅動 D1 mini 開發板上的 LED,避免打亂 WiFi 開發板上的 LED 顯示訊號。

ESP8266 D1 mini SG90 微型舵機光耦合隔離器控制板
ESP8266 D1 mini 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 GPIO15=D8
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, FUNC_GPIO15);  

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(15),1);
                        os_delay_us(500);
                        GPIO_OUTPUT_SET(GPIO_ID_PIN(15),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(15),1);
                        os_delay_us(2500);
                        GPIO_OUTPUT_SET(GPIO_ID_PIN(15),0);
                        os_delay_us(17500);
                        os_delay_us(step_time);
            }
}

ESP8266 程式:DIY - ESP12F - 025 - Servo 03 SG90 MG995 90DRG GPIO15 - 20180319

ESP8266 D1 mini SG90 微型舵機光耦合隔離器運作中
ESP8266 D1 mini SG90 微型舵機光耦合隔離器的顯示
2018年 9月 6日 天氣報告
氣溫:28.8@ 20:10
相對濕度:百分之 80%
天氣:大致多雲

沒有留言:

張貼留言