Pages: [1]   Go Down
Author Topic: RC-Integration  (Read 1070 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 12
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi, bin ziemlich neu was Arduino programierung anbelangt und möchte mit einem RC-Empfänger über einen Kippschalter an der Funksteuerung eine Funktion über das Arduino ausführen. Wer kann helfen? Bin ein wenig verwirrt, mit welchem befehl ich da arbeiten muss, wre THRESHOLD eine Alternative?
 
Logged

Danke

Michael ...

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 266
Posts: 21671
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Welche Daten gibt der RC-Empfänge für die Betätigung eines Kippschalter an der Funksteuerung aus?
Grüße Uwe
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 12
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Das ist ein PWM Signal...
Logged

Danke

Michael ...

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 266
Posts: 21671
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

[erstaunt]ein PWM-Signal für einen Kippschalter?[/erstaunt]
Welches Tastverhältnis, Frequenz?
Grüße Uwe
Logged

Chemnitz/Saxony/Germany
Offline Offline
Full Member
***
Karma: 0
Posts: 107
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

[erstaunt]ein PWM-Signal für einen Kippschalter?[/erstaunt]

Bei Deinem Fachwissen stellt sich mir grad die Frage? War das sarkastisch gemeint?

Prinzipiell sind bei den meisten RC-Anlagen alle Kanäle gleich ausgelegt, als PWM-Signal. Damit kann man optionale Kanäle beliebig aufrüsten. Entweder mit nem Poti für nen weiteren Proportionalkanal, oder eben nen Kippschalter für nen Schaltkanal. Im Endeffekt schaltet der dann auch nur zwei Widerstandswerte, die das PWM-Signal steuern.

Wobei ja in den modernen Versionen dieser Dinger im Wesentlichen auch alles von nem kleinen Rechner geregelt wird.
Logged

Dubai, UAE
Offline Offline
Edison Member
*
Karma: 22
Posts: 1675
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

English but might help -

http://rcarduino.blogspot.com/2012/01/how-to-read-rc-receiver-with.html

Duane B
Logged


Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 266
Posts: 21671
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

[erstaunt]ein PWM-Signal für einen Kippschalter?[/erstaunt]

Bei Deinem Fachwissen stellt sich mir grad die Frage? War das sarkastisch gemeint?

Prinzipiell sind bei den meisten RC-Anlagen alle Kanäle gleich ausgelegt, als PWM-Signal. Damit kann man optionale Kanäle beliebig aufrüsten. Entweder mit nem Poti für nen weiteren Proportionalkanal, oder eben nen Kippschalter für nen Schaltkanal. Im Endeffekt schaltet der dann auch nur zwei Widerstandswerte, die das PWM-Signal steuern.

Wobei ja in den modernen Versionen dieser Dinger im Wesentlichen auch alles von nem kleinen Rechner geregelt wird.

Danke für Deine Meinung über mein Fachwissen. Es ist aber nicht allumfassend.  smiley-wink smiley-wink

Soweit ich weiß sind die Ausgangssignale am RC-Empfänger keine PWM sondern PPM moduliert ( 1 Impuls von 1mS bis 2mS Länge alle 20mS wiederholt).

Wenn das das Signal ist dann kann Arduino es ganz einfach mit der Funktion pulseIn() erfassen. http://arduino.cc/en/Reference/PulseIn

Grüße Uwe
Logged

Chemnitz/Saxony/Germany
Offline Offline
Full Member
***
Karma: 0
Posts: 107
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Soweit ich weiß sind die Ausgangssignale am RC-Empfänger keine PWM sondern PPM moduliert ( 1 Impuls von 1mS bis 2mS Länge alle 20mS wiederholt).

Grmpf. Stimmt natürlich...
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 266
Posts: 21671
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

[erstaunt]ein PWM-Signal für einen Kippschalter?[/erstaunt]
Bei Deinem Fachwissen stellt sich mir grad die Frage? War das sarkastisch gemeint?

Nein, war nur erstaunt.
Grüße Uwe
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 12
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Super, danke euch schon mal für die Antworten, aber mit diesem "pulsIn" komme ich gar nicht klar,

irgendwie weiß ich nicht was ich mit "duration" anfangen soll. bzw. was es bedeuten soll, also nicht die Übersetzung sondern die Anwendung. Ich hab da mal rumgespielt und versucht nen Code zu schreiben, aber bekomme immer einen Fehler bei "duration"

/*
 RC-ON
 
 */
 
int led = 8;  // LED auf Pin8
int rc = 12;  // RC_In von Kanal 6


void setup() {               
  //Definition der Ein- und Ausgänge
  pinMode(led, OUTPUT);  // LED Ausgang
  pinMode(rc, INPUT);    // RC Eingang
}

// Start der Routine
void loop() {
   duration = pulseIn(rc, HIGH);
    digitalWrite(led, HIGH);   // Schatet die LED an
}
Logged

Danke

Michael ...

Germany
Offline Offline
Faraday Member
**
Karma: 59
Posts: 3060
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
bekomme immer einen Fehler bei "duration"
Wenn du nicht verrätst, welchen Fehler du bekommst, darf man dir eigentlich nicht helfen.

Aber fragen kann ich ja mal:

Hast du pulseIn mal nachgesehen ? http://arduino.cc/en/Reference/PulseIn
Könnte die Fehlermeldung bedeuten, dass du die Variable namens "duration" nicht deklariert hast ?

Siehst du die Zeile
unsigned long duration;
?

Was willst du nun mit der Pulsdauer anfangen ?

Sind das schon genug Fragen ?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 12
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Da hast du recht, zu viele offene Fragen,
>Wenn du nicht verrätst, welchen Fehler du bekommst, darf man dir eigentlich nicht helfen.

Dazu bekomme ich die Fehlermeldung "duratin" was not declared in this scope.

>Was willst du nun mit der Pulsdauer anfangen ?

ich möchte eine Led ansprechen erst einmal.

>Siehst du die Zeile
unsigned long duration;

Ja aber weiß nicht so genau was ich damit anfangen soll?


Logged

Danke

Michael ...

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 266
Posts: 21671
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich rate Dir mal die Fernsteuerung für eine Woche in die Ecke zu legen und ein Tutorial oder ein BeginnerBuch über Arduino großteils durchzuarbeiten.
Wir können Dir weiterhelfen aber die Grund-Grund-Regeln der C-Programmierung solltest Du schon kennen.
zB: http://arduino.cc/en/Tutorial/HomePage

Zu Deinem Problem:
Eine Variabile muß deklariert werden bevor Du sie benutzt.
mit "int led = 8;" machst Du es ja auch.

"duration = pulseIn(rc, HIGH);"
gibt Dir je nach Schalterstellung eine Zahl zwischen 1000 und 2000 zurück.
Du mußt den Wert kontrollieren und dementsprechend die LED ein oder Ausschalten.

if (duration>1500)
schalte LED ein
else
schalte LED aus.

Grüße Uwe
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 12
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Danke!!!!
Logged

Danke

Michael ...

Pages: [1]   Go Up
Jump to: