Serial.println(value, OCT);
Serial.println(value, BIN);
Дополнительно можно вывести значения с датчика температуры, который мы рассматривали в предыдущей главе.
С помощью шины I2C можно подключать различные устройства, например многочисленные датчики. Для примера можно рассмотреть плату “Grove - IMU 10DOF”.
Плата работает по той же шине I2C и подключается точно так же, как и дисплей из предыдущей главы, 4 проводами. На плате находятся датчик MPU-9250, содержащий гироскоп, акселерометр и компас, и цифровой барометр BMP280.
Подключение платы точно такое же, как на картинке с дисплеем из предыдущей главы. Сам обмен данных с датчиками достаточно сложен, но готовые библиотеки для Arduino уже существуют, и их весьма просто использовать.
Чтобы получить данные с датчика MPU-9250, нужно скачать библиотеку с сайта https://github.com/Snowda/MPU9250 (выбрать Download - zip) и распаковать ее в папку Документы\Arduino\libraries. Сам код чтения данных с датчика и их вывода в последовательный порт весьма прост.
#include "Wire.h"
#include "I2Cdev.h"
#include "MPU9250.h"
MPU9250 accelgyro;
int index = 0;
void setup() {
// Запуск шины I2C
Wire.begin();
// Инициализация порта
Serial.begin(115200);
// Инициализация датчика
accelgyro.initialize();
// Проверка подключения
Serial.println("Testing device connections...");
Serial.println(accelgyro.testConnection() ? "MPU9250 connected" : "MPU9250 failed");
}
void loop() {
// Чтение данных
int16_t ax, ay, az, gx, gy, gz, mx, my, mz;
accelgyro.getMotion9(&ax, &ay, &az, &gx, &gy, &gz, &mx, &my, &mz);
// Получение ускорения или вращения (опционально)
//accelgyro.getAcceleration(&ax, &ay, &az);
//accelgyro.getRotation(&gx, &gy, &gz);