[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