Forum: Mikrocontroller und Digitale Elektronik Fahrregler mit AVR und automatisches SETUP?


von Axel Rühl (Gast)


Lesenswert?

In einem anderen Thread
http://www.mikrocontroller.net/forum/read-1-83948.html#84679
habe ich schon angekündigt, meine Frage in einem separaten Thread zu
stellen, was ich jetzt machen möchte.

Wer, wie ich, die Threads hier verfolgt, weiß ja mittlerweile, dass ich
einen Fahrregler(so einen ganz kleinen) mit einem Mega8 gebaut habe.
Der funktionierte bisher auch immer ohne Beanstandungen.
Nur jetzt bei 'nem kumpel von mir tanzt er etwas "aus der Reihe".
Nachdem nun Störeinflüsse weitgehend eliminiert worden sind, stellt
sich heraus, dass mein statisch angelegter regellbereich, also die
Motorkennlinie, nicht mit den Bedürnissen seiner
Computerfernsteueranlage gerecht wird.*lufthol*

Konkret:
Ich müsste neben dem Mittelabgleich auch den Max- und den Minimalwert
erfassen und als eckpunkte für meine Kennlinienberechnung verwenden.
Hat jemand sowas schon mal gemacht?
Nach dem Start ermittel ich die Neutralstellung des Knüppels , was  mit
den ersten 32 Paketen mache, die einfliegen (durchschnitt berechnen:
aufaddieren und 6xrechts schieben). Wie bringe ich die Kiste jetzt
dazu, in den SETUP-Mode zu gehen (den ich ja vorher nicht brauchte),
ohne einen Knopf drücken zu müssen. Minimale Impulsbreite und maximale
Impulsbreite abzulegen ist auch klar. dann rechnen wie o~o.

(Max-Min)/Fahrstufen(z.B.128) = kleinste schrittweite zwischen den
Fahrstufen.
motorpower 100%  =  MAX = 255 (8bit PWM)
motorpower 0%    = (MAX-MIN)/2 = 0
motorpower -100% =  MIN = 255
ich gehe von einer linearen verteilung aus...
nun linear verteilen ;-((
und im SRAM ablegen und bereithalten ;-))

man hätte eben früher einsehen sollen, das es was bringt, sich für
Mathe zu interessieren.

Aber abgesehen von meiner kleinen mathematische Schwäche bleibt noch
ernsthaft die Frage für mich, wann ich die SETUP-Routine als beendet
ansehen soll, bzw. den SETUP-Mode beende, ohne einen Knopf oder so
drücken zu müssen.

Herzlichen Dank
Mathemuffel
Axel

von Ingo (Gast)


Lesenswert?

Hallo Mathemuffel;  :grins:

Ich habe es so gemacht:
Wird der Regler gestartet, dann wird im EEPROM geprüft, ob an einer
bestimmten Stelle der Wert 0x00 steht. Ist das der Fall, dann werden
die Eckdaten aus dem EEPROM geladen.
Ist das nicht der Fall, dann geht der Regler ins Setup. Hier habe ich
drei LED´s (die benutze ich im Betrieb als "Statusanzeige") solange
die LED blink, hat ma Zeit den erforderlichen Wert am Sender
einzustellen. Wenn die entsprechende LED an ist, wird gemessen. Danach
blinkt die nächste LED und so weiter, bis alle Werte eingelesen sind.

Mitlerweile, habe ich aber eine Setuptaste eingebaut und übernehme die
Werte auf Tastendruck. Ich war es einfach leid immer solange zu warten
bis der µC der Meinung war er könnte mal einen Wert einlesen.

GRUSS
INGO
PS: Ich habe einen PIC benutzt   --SORRY --

von Henning (Gast)


Lesenswert?

man könnte mit einem 16bit timer einfach die impulse ausmessen. legt in
einem bereich der mitte die mittelstellung fest und mach bei jedem
reboot ein einlesen der maximalwerte. den erfasst man indem man die
maximalen 5 aufeinanderfollgenden signale oberhalb eines bestimmten
bereiches wählt.
die liegen dann irgendwo (von den Zahlenwerten her) und es wird eine
Tabelle im Ram errechnet. den PWM läst man dann die werte der Tabelle
ausgeben und ist somit ohne tasten und warten programmierbar.

hab mir aber bislang nur gedanken drüber gemacht. selbst programmiert
habe ich (ausschließlich für meine Fernstrg) nur im trockenen und das
mit festen werten.

den ersten fahrtenregler, den ich gemacht habe hatte noch keine
fehlererkennung und dergleichen. was natürlich in der böschung
endete...

im mom lasse ich einen sw-pwm mit rund 180 schritten laufen, der die
vom timer gemessenen signale ausgibt (ohne mittelstellung)

all zu weit bin ich also noch nicht, aber zum lampe dimmen reicht´s
schon...

von Henning (Gast)


Lesenswert?

@ingo
>PS: Ich habe einen PIC benutzt   --SORRY --
naja, wenigstens siehst du´s ein! ;-)

von Ingo (Gast)


Lesenswert?

@ Henning
SCHMEICHLER!!!!!!!!!!!!!!!!!!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.