|
|
|
|
@ -1,3 +1,9 @@
|
|
|
|
|
// Arduino I2C slave for reading 16 bit registers
|
|
|
|
|
//
|
|
|
|
|
// by Alan Johnston
|
|
|
|
|
//
|
|
|
|
|
// based on
|
|
|
|
|
|
|
|
|
|
#include <Wire.h>
|
|
|
|
|
#define I2C_ADDRESS 0x4B
|
|
|
|
|
#define REGISTER_0 0x00
|
|
|
|
|
@ -6,10 +12,8 @@
|
|
|
|
|
#define REGISTER_3 0x03
|
|
|
|
|
|
|
|
|
|
uint8_t reg; // I2C read register
|
|
|
|
|
unsigned int reg_0_value = 41151;
|
|
|
|
|
unsigned int reg_1_value = 53124;
|
|
|
|
|
unsigned int reg_2_value = 65535;
|
|
|
|
|
unsigned int reg_3_value = 0;
|
|
|
|
|
|
|
|
|
|
int reg_0_value, reg_1_value, reg_2_value, reg_3_value; // register variables
|
|
|
|
|
|
|
|
|
|
void setup() {
|
|
|
|
|
|
|
|
|
|
@ -24,6 +28,13 @@ void setup() {
|
|
|
|
|
|
|
|
|
|
void loop() {
|
|
|
|
|
Serial.println("Waiting for register read");
|
|
|
|
|
|
|
|
|
|
// Read from sensor here and set register variables
|
|
|
|
|
reg_0_value = 57007; // decimal values of registers for testing
|
|
|
|
|
reg_1_value = 48879;
|
|
|
|
|
reg_2_value = 3790;
|
|
|
|
|
reg_3_value = 4613;
|
|
|
|
|
|
|
|
|
|
delay(5000);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -40,19 +51,19 @@ void requestEvent() {
|
|
|
|
|
if (reg == REGISTER_0) {
|
|
|
|
|
Wire.write((uint8_t *)®_0_value, sizeof(reg_0_value));
|
|
|
|
|
Serial.print("Writing value ");
|
|
|
|
|
Serial.println(reg_0_value);
|
|
|
|
|
Serial.println(reg_0_value, DEC); // writing register value in DECIMAL format
|
|
|
|
|
} else if (reg == REGISTER_1) {
|
|
|
|
|
Wire.write((uint8_t *)®_1_value, sizeof(reg_1_value));
|
|
|
|
|
Serial.print("Writing value ");
|
|
|
|
|
Serial.println(reg_1_value);
|
|
|
|
|
Serial.println(reg_1_value, DEC);
|
|
|
|
|
} else if (reg == REGISTER_2) {
|
|
|
|
|
Wire.write((uint8_t *)®_2_value, sizeof(reg_2_value));
|
|
|
|
|
Serial.print("Writing value ");
|
|
|
|
|
Serial.println(reg_2_value);
|
|
|
|
|
Serial.println(reg_2_value, DEC);
|
|
|
|
|
} else if (reg == REGISTER_3) {
|
|
|
|
|
Wire.write((uint8_t *)®_3_value, sizeof(reg_3_value));
|
|
|
|
|
Serial.print("Writing value ");
|
|
|
|
|
Serial.println(reg_3_value);
|
|
|
|
|
Serial.println(reg_3_value, DEC);
|
|
|
|
|
} else {
|
|
|
|
|
Serial.println("Unknown register");
|
|
|
|
|
}
|
|
|
|
|
|