|
Textübertragung mit I2C
Aufgabe:
Ein erster Arduino (als I2C-Master betrieben) empfängt vom
seriellen Monitor Text (den der Benutzer eingibt).
Diesen Text sendet der Master über I2C an einen zweiten Arduino
(als Slave betrieben).
Der Slave gibt den Text auf seinem LCD-Shield aus.
/*
MASTER
Arduino1 (Master) sendet Text vom Serial
Monitor ueber I2C zu Arduino2 (Slave)
Matthias Harnisch: mhr83<at>gmx.de
www.arduinospielwiese.de
*/
#include <Wire.h>
void setup()
{
Serial.begin(9600);
Wire.begin();
}
void loop()
{
while(Serial.available())
{
char x[16];
x[16] = Serial.read();
Wire.beginTransmission(5);
Wire.write(x[16]);
Wire.endTransmission();
}
}
/*
SLAVE
Arduino1 (Master) sendet Text
vom Serial
Monitor ueber I2C zu Arduino2 (Slave)
Matthias Harnisch: mhr83<at>gmx.de
www.arduinospielwiese.de
*/
#include <Wire.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);
void setup()
{
lcd.clear();
lcd.begin(16,
2);
lcd.setCursor(0,0);
Wire.begin(5);
Wire.onReceive(receiveEvent);
}
void loop()
{
}
void receiveEvent(int howMany)
{
while(Wire.available())
{
char x[16];
x[16] =
Wire.read();
lcd.print(x[16]);
if(x[16] == '#')
//wird eine "#" gesendet, loescht dies das LCD
{
lcd.clear();
}
}
}
|