//Master 1
#include <Wire.h>
int Pot_Pin = A0;
long Pot_Val = 0;
void setup()
{
Wire.begin();
Serial.begin(9600);
Serial.println("MAESTRO");
delay(200);
}
void loop()
{
Pot_Val = analogRead(Pot_Pin);
int pwm = map(Pot_Val,0, 1023, 0, 255); //Conversión
Wire.beginTransmission(9); // Transmitir a dispositivo 9
Serial.println(pwm);
Wire.write(pwm);
Wire.endTransmission(); // Dejar de transmitir
Wire.requestFrom(9, 6); // Solicitar 6 bytes a dispositivo 9
while (Wire.available())
{
char x = Wire.read(); // Convertir byte a caracter
Serial.print(x); // imprimir
}
delay(100);
}
//ESCLAVO
#include <Wire.h>
int ledPin = 11;
long x = 0;
void setup()
{
Serial.begin(9600);
Serial.println("ESCLAVO");
delay(200);
pinMode (ledPin, OUTPUT);
Wire.begin(9); //Dirección del esclavo
Wire.onReceive(receiveEvent);
Wire.onRequest(requestEvent);
}
void requestEvent()
{
Wire.write("Hola: ");
}
void receiveEvent(int bytes)
{
x = Wire.read(); // Leer caracter del I2C
}
void loop()
{
Serial.println(x);
analogWrite(ledPin, x);
delay(100);
}