MezData-Logo Creative Commons License 322 Lösungen Button :ISP: Helligkeitssteuerung einer LED

(nach Abiaufgabe 85/86) Quelle: Bubbers

Die Helligkeit einer Leuchtdiode LED kann digital gesteuert werden, indem die Impulsdauer ti des periodischen digitalen Signals A verändert wird. Gewünscht sind 4 Helligkeitsstufen: dunkel bis hell. Die dazugehörigen Signalverläufe A0 bis A3 sind unten dargestellt. Geliefert werden diese Signale von einer Logik, der die Ausgänge Qa bis Qd eines Dezimalzählers und die beide Steuereingänge S1, S2 zugeführt werden.

Ablaufdiagramm

Zuordnung Schalterstellung S2,S1 - Ausgangssignal A

MODULE LEDhell
  "Helligkeitssteuerung einer LED
  "Die Schalter S1 und S2 steuerun in 4 Stufen 
  "die Helligkeit der LED an Pin 10
  "Alternativ: Geschwindigkeitssteuerung eines Gleichstrommotors
  "nach Abiaufgabe 85/86, Signalnamen wie in der Aufgabe

DECLARATIONS
  takt        PIN 11;                   "Takt vom Generator
  qa,qb,qc,qd NODE ISTYPE 'BUFFER,REG'; "Zaehlerausg‰nge
  a2,a1       NODE ISTYPE 'BUFFER,COM'; "Hilfs-Logikausg‰nge
  s2,s1       PIN 19,21;                "Steuereing‰nge f¸r Helligkeit
  a           PIN 10 ISTYPE'BUFFER,COM';  

  ctr = [qd,qc,qb,qa];

EQUATIONS

  when (ctr.q == 9) then ctr.d = 0            "Zaehler 0..9
                    else ctr.d = (ctr.q + 1);
  ctr.clk = takt;                             "Zaehlertakt

  when !s2 & !s1 then a = 0;             "Multiplexer f¸r die 
  when !s2 &  s1 then a = a1;            "Hilfssignale a1 und a2
  when  s2 & !s1 then a = a2;            "zur Helligkeitssteuerung
  when  s2 &  s1 then a = 1;

TRUTH_TABLE                              "Funktionstabelle
(ctr.q -> [a2,a1])                       "f¸r die Hilfssignale
    0  -> [0 , 0];
    1  -> [0 , 0];
    2  -> [0 , 0];
    3  -> [1 , 0];
    4  -> [1 , 0];
    5  -> [1 , 0];
    6  -> [1 , 1];
    7  -> [1 , 1];
    8  -> [1 , 1];
    9  -> [1 , 1];

TEST_VECTORS                             "Simulation
             ([s2,s1,takt] -> a);
 @repeat 20  {[0 ,0 ,.c. ] -> .x.;}
 @repeat 20  {[0 ,1 ,.c. ] -> .x.;}
 @repeat 20  {[1 ,0 ,.c. ] -> .x.;}
 @repeat 20  {[1 ,1 ,.c. ] -> .x.;}

END 

  Simulationsergebnis