LED Mux für Arduino #01 Das Ringzähler IC 4017

Nun werde ich einzelne Schaltungen aufbauen um zu testen, ob alles wie gewünscht funktioniert und mich so langsam an den fertigen LED Multiplexer herantasten.

Aufbau

Als Erstes beschalte ich das Ringzähler IC 7014. Es hat 10 Ausgänge. Bei jedem neuen Takt-Impuls am Clock-Eingang wird der nächste Ausgang auf HIGH gesetzt. Die Beschaltung des ICs ist etwas verwirrend, aber man kann die Details ja im Datenblatt (erhältlich z.B. bei Conrad) nachlesen. Der Schalt-Impuls wird vom Arduino auf dem Digitalen Port 2 ausgegeben, indem dieser kurzzeitig auf HIGH und dann wieder auf LOW geschaltet wird. Der Arduino bezieht seinen Strom aus dem angeschlossenem USB-Kabel. Die Schaltung wird mit GND und 5V vom Arduino versorgt. An die Ausgänge des ICs werden 180 Ohm Widerstände und daran LEDs angeschlossen.

Aufbau der Schaltung. Erstellt mit <href a="http://fritzing.org/">Fritzing</href>

Aufbau der Schaltung. Erstellt mit Fritzing

Schaltplan.

Schaltplan

Aufbau der Schaltung.

Aufbau der Schaltung.

Programmierung

Das Programm ist sehr einfach gehalten. in der setup()-Methode wird der Port 2 als Output definiert. In der loop()-Methode wird Port 2 erst auf HIGH und dann wider auf LOW geschaltet, um ein Takt-Impuls zu geben. Danach wird 100 ms gewartet und der nächste Impuls gegeben. Die 100 ms werden gewartet damit wir auch sehen können das eine LED nach der anderen leuchtet. Wenn ihr nicht alle Ausgänge mit LEDs beschaltet hab, wie ich, dauert es ein bisschen nachdem die letzte LED ausgegangen ist und die erste wieder angeht, weil die anderen Ausgänge ja auch der Reihe nach an- und wieder aus geschaltet werden.

char dummyvariablecuzmaintainerborkedthecompiler = 123; // force something into the .data segment with non-zero initializer; Just for Arch Linux

void setup() 
{ 
    dummyvariablecuzmaintainerborkedthecompiler++;  // stops the linker from removing the global variable

    // initialize the digital pin as clock-output.
    pinMode(2, OUTPUT);    
} 

void loop() 
{ 
    digitalWrite(2, HIGH);   // set the clock-impuls on
    delay(1); 
    digitalWrite(2, LOW);    // set the clock-impuls off
    delay(100); 
}

Related articles

4 Gedanken zu „LED Mux für Arduino #01 Das Ringzähler IC 4017

  1. Pingback: LED Mux für Arduino #02 Das T-Flip-Flop als Speicherzelle | backsite

  2. Pingback: LED Mux für Arduino #03 Erster Test mit mehreren LEDs | backsite

  3. Pingback: LED Mux für Arduino #05 Rückblick und Fazit | backsite

  4. Pingback: Lichtsensor aus Reflexkoppler CNY 70 | backsite

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s