PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Modellbau Fhrtenregler mit Arduino steuern



Sebastian Meyer
16.02.2012, 23:19
Hallo, ich hätte mal gern für Blöde erklärt bekommen, wie ich mit meinem Arduino einen Normalen modellbauregler angesteuert bekomme :)

Dankeschön

Bashey

*edit:

rotes kabel vom Regler: 5V gelbes kabel: Digitalpin 9 (wegen PWM) schwarzes kabel: Gnd

ePyx
17.02.2012, 06:04
Reicht dir ein Thread nicht ? Unterlasse bitte das Crossposting!.

Mehr als Links wirst du hier von niemanden bekommen. Wir versuchen dir höchstens zu helfen, aber werden dir keinen Code schreiben.

Sebastian Meyer
17.02.2012, 07:11
Boa! ich will höchtens nen kleinen Beispielcode! mänsch ey -,-

Weil ich probier doch schon die ganze zeit aber das will einfach nicht hinhauen!

Auserdem: Hatte mein anderes Thema nicht de´n Titel:Arduino duemilanove und Blackberry Curve 8900 ?

Na, was is den da Crossposting?!

Sei mal netter, ich bin auch nur ein Mensch!

*edit:

Auserdem hab ich den neuen Thread gestartet damit mir auch mal andere Leute helfen!

ihr verliert gerade echt nen Member! wegen dir ;)

Arkon
17.02.2012, 07:53
Ich kann keinen Code geben, aber man steuert einen Fahrtenregler an, wie man auch ein Servo ansteuert. Die Signale, die der µC -egal welcher Art- liefern muss, sind identisch. Mit Beispielcode für Servos solltest du also auch den Fahrtenregler zum laufen bekommen.

Zu beachten ist, dass ein Fahrtenregler bei Einschalten eine bestimmte Stellung der "Knüppel" am RC-Sender erwartet. Damit soll verhindert werden, dass beim Einschalten der Motor schon hoch dreht. Je nach Art des Reglers ist diese Position bei "Knüppel Mitte" (bei Reglern die in RC-Autos verwendet werden da diese auch rückwärts drehen) oder "Knüppel unten oder oben(je nach Geschmack)" (bei Reglern für Flugzeuge/Hubschrauber, die in der Luft keinen Rückwärtsgang brauchen ;) )
Meistens wird die korrekte Position durch einen Signalton bestätigt und die LEDs, die auf den meisten Reglern verbaut sind, ändern das Blinkverhalten.

Geistesblitz
17.02.2012, 08:03
ihr verliert gerade echt nen Member! wegen dir

Ist kein Grund, hier so abzugehen. ePyx hat dich darauf hingewiesen und es wäre intelligenter gewesen, ihm sachlich zu sagen, warum du einen neuen Thread aufgemacht hast, als "Ey, man, Altah" an den Kopf zu knallen. Einen Member zu verlieren würde hier denk ich kaum einem auffallen, du aber suchst nach Hilfe. Mit einem anständigen Ton klappt es auch ;)

Sebastian Meyer
17.02.2012, 13:41
Mit einem anständigen Ton klappt es auch ;)

Ich habs die ganze Zeit damit verucht, aber i-wan nervt einen sowas auch -,-

Arkon
17.02.2012, 13:53
In dem anderen Thema ging es ja auch schon lang und breit um dieses Problem. Daher ist der Vorwurf des Crossposting nicht sooo weit hergehohlt.

Konntest du mit meinen Tipps was anfangen? Wie gesagt sollte ein Programm zum Ansteuern von Servos funktionieren. Bevor der Regler reagiert muss aber erstmal eine "Initialposition" angefahren werden (entweder Mitte oder Anschlag unten)

