Go Down

Topic: Poti's und Servo's + XBEE Variablen senden und empfangen (Read 732 times) previous topic - next topic

xmike

Feb 23, 2013, 04:24 pm Last Edit: Feb 25, 2013, 08:29 pm by xmike Reason: 1
Hallo

Ich bin neu hier und habe ein Problem .
Ich habe einen Arduino UNO einen Arduino MEGA 2 XBEE (Serie 1).
Und möchte mehrere Poti am Arduino MEGA anschließen und über das XBEE Modul zum Arduino UNO senden und mehrere Servo Steuern .
Also mit Poti 1 Servo 1
     mit Poti 2 Servo 2
     mit Poti 3 Servo 3
      usw...  Steuern !
Einen Servo steuern war ja kein Problem !
Aber mehrere kommen bei mir nur ?????
Wie sende ich das der andere weis das ,das der eine und das der andere ist ?
Wie sage ich den Empfänger das das der eine und das der andere ist ?

Mein Cod der mit einen Servo geht seiht so aus !
Sender:
Code: [Select]

int potPin = 0;

void setup()
{
 Serial.begin(9600);
}

void loop()
{
 int potVal = analogRead(potPin);
 byte servoVal = map(potVal,0,1023,0,179);
 
 Serial.write(servoVal);
 delay(100);
}
   
Empfänger :
Code: [Select]

#include <Servo.h>

Servo myservo;

void setup()
{
 Serial.begin(9600);
 myservo.attach(9);
}

void loop()
{
 if(Serial.available()>0)
 {
   byte servoAng=Serial.read();
   myservo.write(servoAng);
 }
}



M.f.G. Michael

Doc_Arduino

Hallo,

so wie Du 3 Analogeingänge abfragen mußt, mußt Du auch diese 3 angepaßten Variablen für sich übertragen und wieder ausgeben.



Tschau
Doc Arduino

xmike

Hallo

Aber wie mache ich das ?


Doc_Arduino

Hallo,

sowas in der Art. Alle Potis abfragen und ausgeben. Okay, geht mit einer Funktion noch eleganter, aber das Grundschema stimmt und erstmal verständlicher zum verstehen was wie abläuft. Ich weis nur nicht wie die XBEE Übertragung funktioniert. Ob der Variablenname mit übertragen wird oder nicht. Ich glaube eher nicht. Bleibt ja eine serielle Übertragung nur mit anderer Methode. Dann müßte man beim Emfänger eine Empfangsschleife programmieren die 3 Werte aufnimmt und wieder in 3 Variablen schreibt. Und dann übergibt man die 3 Werte mit 3 myservo.write Aufrufen an den zugehörigen Servos aus.

Code: [Select]

int potPin_1 = 0;      // 1. Poti
int potPin_2 = 1;      // 2. Poti
int potPin_3 = 2;      // 3. Poti

void setup()
{
  Serial.begin(9600);       // RS232 einschalten und Baudrate 9600 festlegen
}

void loop()
{
  int potVal = analogRead(potPin_1);          // Abfrage 1. Poti
  byte servoVal_1 = map(potVal,0,1023,0,179); // Mapping und speicherung in 1. Variable

  int potVal = analogRead(potPin_2);          // Abfrage 2. Poti
  byte servoVal_2 = map(potVal,0,1023,0,179); // Mapping und speicherung in 2. Variable

  int potVal = analogRead(potPin_3);          // Abfrage 3. Poti
  byte servoVal_3 = map(potVal,0,1023,0,179); // Mapping und speicherung in 3. Variable
 
  Serial.write(servoVal_1);     // ÜBertragung der 1. Variable bzw. Servoposition
  Serial.write(servoVal_2);     // ÜBertragung der 2. Variable bzw. Servoposition
  Serial.write(servoVal_3);     // ÜBertragung der 3. Variable bzw. Servoposition
  delay(100);                 
}
Tschau
Doc Arduino

xmike

#4
Feb 25, 2013, 08:24 pm Last Edit: Feb 25, 2013, 08:30 pm by xmike Reason: 1
Hallo

Habe deinen Cod getestet !

Die  Variablenname hat er nicht gesendet !

Hat jemand eine Ahnung wie ich die  Variablen sende und empfange kann ?

M.f.g. Michael

Doc_Arduino

Hallo,

was ist denn passiert mit den Servo's? Wenn Du den Code im Empfänger so gelassen hast, müßte zumindestens ein Servo auf alle 3 Potis reagiert haben? Bzw. hat ein Servo nur gezuckt weil er so schnell nicht alle 3 Potistellungen anfahren kann so schnell wie der µC rechnet. Also nimm mal 2 Servoausgaben am Ende weg. Ein Tipp. Bau das erstmal mit nur einem µC auf, alle Potis und Servos an einen µC. Dann Code schreiben und testen. Danach wird erweitert auf XBEE Übertragung.
Tschau
Doc Arduino

Go Up