Hey,
ich bin gerade ein wenig am ausprobieren, was der Arduino so alles kann und bin auf folgendes Beispiel gestoßen: klick Hier
Ich habe den Code für die Arduino Software 1.0.4 angepasst und folgenden Code anschließend übertragen:
Master:
//********** Master *************
#include <Wire.h>
int POTI=A0;
int LED1=6;
int LED2=13;
int WERT;
byte WERT2=0;
void setup()
{
pinMode(POTI,INPUT);
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
Wire.begin();
Serial.begin(9600);
}
void loop()
{
WERT=digitalRead(POTI);
digitalWrite(LED1,WERT);
Wire.beginTransmission(4);
delay(10);
Wire.write(WERT);
delay(10);
Wire.endTransmission();
delay(10);
digitalWrite(LED2,LOW);
Wire.requestFrom(4, 1);
while(Wire.available()==0){}
WERT2=Wire.read();
if(WERT2==99)
{
digitalWrite(LED2,HIGH);
delay(300);
digitalWrite(LED2,LOW);
}
delay(500);
digitalWrite(LED2,HIGH);
delay(50);
digitalWrite(LED2,LOW);
Serial.print("Wert1:");
Serial.print(WERT);
Serial.print("Wert2:");
Serial.println(WERT2);
}
Slave:
//********** Slave *************
#include <Wire.h>
int LED=6;
int WERT=0;
void setup()
{
pinMode(LED,OUTPUT);
Wire.begin(4);
Wire.onReceive(LESEN);
// Wire.write(SCHREIBEN);
}
void loop()
{
delay(100);
}
void LESEN(int EMPFANGEN)
{
WERT=Wire.read();
delay(100);
digitalWrite(LED,WERT);
SCHREIBEN;
}
void SCHREIBEN()
{
Wire.write(99);
}
Beim Master habe ich den Code um eine Serielle Ausgabe erweitert um evtl. zu sehen, was das Board so alles übermittelt. Nur da kam nix raus. Ich habe auf den Analogen Eingang ein Taster gepackt und deshalb digitalRead raus gemacht. Also nur als Randinfo. Dadrüber hinaus habe ich statt den PWM Wert der LED verändern zu lassen, einfach die LED ein und ausschalten lassen.
Sieht jemand evtl. ein Fehler in meinen Überlegungen oder so? Bin über jede Hilfe dankbar.
Michael