[Metalab] need help with arduino

Christoph info at kunst-und-raederwerk.de
Tue Feb 21 16:05:48 CET 2012


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);
}


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.metalab.at/pipermail/metalab/attachments/20120221/ed658224/attachment.html>


More information about the Metalab mailing list