Hi all!
I am trying to make a complicated I2C project where it involves changing a loop of the LED's by using a sound sensor. But for me to be able to do that, I should do a simpler project first.
I tried to create a simple sound sensitive lights but it seems that the data isn't being passed to the Slave board.
If there is an error on my code, please let me know. Thank you!
Here is the Master's code:
#include <Wire.h>
int DA = A0; // Pin for Analog Output
int sensorvalue = 0;
void setup() {
Serial.begin(9600);
Wire.begin();
}
void loop() {
sensorvalue = analogRead(DA);
byte MasterSend = map(sensorvalue,0,1023,0,127);
Serial.print("Analog: ");
Serial.println(sensorvalue);
Wire.beginTransmission(8);
Wire.write(MasterSend);
Wire.endTransmission();
}
And here's the Slave's code:
#include <Wire.h>
byte SlaveReceived = 0;
int threshold = 20 ;
void setup() {
Wire.begin(8);
Wire.onReceive(receiveEvent);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}
void loop() {
if (SlaveReceived >= threshold) {
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
}
else {
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
}
}
void receiveEvent() {
Wire.read();
}