oh mein gott! ja, freilich. null volt werden ja auch benötigt! thx a lot! c Am 21.02.2012 um 18:38 schrieb Julian Schrittwieser:
Hm, was mir spontant einfällt - haben die beiden Arduinos ein gemeinsames Nullpotential? (am einfachsten den selben akku, das selbe Netzteil) Wenn nicht, könnte das erklären warum du nur wechselnden Unsinn empfängst. (alle angaben ohne Gewähr, so gut kenne ich mich auch nicht aus)
lg, Julian
2012/2/21 Christoph <info@kunst-und-raederwerk.de>:
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); }
_______________________________________________ Metalab mailing list Metalab@lists.metalab.at https://lists.metalab.at/mailman/listinfo/metalab
_______________________________________________ Metalab mailing list Metalab@lists.metalab.at https://lists.metalab.at/mailman/listinfo/metalab