Hi all,
I've been attempting to implement a Nano 33 IoT with a BNO055. I've got the IMU working fine, but I'm getting this error with my Wire.h library:
In file included from C:\Users\dnnlz\Documents\Arduino\libraries\Adafruit_BusIO\Adafruit_I2CDevice.cpp:1:0:
C:\Users\dnnlz\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_I2CDevice.h:9:36: error: 'TwoWire' has not been declared
Adafruit_I2CDevice(uint8_t addr, TwoWire *theWire = &Wire);
^~~~~~~
C:\Users\dnnlz\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_I2CDevice.h:28:3: error: 'TwoWire' does not name a type; did you mean 'TwoWire_h'?
TwoWire *_wire;
^~~~~~~
TwoWire_h
C:\Users\dnnlz\Documents\Arduino\libraries\Adafruit_BusIO/Adafruit_I2CDevice.h:9:55: error: could not convert '& Wire' from 'arduino::TwoWire*' to 'int*'
Adafruit_I2CDevice(uint8_t addr, TwoWire *theWire = &Wire);
^~~~~
Etcetera. My code is as follows:
#include <WiFiNINA.h>
#include <Wire.h>
extern TwoWire Wire1;
#include <Adafruit_Sensor.h>
#include <Adafruit_BNO055.h>
#include <utility/imumaths.h>
/* This driver reads raw data from the BNO055
Connections
===========
Connect SCL to analog 5
Connect SDA to analog 4
Connect VDD to 3.3V DC
Connect GROUND to common ground
*/
// Check I2C device address and correct line below (by default address is 0x29 or 0x28)
// id, address
Adafruit_BNO055 bno = Adafruit_BNO055(-1, 0x28);
//link to blynk
#define BLYNK_TEMPLATE_ID "XYZ"
#define BLYNK_DEVICE_NAME "XYZ"
// Comment this out to disable prints and save space
#define BLYNK_PRINT Serial
#include <SPI.h>
#include <WiFi.h>
#include <BlynkSimpleWifi.h>
char auth[] = "XYZ";
char ssid[] = "XYZ";
char pass[] = "XYZ";
BlynkTimer timer;
void getTime() {
imu::Vector<3> euler = bno.getVector(Adafruit_BNO055::VECTOR_EULER);
double Time = 0.0;
double AdjustedAngle = 0.0;
AdjustedAngle = (euler.z() - 90) * -1;
// 270 degrees of rotation for 60 minutes, current degrees for how many minutes Time
Time = 60 * AdjustedAngle / 270;
// Serial.print(Time);
// Serial.println();
uint8_t system, gyro, accel, mag = 0;
bno.getCalibration(&system, &gyro, &accel, &mag);
Blynk.virtualWrite(V2, Time);
}
void setup() {
Serial.begin(9600);
// if(!bno.begin())
// {
// /* There was a problem detecting the BNO055 ... check your connections */
// Serial.print("Ooops, no BNO055 detected ... Check your wiring or I2C ADDR!");
// while(1);
// }
Wire1.begin();
bno.setExtCrystalUse(true);
Blynk.begin(auth, ssid, pass);
timer.setInterval(1000, getTime);
}
void loop() {
Blynk.run();
timer.run();
}
Sorry if the formatting isn't working, this is my first post.