From 84407fe580156dc12f4792c08ee42d70df6c4427 Mon Sep 17 00:00:00 2001 From: Blaise Thompson Date: Tue, 19 Jan 2021 10:53:07 -0600 Subject: restructure repository --- .../Master_Photoreactor_Controller.ino | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 digital-driver/firmware/Master_Photoreactor_Controller/Master_Photoreactor_Controller.ino (limited to 'digital-driver/firmware/Master_Photoreactor_Controller/Master_Photoreactor_Controller.ino') diff --git a/digital-driver/firmware/Master_Photoreactor_Controller/Master_Photoreactor_Controller.ino b/digital-driver/firmware/Master_Photoreactor_Controller/Master_Photoreactor_Controller.ino new file mode 100644 index 0000000..8c2ffa4 --- /dev/null +++ b/digital-driver/firmware/Master_Photoreactor_Controller/Master_Photoreactor_Controller.ino @@ -0,0 +1,40 @@ +//////////////////////////////////////////////////////////////////////////////////// +// Digital Photoreactor Controller Slave Program Controlled by I2C // +// Run this slave program on the Arduino Uno or Rasberry Pi. // +//////////////////////////////////////////////////////////////////////////////////// + +#include + +#define I2C_SLAVE_ADDR 0x26 // I2C slave address (38, 0x26) + +void setup() +{ + // init the Wire object + Wire.begin(); + + // wait for slave to finish any init sequence + delay(2000); +} + +void loop() +{ + + //generate buffer containing data to send via I2C + uint8_t buf[1]; + buf[0] = 25; // adjusting this byte changes fan speed. Can be adjusted from 0 to 256. + buf[1] = 1; // adjusting this byte changes LED intensity. Can be adjusted from 0 to 256. + + // send buffer + Wire.beginTransmission(I2C_SLAVE_ADDR); + Wire.write( buf, 2); + Wire.endTransmission(); + + // delay 20 milliseconds to accomodate slave onReceive() + delay(20); + + /////////////////////// WHY DO I NEED THIS PART?////////////////////////// + Wire.requestFrom(I2C_SLAVE_ADDR, 1); + + // delay 1 second so user can watch results + delay(1000); +} -- cgit v1.2.3