2018年9月11日 星期二

DIY - ESP8266:D1 mini SG90 舵機 + 超聲波測距器程式(一百一十八)

DIY - ESP8266:D1 mini SG90 舵機 + 超聲波測距器程式(一百一十八):

ESP8266 D1 mini SG90 舵機超聲波測距器程式是分 2個部分,第一個是要驅動舵機轉動,當舵機轉動時,超聲波測距器便會發出訊號,然後等待反射回來的訊號,計算距離,並顯示在 OLED 屏上,然後繼續轉動和測量距離。

ESP8266 D1 mini SG90 舵機 + 超聲波測距器控制板
ESP8266 D1 mini SG90 + 超超聲波測距器初始化程式:
// ESP8266 D1 mini GPIO15=D8
PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, FUNC_GPIO15);  

// Ultrasonic US100 Echo (Input) GPIO12 I/O Definit (D6)
#define us100_echo_MUX                                          PERIPHS_IO_MUX_MTDI_U
#define us100_echo_FUNC                                        FUNC_GPIO12
#define us100_echo_PIN                                            12

//  Ultrasonic US100 Trig (Output) GPIO13 I/O (D7)
#define us100_trig_MUX                                            PERIPHS_IO_MUX_MTCK_U
#define us100_trig_FUNC                                           FUNC_GPIO13
#define us100_trig_PIN                                               13

ESP8266 D1 mini SG90 + 超聲波測距器程式:
// RTOS Task
void LED_Blink_Task (void *pvParameters)
{
    while(1)
    {
        vTaskDelay (200/portTICK_RATE_MS);

            // Ultrasonic
            timer_count=0;
            us100_send();
            timer_count=us100_recv();

            sprintf(dsp_buffer, "LED=%d CW=%d CCW=%d  ", led, cw_time, ccw_time );
            oled_Print(0, 2, dsp_buffer, 1);
            sprintf(dsp_buffer, "Echo Time=%d     ", timer_count );
            oled_Print(0, 3, dsp_buffer, 1);
            sprintf(dsp_buffer, "Distance=%dmm     ", timer_count/15 );
            oled_Print(0, 4, dsp_buffer, 1);
            sprintf(dsp_buffer, "Echo Time=%d Distance=%dmm\r\n", timer_count,timer_count/15 );
            printf(dsp_buffer);

            if(cw_time>19){
                        cw_time=0; led=1;
            }
            if(ccw_time>19){
                        ccw_time=0; led=0;
            }   
     }
}

ESP8266 程式:DIY-ESP12F-018-Servo_04_US100_SG90-20180906
 
ESP8266 D1 mini SG90 舵機 + 超聲波測距器控制板
ESP8266 D1 mini SG90 舵機 + 超聲波測距器控制板顯示
ESP8266 D1 mini SG90 舵機 + 超聲波測距器 100mm 波形
ESP8266 D1 mini SG90 舵機 + 超聲波測距器 200mm 波形
2018年 9月 11日 天氣報告
氣溫:27.0@ 19:30
相對濕度:百分之 62%
天氣:天色大致良好

沒有留言:

張貼留言