From a4749459f0739e1e959a1d67f587e425e05b76c3 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 6 Apr 2019 14:51:55 -0400 Subject: [PATCH 1/3] changed test register values --- arduino/i2c_slave_register_read.ino | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/arduino/i2c_slave_register_read.ino b/arduino/i2c_slave_register_read.ino index a4890778..6a73a034 100644 --- a/arduino/i2c_slave_register_read.ino +++ b/arduino/i2c_slave_register_read.ino @@ -1,3 +1,9 @@ +// Arduino I2C slave for reading 16 bit registers +// +// by Alan Johnston +// +// based on + #include #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"); } From 8f115f2ed3124b74ed41deb6a543fd98e2353751 Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 6 Apr 2019 14:53:33 -0400 Subject: [PATCH 2/3] Update i2c_master_register_read.ino --- arduino/i2c_master_register_read.ino | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arduino/i2c_master_register_read.ino b/arduino/i2c_master_register_read.ino index e8c7f1a4..a2a6f789 100644 --- a/arduino/i2c_master_register_read.ino +++ b/arduino/i2c_master_register_read.ino @@ -11,6 +11,8 @@ // modified by Alan Johnston to show reading registers 0 - 3 // code based on https://forum.arduino.cc/index.php?topic=211587.0 +// +// This code is to simulate the Raspberry Pi acting as I2C bus master #include #define I2C_ADDRESS 0x4B @@ -46,7 +48,7 @@ void loop() { uint16_t register_value = ((MSB << 8) | LSB); Serial.print("Read "); - Serial.print(register_value); + Serial.print(register_value, HEX); // display register value in HEXADECIMAL Serial.print(" from register "); Serial.println(reg); } From 209911016c7018708a36f5eabe87d684621430bd Mon Sep 17 00:00:00 2001 From: alanbjohnston Date: Sat, 6 Apr 2019 15:14:35 -0400 Subject: [PATCH 3/3] Update i2c_slave_register_read.ino --- arduino/i2c_slave_register_read.ino | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arduino/i2c_slave_register_read.ino b/arduino/i2c_slave_register_read.ino index 6a73a034..e59935cc 100644 --- a/arduino/i2c_slave_register_read.ino +++ b/arduino/i2c_slave_register_read.ino @@ -13,7 +13,7 @@ uint8_t reg; // I2C read register -int reg_0_value, reg_1_value, reg_2_value, reg_3_value; // register variables +unsigned int reg_0_value, reg_1_value, reg_2_value, reg_3_value; // register variables void setup() {