Geistesblitz
17.02.2012, 13:58
Trotzdem sollte dir klar sein, dass dir hier niemand etwas entwickeln wird. Ist eigentlich auch unmöglich, wenn man nicht die Teile, die du hast, bei sich liegen hat.
Für einen Fahrtenregler brauchst du eine Versorgungsspannung für den Motor (vom Motor abhängig) und das Steuersignal, was eine spezielle Form von PWM ist, siehe auch hier (http://www.rn-wissen.de/index.php/Servos). Da findest du sogar Beispielcode. Wichtig wird es jedenfalls dafür, sich mit Timern auseinanderzusetzen.

radbruch
17.02.2012, 14:19
Hallo


Trotzdem sollte dir klar sein, dass dir hier niemand etwas entwickeln wird.Das stimmt so ja nicht. Projekte die mich selbst interessieren greife ich auch ab und zu mal auf und helfe bei der Entwicklung.

Zum Topic kann ich eigentlich nur sagen, dass alles wichtige bereits gesagt ist. Der Regler möchte zum richtigen Zeitpunkt ein Servosignal. Wie man das bereitstellt kann man sich recht einfach ergoogeln, weil sowohl das verwendete Board wie auch die Fahrtenregler im Web prima dokumentiert sind:

http://www.google.de/search?q=+Fahrtenregler+mit+Arduino+ansteuern

Gruß

mic

Geistesblitz
17.02.2012, 15:29
Das stimmt so ja nicht. Projekte die mich selbst interessieren greife ich auch ab und zu mal auf und helfe bei der Entwicklung.

Ja gut, Ausnahmen bestätigen die Regel. Allerdings sieht wohl niemand so recht ein, jemandem anderem die Arbeit abzunehmen, den er noch nichtmal persönlich kennt.

Sebastian Meyer
17.02.2012, 17:31
Ja also, ich will nicht, das ir jemand die Arbeit abnimmt ;) ich wollte den beispielcode, damit ich das besser verstehen und nachvollziehen kann ;)

So, und jetzt hab ich den gesammten Freitag nachmittag damit verbracht ständig wieder neue programme zu schreiben, einfach nur, weil der Regler son behindertes Setup hat :S und ich habs immernochnicht hingkriegt -,-

Aber anscheinend hat er i-ein problem mit den Befehlen, er scheint die nicht richtig anzunehmen... ://

Geistesblitz
17.02.2012, 19:05
Dann beschreib doch mal, was du ihm für Befehle schickst und wie dein Aufbau derzeit aussieht. Stell auch mal deinen Code rein, dann sieht man vll. schon, was falsch läuft.

Sebastian Meyer
04.03.2012, 19:59
21762
21761

So, mein Aufbau ;)

Folgenden Code hab ich fertig:


#include <Servo.h>
Servo myservo;

int kanal1 = 2;
int kanal2 = 3;
int kanal3 = 4;
int kanal4 = 5;
int potpin =4;
int val;

void setup()
{
pinMode(kanal1, INPUT);
pinMode(kanal2, INPUT);
pinMode(kanal3, INPUT);
pinMode(kanal4, INPUT);
digitalWrite(kanal1, HIGH);
digitalWrite(kanal2, HIGH);
digitalWrite(kanal3, HIGH);
digitalWrite(kanal4, HIGH);
myservo.attach(9);
}

void loop()
{
int val = digitalRead(kanal1);
if (val == LOW) {
val = analogRead(potpin);
val = map(val, 0, 1023, 0, 179);
myservo.write(val);
delay(15);
}

else {
myservo.write(90);
delay(15);
}

val = digitalRead(kanal2);
if (val == LOW) {
val = analogRead(potpin);
val = map(val, 0, 1023, 0, 179);
myservo.write(val);
delay(15);
}

else { }

val = digitalRead(kanal3);
if (val == LOW) {
val = analogRead(potpin);
val = map(val, 0, 1023, 0, 179);
myservo.write(val);
delay(15);
}

else { }

val = digitalRead(kanal4);
if (val == LOW) {
val = analogRead(potpin);
val = map(val, 0, 1023, 0, 179);
myservo.write(val);
delay(15);
}

else { }

}


Das Problem ist jetzt aber, das der Motor stockt nicht, wen ich den einen Hebel (kanal1) nach vorne drücke, aber wenn ich den nach hinten oder einen der anderen betätige stockt der motor, weil er ja immer wieder den befehl von kriegt, das er auf die nullposition gehen soll, weil kanal1 ja nicht LOW ist -,-"


Weiss jemand wie ich das löse? :S

Wäre NEtt :)