цифровая электроника
вычислительная техника
встраиваемые системы

 
» » Подключаем к Raspberry Pi Pico ультразвуковой датчик HC-SR04



Подключаем к Raspberry Pi Pico ультразвуковой датчик HC-SR04

Автор: Mike(admin) от 30-03-2022, 03:55

Сегодня мы рассмотрим взаимодействие микроконтроллерной платы Raspberry Pi Pico с ультразвуковым датчиком, а также рассчитаем измеряемой с помощью него расстояние. Ультразвуковые датчики разнообразны и доступны на рынке, но тот, который мы собираемся использовать сегодня, является очень распространенным, и это HC-SR04. HC-SR04 является, пожалуй, лучшим ультразвуковым датчиком по низкой цене, и его очень легко использовать с большинством микроконтроллеров. Итак, давайте приступим.


Подключаем к Raspberry Pi Pico ультразвуковой датчик HC-SR04

HC-SR04 – это датчик, который используется во многих проектах и учебных схемах, которые вы можете найти в Интернете. HC-SR04 имеет немного сложную конструкцию, но очень прост в использовании и подключается к любому микроконтроллеру. Он имеет пару их ультразвуковых передатчика и приемника звука, которые используются для отправки и приема звуков для обнаружения объектов и препятствий.


Ультразвуковой датчик HC-SR04

Датчик имеет два контакта TRIG и ECHO, которые являются выходными и входными контактами для датчика соответственно. Поскольку мы собираемся использовать Raspberry Pi Pico, мы можем использовать его базовый код для создания работающей программы, а также мы можем превратить его в модуль с ЖК-дисплеем I2C для простоты визуализации данных. Датчик имеет радиус действия 400 см и минимальное расстояние 2-3 см. Также частота датчика составляет 40 кГц, на которой он передает и принимает ультразвуковой звук.


Чтобы измерить правильное расстояние, не забудьте установить точную скорость звука. Точность расстояния может отличаться в зависимости от температуры в вашем регионе, поэтому рассчитывайте скорость звука в соответствии с температурой.


Схема подключения Raspberry Pi Pico, ультразвукового датчика и ЖК-дисплея с интерфейсом I2C представлена далее.


Схема подключения Raspberry Pi Pico, ультразвукового датчика и ЖК-дисплея с интерфейсом I2C

Вот код для Raspberry Pi Pico:



from LQ_i2c import I2cLcd  
 from machine import Pin,I2C  
 from utime import sleep_us,ticks_us  
 echo=Pin(14,Pin.IN)  
 trig=Pin(15,Pin.OUT)  
 i2c = I2C(id=0,scl=Pin(5),sda=Pin(4),freq=100000)  
 lcd = I2cLcd(i2c, 0x3f, 2, 16) # LCD 16x2  
 lcd.move_to(0,0)  
 lcd.putstr("Ultrasonic")  
 lcd.move_to(0,1)  
 lcd.putstr("Sensor")  
 sleep_us(1000000)  
 lcd.clear()  
 lcd.move_to(0,0)  
 lcd.putstr("Distance :")  
 trig.value(0)  
 sleep_us(2)  
 while True:  
   try:  
     trig.high()  
     sleep_us(10)  
     trig.low()  
     while echo.value()==False:  
       st=ticks_us()  
     while echo.value()==True:  
       sto=ticks_us()  
     tt=sto-st  
     dis=(0.031594*tt)/2  
     print(dis)  
     lcd.move_to(4,1)  
     lcd.putstr(str(dis))  
   except KeyboardInterrupt:  
     break

Вначале мы импортируем некоторые важные модули, которые используются для работы кода, такие как функции I2cLcd из модуля LQ_i2c, функции Pin и I2C из модуля machine и функции sleep_us, ticks_us из модуля time. В этом коде мы используем модуль времени, который используется для вычисления времени в мкс.


Затем мы создаем два контакта в качестве входа и выхода для эхо- и триггерных контактов ультразвукового датчика. Далее мы создаем объект для инициализации I12C Lcd на порту I2C 0 (ноль), контакты которого определены в коде. Затем мы используем некоторые ЖК-команды для отображения исходного текста на ЖК-дисплее, устанавливая курсор и используя функции сна. Затем мы очищаем сигнал, переводя триггерный контакт в низкий уровень. Затем мы помещаем наш основной код в цикл while.


Мы создаем бесконечный цикл, прерываемый клавиатурой. В цикле мы переводим триггерный контакт в высокий уровень на 10 мкс, а затем снова переводим его в низкий уровень. Затем, когда вывод эха переходит в низкий уровень, мы начинаем отсчитывать время до тех пор, пока вывод эха не станет высоким. Таким образом мы рассчитываем общее время и с помощью простых вычислений находим расстояние. Но имейте в виду, что время исчисляется в мкс, поэтому скорость нужно измерять в см/мкс. Таким образом, 343 м/с будет 0,0343 см/мкс.




© digitrode.ru


Теги: Raspberry Pi Pico, HC-SR04, датчик расстояния




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий