шаблоны сайт визитка joomla
Скачать шаблоны Joomla 3.5 бесплатно
Вы находитесь здесь:Главная»Учебные материалы»Arduino Scetch»Лазерный дальномер CJMCU 530

Лазерный дальномер CJMCU 530

В этом примере мы будем выводить показания одного и двух лазерных датчиков расстояний CJMCU 530. Для программирования CJMCU 530 мы используем библиотеку VL53L0X.

Часто в проектах мы испульзуем дальномеры. Например, ультразвуковой дальномер HC-SR04HC-SR04, инфракрасный дальномер FC-51FC-51. Но эти модели дальномеров показывают не точные данные или выдают только цифровой сигнал (есть или нет препятствия), по этому мы используем лазерные дальномеры CJMCU 530, так как их погрешность равна 1 мм.

Характеристики:

  • Напряжение питания: 3,3–5 В
  • Измеряемое расстояние до 2м
  • Значения датчика не зависят от свойств поверхности
  • Потребляемый ток: до 300 мкА
  • Выходной интерфейс: I²C (адрес: 0x29)
  • Xshutdown (сброс) и gpio прерываний
  • Программно перепрограммируемый адрес

Для сборки нам потребуется:

Ардуино Уно

Лазерный дальномер CJMCU 530

Соединительные провода

Макетная плата

Схема сборки

CJMCU1

Пример программы №1

#include <Wire.h>
#include <VL53L0X.h>

VL53L0X sensor;


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

//#define LONG_RANGE


// раскомментируйте одну из этих двух строчек, чтобы получить
// - более высокая скорость за счет более низкой точности или
// - более высокая точность за счет более низкой скорости

//#define HIGH_SPEED
//#define HIGH_ACCURACY


void setup()
{
  Serial.begin(9600);
  Wire.begin();

  sensor.init();
  sensor.setTimeout(500);

#if defined LONG_RANGE
 
  sensor.setSignalRateLimit(0.1);
  sensor.setVcselPulsePeriod(VL53L0X::VcselPeriodPreRange, 18);
  sensor.setVcselPulsePeriod(VL53L0X::VcselPeriodFinalRange, 14);
#endif

#if defined HIGH_SPEED

  sensor.setMeasurementTimingBudget(20000);
#elif defined HIGH_ACCURACY
  sensor.setMeasurementTimingBudget(200000);
#endif
}

void loop()
{
  Serial.print(sensor.readRangeSingleMillimeters());
  if (sensor.timeoutOccurred()) { Serial.print(" TIMEOUT"); }

  Serial.println();
}

Результат работы программы:

2017 06 06 10 00 49

Анализ результата:

 Датчик выдает минимальную погрешность примерно 3 мм. Но периодически показания датчика опускаются до значения меньше 5 мм. Можно программно сгладить результаты, осредняя текущее и предыдущее значения.


Подключение двух дачтиков к ардуино

Подкулючим к ардуино два лазерных дальномера. Чтобы считывать с них показания, надо перепрограммировать их адреса.

Схема подключения

 7f0a728a 6892 11e6 9ed4 f77b26a492bc

Пример программы № 2

 

#include <Wire.h>
#include <VL53L0X.h>

VL53L0X sensor;
VL53L0X sensor2;

void setup()
{

  pinMode(5, OUTPUT);
  pinMode(3, OUTPUT);
  digitalWrite(3, LOW);
  digitalWrite(5, LOW);

  delay(500);
  Wire.begin();


  Serial.begin (9600);

  digitalWrite(3, HIGH);
  delay(150);
  Serial.println("00");
  sensor.init(true);

  Serial.println("01");
  delay(100);
  sensor.setAddress((uint8_t)22);
  Serial.println("02");

  digitalWrite(5, HIGH);
  delay(150);
  sensor2.init(true);
  Serial.println("03");
  delay(100);
  sensor2.setAddress((uint8_t)25);
  Serial.println("04");

  Serial.println("addresses set");

}

void loop()
{
  Serial.print(sensor.readRangeSingleMillimeters());
  if (sensor.timeoutOccurred()) {
    Serial.print(" TIMEOUT");
  }
  Serial.print("     ");
  Serial.print(sensor2.readRangeSingleMillimeters());
  if (sensor2.timeoutOccurred()) {
    Serial.print(" TIMEOUT");
  }


  Serial.println();
}

Результат работы программы:

2017 06 06 10 24 25

Похожие материалы (по тегу)

Другие материалы в этой категории: « Управление шаговым двигателем

Новости о нас

Расписание занятий для каждой сформированной группы по робототехнике на 2017-2018 учебный год. Подробнее
Учебный год начался, и у нас очередная радостная новость для вас, педагоги! В этом году... Подробнее
Наши учащиеся выступили на августовской конференции педагогов! Подробнее
Хочешь учиться в Толтеке по выгодной цене? Приводи друзей и получай большие скидки!... Подробнее
19 августа в ТРЦ Сити Молл с блеском прошел РобоКвест! Героями квеста стали более сотни... Подробнее

Наши партнеры

 TZOyoOCZ8y0 logotip novy SF BashGU  utv logo  CityMoll  VolnoeDelo