Перейти к содержанию
Материалы раздела

О датчике

Этот датчик обеспечивает точные бесконтактные измерения расстояния от примерно 2 см до 3 метров.

Датчик PING))) работает, передавая ультразвуковой импульс и обеспечивая выходной импульс, который соответствует времени, необходимому для возврата эха импульса к датчику. Расстояние рассчитывается путем измерения ширины импульса эха.

Скорость звука зависит от температуры окружающей среды примерно на 0,6 м/с на градус Цельсия. Для точных измерений в широком диапазоне температур используйте датчик температуры для компенсации.

Питание:

  • Напряжение питания: +5 В пост. тока
  • Ток питания: 30 мА тип; 35 мА макс

Спецификация

ЧтоКомментарии
ИдентификаторPING28015
ИнтерфейсGPIO1 пин
Предоставляетdistanceсм
calibration+/- см. По умолчанию установлено -0,6049 см.
Свойстваtemperatureтекущая температура окружающей среды
Техническое описание

Код

-- Подключить датчик к GPIO26
s = sensor.attach("PING28015", pio.GPIO26)

-- Сообщаем PING28015, что температура окружающей среды составляет 25º для настройки
-- скорости звука, используемой внутри для расчета расстояния до
-- объекта
s:set("temperature", 25)

while true do
  print("расстояние: "..s:read("distance"))
  tmr.delayms(500)
end

Код

В этом примере датчик BME280 используется для установки температуры окружающей среды через регулярные интервалы.

-- Создать событие для синхронизации потока ping с
-- потоком temp. Мы не хотим делать первое измерение
-- до тех пор, пока поток temp не установит температуру ping
tempSet = event.create()

-- Подключить датчик к GPIO26
ping = sensor.attach("PING28015", pio.GPIO26)

-- Подключить BME280 к I2C0 со значениями по умолчанию
bme = sensor.attach("BME280", i2c.I2C0, 0)

-- Поток температуры
thread.start(function()
   local temp

   -- Считать текущую температуру окружающей среды
   temp = bme:read("temperature")

   -- Установить текущую температуру для датчика ping
   ping:set("temperature", temp)

   tempSet:broadcast()

   while true do
      -- Считать текущую температуру окружающей среды
      temp = bme:read("temperature")

      -- Установить текущую температуру для датчика ping
      ping:set("temperature", temp)

      -- Считать температуру снова через 10 секунд
      tmr.sleep(5)
   end
end)

-- Поток Ping
thread.start(function()
   tempSet:wait()

   while true do
      print("расстояние: "..ping:read("distance"))

      tmr.sleepms(500)
   end
end)

Вернуться к списку датчиков