• Die Forumsregeln und Nutzungsbedingungen findet ihr in der Navbar unter Impressum !
    Bitte unbedingt beachten!
    Wie überall im Leben gibt es Spielregeln, so auch hier!
    Die Datenschutzerklärung zum DSGVO findet ihr ebenfalls in der Navbar unter Datenschutzerklärung !
    Hinweis nach DSGVO :
    Es ist hier keinerlei Angabe erforderlich. Alle Angaben in diesem Bereich sind öffentlich sichtbar und werden freiwillig gemacht. Mit einem Eintrag in diesem Bereich erkenne ich dieses an, und bestätige die Datenschutzerklärung zur DSGVO für das Forum gelesen zu haben.

    Danke
  • Hallo Gast, beschränke dich hier bitte auf den Bereich der Elektronik. Die Fahrzeuge oder Gebäude, wo diese Elektronik eingebaut wird bitte in dem passenden Fachbereiich behandeln. Auch wenn Teile des Projektes dadurch im Forum doppelt vorhanden sind! Danke.

Arduino Realistische Blinkersteuerung - Anfängerprojekt - Hilfe benötigt!

Jettaheizer

VIP Unterstützt modelltruck.net 2021
Registriert
21.10.2016
Beiträge
1.191
Hallo Leute,

ich habe vor einiger Zeit von einem Freund einen Arduino Nano geschenkt bekommen. Bisher habe ich noch nichts weiter damit angestellt.
Jetzt kam mir die Idee, eine realistische Blinkersteuerung darauf zu programmieren, weil ich mir dachte, daß das ein schönes Projekt sei, um in die Programmierung von Microcontrollern einzusteigen. In welches Modell ich das dann nachher einbaue (es stehen zwei zur Auswahl), weiß ich noch nicht. Erstmal muß es funktionieren.
Da ich aber bisher von Arduinos genau NULL Ahnung habe, benötige ich dabei ein wenig Hilfe.

Zum Projekt: es gibt ja Beleuchtungsmodule für RC-Modelle in allen Preisklassen. Was mich bei denen, die ich bisher kennengelernt habe, immer gestört hat, war die Blinkeransteuerung. Bei jeder Lenkbewegung blinkt das Modell in die entsprechende Richtung, was natürlich völliger Blödsinn ist. Weiterhin schalten viele Module bei einigen Sekunden Stillstand automatisch den Warnblinker ein, was ebenso unsinnig ist.
Ich möchte jetzt eine Blinkersteuerung programmieren, bei der ich mit dem "Blinkerhebel" (Taster an der Fernsteuerung) den gewünschten Richtungsblinker einschalte, der dann von der Lenkung wieder zurückgesetzt wird.
Als Beispiel: ich möchte mit meinem Modell rechts abbiegen. Ich betätige den Taster für "Blinker rechts". Das Modul blinkt rechts. Lenke ich jetzt nur nach links, passiert gar nichts, der Blinker rechts blinkt fröhlich weiter. Lenke ich nach rechts, passiert auch erst mal noch nichts, lenke ich jedoch über einen gewissen Lenkausschlag hinaus (sagen wir mal 20%) und dann wieder zurück, soll der Blinker ausgeschaltet werden.
Der Richtungsblinker nach links soll natürlich analog dazu genauso funktionieren.
Also genau so, wie es in jedem Auto ist.

Folgende Punkte stehen also im Lastenheft:

1.: ich benötige einen Analogeingang für den "Blinkerhebel"
2.: ich benötige einen Analogeingang, der parallel zum Lenkservo angeschlossen wird
3.: ich muß Schwellenwerte programmieren (für den Lenkausschlag und für das Einschalten des jeweiligen Richtungsblinkers)
4.: ich muß Flanken programmieren (für die Rücksetzung des Blinkers bei entsprechender Lenkbewegung)
5.: ich muß zwei digitale Ausgänge programmieren (Blinker rechts/links)
6.: ich muß einen Blinker programmieren

In einem späteren Schritt wird dann vielleicht noch ein Warnblinker dazu kommen, aber zunächst soll es nur um den Richtungsblinker gehen.

Jetzt meine ersten Fragen:

- hab ich in meinem Lastenheft etwas wichtiges vergessen oder einen Denkfehler?
- wie kann ich die Servosignale (PWM) im Arduino als Analogwerte verarbeiten? Benötige ich dazu noch ein anderes Modul oder eine besondere Anschaltung?
- kann ich den Arduino über den Empfänger (also über eine der Servoleitungen) mit Spannung versorgen oder benötige ich eine separate Stromversorgung?

Gruß,
Franz

Noch ein kleiner Nachtrag: vielleicht gibt es entsprechende fertige Module schon oder es hat schon einmal jemand so etwas programmiert. Tut hier aber nichts zur Sache, mir geht es ja hier in erster Linie um den Lerneffekt für mich.
 
Hallo Winni,

Du hast Recht, eine analoge Funktion hat der "Blinkerhebel" nicht, allerdings wird auch da ein Analogwert in Form des PWM-Signals verarbeitet. Oder habe ich da einen Denkfehler?

Was deinen Link betrifft, werde ich da gerne mal reinschauen, aber im Grunde möchte ich mir alles selbst erarbeiten. Ich will ja was dabei lernen und nicht nur anderer Leute Ideen abtippen.

Gruß,
Franz
 
Hallo Franz,
ich denke die PWM Signale per Analogeingang einzubinden ist ein unschöner Ansatz. Die Pulse dürften viel zu kurz sein, als dass du zuverlässige Werte bekommst. Du solltest das Signal nutzen wie es ist und die Pulse messen. Bei nur 2 Kanälen und einem kleinen Programm könntest du dir die Arduinofunktion "pulseIn()" anschauen, die kann alles was du brauchst. Ansonsten kannst du natürlich auch über Interrupts die Zeit stoppen, das ist bei 2 Kanälen und dem Nano auch kein Problem.
Eine besondere Schaltung brauchst du nicht. Die Masse von Empfänger und Arduino müssen verbunden sein und dann einfach die Signalpins vom Empfänger an den Arduino anschließen
Zur Spannungsversorgung: Ob du den Arduino über den Empfänger versorgen kannst hängt von deinem Fahrtregler, bzw BEC Strom und Spannung ab. 7V solltest du schon haben, damit es zuverlässig funktioniert. Da der Onboard Spannungsregler aber schnell ziemlich warm wird und meistens für die Beleuchtung eh noch eine Transistorschaltung benötigt wird, gibt es von mir normalerweise einen 7805 und 2 Kondensatoren mit auf die Platine.
 
Hallo Franz,

ich habe hier einmal so ein Modul programmiert. Dort frage ich die Impulse vom Empfänger über Interrupts ab.

Bei den Beispielprogrammen musst du immer aufpassen für welchen Arduino sie geschrieben wurden, da können die Pinbelegungen nämlich abweichen!
Ich empfehle das Buch "Arduino für Einsteiger" ISBN 978-3-86899-232-8, das ist einfach geschrieben und doch lernt man viel. Einfach nur einen Code aus dem Internet laden und dann rumprobieren ohne einen blassen Schimmer ist zeitverschwendung. Ein gewisses Grundwissen benötigt man schon.
 

Servonaut
Zurück
Oben Unten