2018年6月20日 星期三

DIY - ESP8266:ESP-12F US-100 超聲波測距模組程式(一百)

DIY - ESP8266:ESP-12F US-100 超聲波測距模組程式(一百):

ESP-12F US-100 超聲波測距模組(Ultrasonic Range Finder)程式是將訊號由 GPIO13(D7)發射,然後 Echo 回來的訊號由 GPIO12(D6)接收,便會知道訊號回來時間的差距,並用程式計算距離。

ESP-12F US-100 超聲波測距模組
ESP-12F US-100 超聲波測距模組初始化程式:
// Ultrasonic US-100 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 US-100 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

uint8_t ICACHE_FLASH_ATTR us100_init(void)
{
    PIN_FUNC_SELECT(us100_echo_MUX,  us100_echo_FUNC);
    // set status and direction pin by mask gpio id pin.
    // set GPIO12 as output and low. set gpio 0 as input
    gpio_output_set(1, GPIO_ID_PIN(us100_echo_PIN),
    GPIO_ID_PIN(us100_echo_PIN),
    GPIO_ID_PIN(us100_echo_PIN));
    GPIO_DIS_OUTPUT(us100_echo_FUNC);

    PIN_FUNC_SELECT(us100_trig_MUX,  us100_trig_FUNC);
    // set status and direction pin by mask gpio id pin.
    // set GPIO13 as output and low. set gpio 0 as input
    gpio_output_set(0, GPIO_ID_PIN(us100_trig_PIN),
    GPIO_ID_PIN(us100_trig_PIN),
    GPIO_ID_PIN(us100_trig_PIN));
    GPIO_OUTPUT_SET(GPIO_ID_PIN(us100_trig_PIN),0);
}

//Init HC-SR04 Ultrasonic driver
  us100_init();

ESP-12F US-100 超聲波測距模組程式:
// Ultrasonic
us100_send();
timer_count=us100_recv();

os_sprintf(dsp_buffer, "Echo Time=%d ", timer_count );
OLED_Print(0, 4, dsp_buffer, 1);
os_sprintf(dsp_buffer, "Echo Time=%d\r\n", timer_count );
ets_uart_printf(dsp_buffer);

運作中的 ESP-12F US-100 超聲波測距模組
ESP-12F US-100 超聲波測距模組的 Echo 時間
ESP-12F US-100 超聲波測距模組的 Trigger 和 Echo 訊號
ESP8266 程式:DIY - ESP12F - 018 Sensor 04 - US100 GPIO12 - 20180505

2018年 6月 20日 天氣報告
氣溫:29.4@ 20:30
相對濕度:百分之 78%
天氣:大致多雲

沒有留言:

張貼留言