[Metalab] need help with arduino
Andreas Fleckl
andreas.fleckl at keisanki.net
Wed Feb 22 13:31:59 CET 2012
http://www.laberslab.com/events/arduino/
On Tue, 2012-02-21 at 16:05 +0100, Christoph wrote:
> hallo gemeinde,
>
>
> ich baue gerade an einem projekt, in dem zwei arduinos miteinander
> kommunizieren sollen. der eine, am ort des geschehens, erfasst daten
> und schaltet schalter, der andere ist remote, er erhält die daten und
> befielt, was der andere tun soll - per zweidrahtleitung.
>
>
> weil urumständlich, immer die zweidrahtleitung abstecken zum
> sketch-upload, und damit man sehen kann, was passiert, arbeite ich mit
> der SoftwareSerial-Library, wo andere pins zur kommunikation genutzt
> werden können als pin0 und pin1
>
>
> ich habe alles abgesteckt um nur die kommunikation in den griff zu
> bekommen, zwei ganz einfache patches - aber es funktioniert nicht.
>
>
> das empfänger-borad empfängt mal nix, mal ein und dann auch mal zwei
> bytes, und immer unfug.
> mit mySerial.print genauso wie mySerial.write,
> mit wie ohne Serial Monitor,
> 9600baud genauso wie mit 2400baud,
> zweidrahtleitung: 18cm
>
>
> was ist mein problem?
> verzweifelt sich christoph
>
>
>
>
>
>
>
>
> der Serial Monitor sagt:
>
>
>
> I receive: ÿ
> I receive: ÿ
> I receive: õ
> I receive: A
> I receive:
> I receive: ó
> I receive: ]
> I receive: Ï
> I receive: ÿ
> I receive: W
> I receive: A
> I receive: ß
> I receive: ÿ
> I receive: Á
> I receive:
> I receive: ÿ
> I receive: ý
> I receive: A
> I receive: ß
> I receive: ÿ
> I receive: A
> I receive: ï
> I receive: ÿ
>
>
>
>
> ein board sendet alle 2sec ein "A"
>
>
> #include <SoftwareSerial.h>
>
>
> SoftwareSerial mySerial(6, 7);
>
>
> void setup()
> {
> pinMode(13, OUTPUT);
>
>
> Serial.begin(9600);
> mySerial.begin(9600);
> }
>
>
> void loop() // run over and over
> {
> digitalWrite(13, HIGH);
>
>
> // mySerial.print('A');
> // mySerial.print("A");
> mySerial.write(65);
>
>
> delay(200);
>
>
> digitalWrite(13, LOW);
>
>
> delay(1800);
> }
>
>
>
>
> das andere board zeigt an was es empfängt:
>
>
> #include <SoftwareSerial.h>
>
> SoftwareSerial mySerial(10, 11);
>
> char myChar;
>
> void setup()
> {
> pinMode(2, OUTPUT);
> pinMode(3, OUTPUT);
> pinMode(4, OUTPUT);
> pinMode(5, OUTPUT);
> pinMode(6, OUTPUT);
> pinMode(7, OUTPUT);
> pinMode(8, OUTPUT);
> pinMode(9, OUTPUT);
>
> pinMode(13, OUTPUT);
>
>
> // Serial.begin(9600);
>
> mySerial.begin(9600);
> // mySerial.listen();
> }
>
> void loop()
> {
> if (mySerial.available()) {
> myChar = mySerial.read();
>
> // Serial.print("I receive: ");
> // Serial.println(myChar);
>
> digitalWrite(2, bitRead(myChar, 0));
> digitalWrite(3, bitRead(myChar, 1));
> digitalWrite(4, bitRead(myChar, 2));
> digitalWrite(5, bitRead(myChar, 3));
> digitalWrite(6, bitRead(myChar, 4));
> digitalWrite(7, bitRead(myChar, 5));
> digitalWrite(8, bitRead(myChar, 6));
> digitalWrite(9, bitRead(myChar, 7));
>
> digitalWrite(13, HIGH);
> }
> delay(200);
>
> digitalWrite(2, LOW);
> digitalWrite(3, LOW);
> digitalWrite(4, LOW);
> digitalWrite(5, LOW);
> digitalWrite(6, LOW);
> digitalWrite(7, LOW);
> digitalWrite(8, LOW);
> digitalWrite(9, LOW);
>
> digitalWrite(13, LOW);
>
>
> delay(50);
> }
>
>
>
>
>
>
More information about the Metalab
mailing list