Lichtregelung mithilfe von mikrocontroller aufbauen

Gast #3841363
Lesenswert?
• ▲
▼
Hallo Community,

bin erst seid kurzem auf dem Gebiet Mikrocontroller unterwegs und 
brauche Hilfe.


Zu meinem Problem:

Die Lichtregelung soll so funktionieren:

Sollwert (SW) soll vorgegeben werden. Ein analoger Lichtsensor erfasst 
das Licht einer LED-Beleuchtung. Ermittelt hiermit einen Istwert (ISTW). 
Durch bilden eines Zwischenwertes (e) soll dann die Soll-Ist-Abweichung 
errechnet werden. Dieser Wert wird dann mit dem Stellwert (Stellw) 
addiert und an die Beleuchtung gesendet.

----------------------------------------------------------
Mein Ansatz wäre wie folgt: ( in C geschrieben)

e = SW - ISTW;
Stellw = Stellw + e;

----------------------------------------------------------


MFG Patrick
Gast #3841466
Lesenswert?
• ▲
▼
@Wolfgang: Probiert hab ich es, jedoch blieb mein Erfolg aus.

Mein Sensor hat einen Wertebereich von 0... 4095 und bringt mir auch 
Werte abhängig von der Helligkeit mit der er bestrahlt wird.

Sollwert geb ich als Fixwert (z.B. 2000) vor.



Wenn ich den Code in mein Hauptprogramm einfüge wird der Stellwert immer 
so groß wie der Sollwert, allerdings hat der Sensor (ISTW) gar keinen 
Einfluss.
D.h. wenn ich meine Hand zwischen Beleuchtung und Sensor halte verändert 
sich die Helligkeit der Beleuchtung nicht.


@Marc: Definiert sind alle als int-Zahlen.
Gast #3841557
Lesenswert?
• ▲
▼
Patrick schrieb:

> Mein Ansatz wäre wie folgt: ( in C geschrieben)
>
> e = SW - ISTW;
> Stellw = Stellw + e;

Nun, da fehlt nur nuch eine Kleinigkeit, dann hast du erstmal einen 
klassischen P-Regler gebaut.

Wobei man diese Kleinigkeit auch implizit in der Generierung des ISTW 
verstecken kann. Bloß ist es sehr viel handlicher, das Verhalten der 
Regelung anpassen zu können, ohne jedesmal die Signalaufbereitung 
anfassen zu müssen. Deswegen besser diese Variante mit der bewußten 
Kleinigkeit:

> e = SW - ISTW;
> Stellw = Stellw + Kp * e;

Die hat dann nämlich noch den Vorteil, sie leicht zu einem vollständigen 
PID-Regler aufrüsten zu können.
#3841759
Lesenswert?
• ▲
▼
@c-hater (Gast):

in den zitierten Codefetzen müsste man aber nicht Kp ergänzen, sondern 
Ki, mit Stellw = Stellw + e wird ja bei jedem Rechendurchlauf 
aufaddiert, das ist ein reiner I-Regler.

P-Regler sieht so aus: Stellw = Kp * e

(Vorrausgesetzt, Stellw wird nicht an anderer Stelle im Programm, bei 
jedem Durchlauf, auf einen festen Wert gesetzt.)

Mit freundlichem Gruß - Martin
Gast #3842384
Lesenswert?
• ▲
▼
Der Stellwert wird im Programm fest vorgegeben.

Der Tipp mit Stellwert = Stellwert + kp * e werde ich testen.

Das Licht wird über ein Schaltnetzteil raelisiert, da eine Regelung mit 
PWM zum schwingen neigt.


Danke schonmals für die Tipps :D echt top
#3842429
Lesenswert?
• ▲
▼
Patrick schrieb:
> Der Stellwert wird im Programm fest vorgegeben.
>
> Der Tipp mit Stellwert = Stellwert + kp * e werde ich testen.
>
> Das Licht wird über ein Schaltnetzteil raelisiert, da eine Regelung mit
> PWM zum schwingen neigt.
>
>
> Danke schonmals für die Tipps :D echt top

Zeig mal dein Programm als ganzes.
Da liegt sicher noch mehr im argen.


Im übrigen kann man eine derartige Regelung, an die keine besonders 
hohen Ansprüche gestellt werden, auch nach dem Muster aufbauen:
1
  forever {
2
    wenn zu dunkel
3
      dann mach ein wenig heller
4

5
    wenn zu hell
6
      dann mach ein wenig dunkler
7
  }

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.