4x7-Display:
Um ein Display mit vier 7-Segment Anzeigen anzusteuern, braucht man viele Kabel, wenn dies nicht über eine I2C-Schnittstelle erledigt wird. Dafür gibt es auch hier gute einfache Libraries, die das Programmieren einfacher machen. Zu beachten ist, ob das Display, das verwendet wird, eine gemeinsame Kathode oder Anode besitzt. Das hier verwendete Display (5461AS) besitzt eine gemeinsame Kathode.
Da jede 7-Segment Anzeige einzeln der Reihe nach angesteuert wird, kann es gegebenenfalls zu leichtem Flackern auf der Anzeige kommen.
///////////////////////////////////*DEFINITIONEN*/////////////////////////////////// /*4x7*/ #include "SevSeg.h" //SevenSegment-Bibliothek wird eingebunden SevSeg sevseg; //Das Siebensegment Objekt wird initialisiert ///////////////////////////////////*SETUP*/////////////////////////////////// void setup() { /*4x7*/ byte numDigits = 4; //Hier wird die Anzahl der Ziffern angegeben byte digitPins[] = {2, 3, 4, 5}; //Die Pins am Artduino werden zu den Ziffern definiert byte segmentPins[] = {6, 7, 8, 9, 10, 11, 12, 13}; //Die Pins am Arduino werden zu den Segmenten definiert sevseg.begin(COMMON_CATHODE, numDigits, digitPins, segmentPins); //In diesem Abschnitt kann man nun entweder testen welche Art von Display man besitzt oder wenn man es schon weiss, angeben ob es sich um ein COMMON_CATHODE oder COMMON_ANODE Display handelt. Das Display funktioniert nur wenn die richtige Art eingetragen ist. Ansonsten werden alle Segmente gleichzeitig leuchten sevseg.setBrightness(90); //Dieser Teil passt die Helligkeit der Segmente an. Möglich ist 0-100, wobei 100 das Hellste ist. } ///////////////////////////////////*LOOP*/////////////////////////////////// void loop() { /*4x7*/ sevseg.setNumber(2718,3); //Hier wird die anzuzeigende Zahl eingetregen (2718). Die Zahl hinter dem Komma definiert die Position des Punktes. Hierbei ist 3 der Punkt neben der ersten Ziffer und 0 wäre der Punkt ganz rechts neben der letzten Ziffer. Wenn man keinen Punkt angezeigt haben möchte, kann man z.B. 4 angeben. sevseg.refreshDisplay(); //Die Zahl auf dem Display wird erneut angezeigt }