- Обязательные компоненты:
- Гироскопический датчик MPU6050:
- Описание:
- Принципиальная схема и пояснения:
- Объяснение программирования
Датчик MPU6050 выполняет множество функций на одном кристалле. Он состоит из акселерометра MEMS, гироскопа MEMS и датчика температуры. Этот модуль очень точен при преобразовании аналоговых значений в цифровые, поскольку он имеет 16-битный аналого-цифровой преобразователь для каждого канала. Этот модуль способен одновременно захватывать каналы x, y и z. Он имеет интерфейс I2C для связи с хост-контроллером. Этот модуль MPU6050 представляет собой компактный чип с акселерометром и гироскопом. Это очень полезное устройство для многих приложений, таких как дроны, роботы, датчики движения. Его также называют гироскопом или трехосным акселерометром.
Сегодня в этой статье мы собираемся соединить этот гироскоп MPU6050 с Arduino и показать значения на ЖК-дисплее 16x2.
Обязательные компоненты:
- Ардуино Уно
- MPU-6050
- 10K POT
- Перемычка
- Макетная плата
- USB-кабель
- Источник питания
Гироскопический датчик MPU6050:
MPU-6050 - это 8-контактный 6-осевой гироскоп и акселерометр в одном чипе. Этот модуль по умолчанию работает с последовательным интерфейсом I2C, но его можно настроить для интерфейса SPI, настроив его регистр. Для I2C это линии SDA и SCL. Практически все контакты многофункциональные, но здесь мы переходим только к контактам режима I2C.
Конфигурация контактов:
Vcc: - этот вывод используется для питания модуля MPU6050 относительно земли
GND: - это заземляющий контакт
SDA: - вывод SDA используется для передачи данных между контроллером и модулем mpu6050
SCL: - вывод SCL используется для входа часов
XDA: - Линия данных датчика I2C SDA для настройки и чтения с внешних датчиков ((опционально) не используется в нашем случае)
XCL: - Это линия синхронизации I2C SCL датчика для настройки и чтения с внешних датчиков ((необязательно) не используется в нашем случае)
ADO: - I2C Slave Address LSB (в нашем случае не применяется)
INT: - Вывод прерывания для индикации готовности данных.
Описание:
В этой статье мы показываем показания температуры, гироскопа и акселерометра на ЖК-дисплее с использованием MPU6050 с Arduino. Этот модуль дает нам значения строк и нормализованные значения на выходе, но значения строк нестабильны, поэтому здесь мы показываем нормализованные значения на ЖК-дисплее. Если вам просто нужно значение акселерометра, вы также можете использовать акселерометр ADXL335 с Arduino.
В этом проекте мы сначала показываем значение температуры на ЖК-дисплее, через 10 секунд мы показываем значения гироскопа, а через 10 секунд мы получаем показания акселерометра, как показано на изображениях ниже:
Принципиальная схема и пояснения:
Принципиальная схема для взаимодействия MPU6050 с Arduino очень проста, здесь мы использовали ЖК-дисплей и MPU6050. И здесь мы использовали USB-блок питания для ноутбука. Поток 10k используется для управления яркостью ЖК-дисплея. В связи с MPU6050 мы выполнили 5 подключений, в которых мы подключили источник питания 3,3 В и землю MPU6050 к 3,3 В и земле Arduino. Контакты SCL и SDA MPU6050 соединены с контактами A4 и A5 Arduino. Вывод INT MPU6050 подключен к прерыванию 0 Arduino (D2). ЖК-индикаторы RS, RW и EN напрямую подключены к 8, gnd и 9 Arduino. Вывод данных напрямую подключен к цифровым выводам 10, 11, 12 и 13.
Объяснение программирования
Программная часть также проста для этого проекта. Здесь мы использовали эту библиотеку MPU6050 для взаимодействия с Arduino. Итак, в первую очередь, нам нужно загрузить библиотеку MPU6050 с GitHub и установить ее в Arduino IDE.
После этого мы можем найти примеры кодов в примере. Пользователь может протестировать этот код, напрямую загрузив его в Arduino, и увидеть значения на последовательном мониторе. Или пользователь может использовать наш код, приведенный в конце статьи, чтобы отображать значения на ЖК-дисплее и на последовательном мониторе.
В кодирование мы включили некоторые необходимые библиотеки, такие как MPU6050 и LCD.
#включают
В функции настройки мы инициализируем оба устройства и пишем приветственное сообщение на ЖК-дисплее.
void setup () {lcd.begin (16,2); lcd.createChar (0, градус); Serial.begin (9600); Serial.println («Инициализировать MPU6050»); в то время как (! mpu.begin (MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) {lcd.clear (); lcd.print («Устройство не найдено»); Serial.println («Не удалось найти действующий датчик MPU6050, проверьте проводку!»); задержка (500); } count = 0; mpu.calibrateGyro (); mpu.setThreshold (3); В функции цикла мы вызывали три функции каждые 10 секунд для отображения температуры, показаний гироскопа и акселерометра на ЖК-дисплее. Эти три функции - tempShow, gyroShow и AccelShow , вы можете проверить эти функции в полном коде Arduino, приведенном в конце этой статьи:
пустой цикл () {lcd.clear (); lcd.print («Температура»); длинная ст = миллис (); Serial.println («Температура»); в то время как (миллис ()
И гироскоп MPU6050, и акселерометр используются для определения положения и ориентации любого устройства. Гироскоп использует земную гравитацию для определения положений осей x, y и z, а акселерометр обнаруживает на основе скорости изменения движения. Мы уже использовали акселерометр с Arduino во многих наших проектах, например:
- Робот, управляемый жестами руки, на основе акселерометра
- Система оповещения об авариях на базе Arduino
- Сигнализация детектора землетрясения с использованием Arduino