Schritt 5:3 für 3 LED-Anzeige-Beispiel
Sehen Sie das Bild mit den LEDs angezeigt, dies geschah mit dem Code unten. Der Code ist auch als .ino Datei angehängt. Die LEDs leuchten sind Satz von 0x02, 0 x 05, 0x02. die dezimale Darstellung die hex-Werte ist 00000010,00000101,00000010. Sie können sehen, wie diese Werte die Anzeige entsprechen.
Wenn Sie für sich selbst den Code ausprobieren möchten ist unten zur Verfügung und nur Kopie der Schaltung aus Schritt 3!
/ * 3 x 3 LEDs Multiplexen Transistor
Von: Marty Peltz
Datum: 19.07.2013
Zweck: Steuern 9 LEDs in einem 3 x 3-Muster mit multiplexing.
Verwendet in Martin Peltz Instructiable
*/
/ *** Variablen *** /
Char col1_cathode = 0;
Char col2_cathode = 1;
Char col3_cathode = 2;
Char row1_anode = 3;
Char row2_anode = 4;
Char row3_anode = 5;
void setup()
{
Set Pins auf Ausgänge
PinMode (col1_cathode, Ausgang);
PinMode (col2_cathode, Ausgang);
PinMode (col3_cathode, Ausgang);
PinMode (row1_anode, Ausgang);
PinMode (row2_anode, Ausgang);
PinMode (row3_anode, Ausgang);
Schalten Sie alle GPIO-pins
DigitalWrite (col1_cathode, LOW);
DigitalWrite (col2_cathode, LOW);
DigitalWrite (col3_cathode, LOW);
DigitalWrite (row1_anode, LOW);
DigitalWrite (row2_anode, LOW);
DigitalWrite (row3_anode, LOW);
}
void loop()
{
display_LED(0x02,0x05,0x02);
}
/ *** Anzeige LED Funktion *** /
/ * Zweck: rufen Sie diese Funktion mit dem Hexdecimal-Parameter, die Sie anzeigen möchten
* Hinweis: Diese Funktion steuert die Kathode, in meinem Fall steuern die Spalten
*/
void Display_LED (Char c1, c2 Char, Char-c3)
{
row_anode(C1); Rufen Sie Row_anode mit ersten Hexdecimal Wert
DigitalWrite (col1_cathode, HIGH); Die erste Spalte anzeigen
Delay(1); Warten Sie eine kurze Verzögerung, damit die LED für 1 MS leuchtet
DigitalWrite (col1_cathode, LOW); erste Spalte zu deaktivieren, bevor Sie fortfahren
row_anode(C2); Rufen Sie Row_anode mit zweiter Hexdecimal Wert
DigitalWrite (col2_cathode, HIGH); Die zweite Spalte anzeigen
Delay(1); Warten Sie eine kurze Verzögerung, damit die LED für 1 MS leuchtet
DigitalWrite (col2_cathode, LOW); zweiten Spalte zu deaktivieren, bevor Sie fortfahren
row_anode(C3); Rufen Sie Row_anode mit zweiter Hexdecimal Wert
DigitalWrite (col3_cathode, HIGH); Die dritte Spalte anzeigen
Delay(1); Warten Sie eine kurze Verzögerung, damit die LED für 1 MS leuchtet
DigitalWrite (col3_cathode, LOW); dritte Spalte zu deaktivieren, bevor Sie fortfahren
(Hinweis versuchen Sie, die 1 ms bis 100 MS - 1 s Sie einen Unterschied zu sehen)
}
/ *** Kathode (Spalten) Funktion *** /
/ * Zweck: Parameter Wert und biegen Sie auf den entsprechenden Pins
* Hinweis: Durch die Verwendung Arduinos DigitalWrite setzen Sie die Stifte,
* aber wenn DDRx/PORTx verwenden Sie nur einen Hexdecimal Wert, um die Pins an einem Port anwenden können.
*/
void row_anode(char LEDs_on)
{
If(LEDs_on == 0X00)
{
DigitalWrite (row1_anode, LOW);
DigitalWrite (row2_anode, LOW);
DigitalWrite (row3_anode, LOW);
}
anderes if(LEDs_on == 0x01)
{
DigitalWrite (row1_anode, HIGH);
DigitalWrite (row2_anode, LOW);
DigitalWrite (row3_anode, LOW);
}
anderes if(LEDs_on == 0x02)
{
DigitalWrite (row1_anode, LOW);
DigitalWrite (row2_anode, HIGH);
DigitalWrite (row3_anode, LOW);
}
anderes if(LEDs_on == 0x03)
{
DigitalWrite (row1_anode, HIGH);
DigitalWrite (row2_anode, HIGH);
DigitalWrite (row3_anode, LOW);
}
anderes if(LEDs_on == 0x04)
{
DigitalWrite (row1_anode, LOW);
DigitalWrite (row2_anode, LOW);
DigitalWrite (row3_anode, HIGH);
}
anderes if(LEDs_on == 0x05)
{
DigitalWrite (row1_anode, HIGH);
DigitalWrite (row2_anode, LOW);
DigitalWrite (row3_anode, HIGH);
}
anderes if(LEDs_on == 0x06)
{
DigitalWrite (row1_anode, LOW);
DigitalWrite (row2_anode, HIGH);
DigitalWrite (row3_anode, HIGH);
}
anderes if(LEDs_on == 0x07)
{
DigitalWrite (row1_anode, HIGH);
DigitalWrite (row2_anode, HIGH);
DigitalWrite (row3_anode, HIGH);
}
}