blob: e87db8ddadc0c68dd6574225ac1686e7eb15890d (
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
41
|
#include <Wire.h>
#define I2C_SLAVE_ADDR 0x26 // I2C slave address (38, 0x26)
void setup()
{
pinMode(A4, OUTPUT);
pinMode(A5, OUTPUT);
// init the Wire object
Wire.begin();
// wait for slave to finish any init sequence
delay(2000);
Serial.begin(9600);
}
void loop()
{
for( int a=10; a<=255; a++ ){
//generate buffer containing data to send via I2C
uint8_t buf[1];
buf[0] = 255-a; // adjusting this byte changes fan speed. Can be adjusted from 0 to 256.
buf[1] = a; // adjusting this byte changes LED intensity. Can be adjusted from 0 to 256.
Serial.println(int(buf));
// 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(50);
}
}
|