Een nummer op een display laten verschijnen doe je best via een functie. In deze tutorial staat de functie die alle cijfers van 0 tot en met 9 op het 7segment display van het KAEDU STEM shield kan laten verschijnen. Je moet enkel het nummer meegeven aan de functie en de juiste LEDS zullen oplichten.
Je moet weten dat het segment een common anode display is, aangezien dus de + van de LED gemeenschappelijk is moet je het signaal aan de – aanbrengen. Bij een LED moet de spanning op de + groter zijn dan deze op de – om op te lichten dus met andere woorden zal een LOW signaal het segmentje doen oplichten.
Verder moet je weten dat de segmenten in wijzerszin een letter gekregen hebben te beginnen bovenaan met A dan rechts bovenaan B en rechts onderaan C dan onderaan D links onderaan E links bovenaan F en in het midden G Als je het 7 segment visueel voorstelt is het dan eenvoudig om te bepalen of het segment bij dat bepaalde cijfer moet oplichten of niet.
Je moet enkel de onderstaande code kopieren in een programma en dan kan je de cijfers van 0 tot en met 9 op het scherm zetten. Je kan er zelfs een 1 digit klok van maken als je dat zou willen.
7 segment aansturen functie
int segDot = 7;
int segA = 17;
int segB = 18;
int segC = 2;
int segD = 3;
int segE = 4;
int segF = 5;
int segG = 6;
int sevenSeg(int number) {
switch(number) {
case 0:
digitalWrite(segA,LOW);
digitalWrite(segB,LOW);
digitalWrite(segC,LOW);
digitalWrite(segD,LOW);
digitalWrite(segE,LOW);
digitalWrite(segF,LOW);
digitalWrite(segG,HIGH);
digitalWrite(segDot,HIGH);
break;
case 1:
digitalWrite(segA,HIGH);
digitalWrite(segB,LOW);
digitalWrite(segC,LOW);
digitalWrite(segD,HIGH);
digitalWrite(segE,HIGH);
digitalWrite(segF,HIGH);
digitalWrite(segG,HIGH);
digitalWrite(segDot,HIGH);
break;
case 2:
digitalWrite(segA,LOW);
digitalWrite(segB,LOW);
digitalWrite(segC,HIGH);
digitalWrite(segD,LOW);
digitalWrite(segE,LOW);
digitalWrite(segF,HIGH);
digitalWrite(segG,LOW);
digitalWrite(segDot,HIGH);
break;
case 3:
digitalWrite(segA,LOW);
digitalWrite(segB,LOW);
digitalWrite(segC,LOW);
digitalWrite(segD,LOW);
digitalWrite(segE,HIGH);
digitalWrite(segF,HIGH);
digitalWrite(segG,LOW);
digitalWrite(segDot,HIGH);
break;
case 4:
digitalWrite(segA,HIGH);
digitalWrite(segB,LOW);
digitalWrite(segC,LOW);
digitalWrite(segD,HIGH);
digitalWrite(segE,HIGH);
digitalWrite(segF,LOW);
digitalWrite(segG,LOW);
digitalWrite(segDot,HIGH);
break;
case 5:
digitalWrite(segA,LOW);
digitalWrite(segB,HIGH);
digitalWrite(segC,LOW);
digitalWrite(segD,LOW);
digitalWrite(segE,HIGH);
digitalWrite(segF,LOW);
digitalWrite(segG,LOW);
digitalWrite(segDot,HIGH);
break;
case 6:
digitalWrite(segA,LOW);
digitalWrite(segB,HIGH);
digitalWrite(segC,LOW);
digitalWrite(segD,LOW);
digitalWrite(segE,LOW);
digitalWrite(segF,LOW);
digitalWrite(segG,LOW);
digitalWrite(segDot,HIGH);
break;
case 7:
digitalWrite(segA,LOW);
digitalWrite(segB,LOW);
digitalWrite(segC,LOW);
digitalWrite(segD,HIGH);
digitalWrite(segE,HIGH);
digitalWrite(segF,HIGH);
digitalWrite(segG,HIGH);
digitalWrite(segDot,HIGH);
break;
case 8:
digitalWrite(segA,LOW);
digitalWrite(segB,LOW);
digitalWrite(segC,LOW);
digitalWrite(segD,LOW);
digitalWrite(segE,LOW);
digitalWrite(segF,LOW);
digitalWrite(segG,LOW);
digitalWrite(segDot,HIGH);
break;
case 9:
digitalWrite(segA,LOW);
digitalWrite(segB,LOW);
digitalWrite(segC,LOW);
digitalWrite(segD,LOW);
digitalWrite(segE,HIGH);
digitalWrite(segF,LOW);
digitalWrite(segG,LOW);
digitalWrite(segDot,HIGH);
break;
default :
digitalWrite(segA,LOW);
digitalWrite(segB,HIGH);
digitalWrite(segC,HIGH);
digitalWrite(segD,LOW);
digitalWrite(segE,LOW);
digitalWrite(segF,LOW);
digitalWrite(segG,LOW);
digitalWrite(segDot,HIGH);
}
}
void setup() {
pinMode(segDot,OUTPUT);
pinMode(segA,OUTPUT);
pinMode(segB,OUTPUT);
pinMode(segC,OUTPUT);
pinMode(segD,OUTPUT);
pinMode(segE,OUTPUT);
pinMode(segF,OUTPUT);
pinMode(segG,OUTPUT);
}
void loop() {
sevenSeg(9);
}
Volgende les : random()
Volgende les legt uit wat je met de random() functie kan aanvangen, deze toepassing is onder andere handig voor het realiseren van een dobbelsteen.
Vorige les : functies
Aangezien deze les gebruik maakt van een functie is het misschien handig om de theorie van functies terug op te frissen.
4 reacties op “KAEDU : 7segment display”-
-
-
-
Dobbelsteen met random() – Projects4edu
(6 mei 2017 - 14:39)[…] zeven segment display programma uit dit bericht laat enkel het gevraagde nummer oplichten op het zeven segment display. Om er iets nuttig mee te […]
dobbelsteen met millis() – Projects4edu
(6 mei 2017 - 15:41)[…] aangetoond dat je een dobbelsteen kan maken met random(), we hebben aangetoond hoe je het getal kan weergeven op een 7 segment display. Nu tonen we een andere manier om aan het getal te komen. Deze manier werkt met millis(). De […]
Tutorial : functies – Projects4edu
(6 mei 2017 - 23:57)[…] Secundair onderwijs Lees verder […]
Overzicht tutorials en demonstraties – Projects4edu
(29 juli 2017 - 11:18)[…] : Het inlezen van sensoren. 3) Het aansturen van een SERVO. 4) Toon genereren met een piezo. 5) aansturen van het 7segment display. 6) Het aansturen van een dobbelsteen door middel van random(). 7) dobbelsteen door middel van […]