aboutsummaryrefslogtreecommitdiff
path: root/digital-driver/firmware/Master_Photoreactor_Controller/Master_Photoreactor_Controller.ino
blob: 8c2ffa4081ab166630dfcbd7abb4ce8b67452c65 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
////////////////////////////////////////////////////////////////////////////////////
//       Digital Photoreactor Controller Slave Program Controlled by I2C          //
//          Run this slave program on the Arduino Uno or Rasberry Pi.             //      
////////////////////////////////////////////////////////////////////////////////////

#include <Wire.h>

#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);
}