U bevindt zich hier: prak EE Arduino-toestanden 7 segment display - oefening  
 ARDUINO-TOESTANDEN
fotoweerstand, motor oefening
servo-oefening
motorshieldoefening
Arduino gecontroleerde robot
pachube-cliënt
toerentalmonitor platendraaier
radiobestuurd wagentje
een aquaponic-systeem
geluidsgenerator
geluidsvervormer
lichtzoeker
ledstripdriver
7 segment display - oefening
99 teller
 PRAK EE
'droogte'-detector
spelen met een ouwe GSM
parallelle poortproefjes
ad-omvormertje
Lappie-detector
regenwatersysteem
dossier simpele leugendetectors
variabel voedinkje
renovatie platendraaiertje
detectorschakeling
renovatie versterker
vintage audio
'vintage'-teller
upgrade klokradio
LFR
lichtdetectie
deurbel
kristalradio
En-schakelingetje
zonnepaneeloefening
flatscreen
Arduino-toestanden
99 teller

7 SEGMENT DISPLAY - OEFENING
 

7 digitale uitgangen nodig... Lijkt me logisch daar het een zeven segmenten display is...




 

int a = 1;
int b = 2;
int c = 3;
int d = 4;
int e = 5;
int f = 6;
int g = 7;
int teller = 0 ;
int pauze = 1000;

void letter (int getal)
 {
   if (getal == 10)
    {
      digitalWrite(a, LOW);
      digitalWrite(b, LOW);
      digitalWrite(c, LOW);
      digitalWrite(d, LOW);
      digitalWrite(e, LOW);
      digitalWrite(f, LOW);
      digitalWrite(g, LOW);
      
    }
   if (getal == 0)
    {
      digitalWrite(a, HIGH);
      digitalWrite(b, HIGH);
      digitalWrite(c, HIGH);
      digitalWrite(d, HIGH);
      digitalWrite(e, HIGH);
      digitalWrite(f, HIGH);
      digitalWrite(g, LOW);
      
    }
    if (getal == 1)
    {
      digitalWrite(a, LOW);
      digitalWrite(b, HIGH);
      digitalWrite(c, HIGH);
      digitalWrite(d, LOW);
      digitalWrite(e, LOW);
      digitalWrite(f, LOW);
      digitalWrite(g, LOW);
      
    }
    if (getal == 2)
    {
      digitalWrite(a, HIGH);
      digitalWrite(b, HIGH);
      digitalWrite(c, LOW);
      digitalWrite(d, HIGH);
      digitalWrite(e, HIGH);
      digitalWrite(f, LOW);
      digitalWrite(g, HIGH);
      
    }
    if (getal == 3)
    {
      digitalWrite(a, HIGH);
      digitalWrite(b, HIGH);
      digitalWrite(c, HIGH);
      digitalWrite(d, HIGH);
      digitalWrite(e, LOW);
      digitalWrite(f, LOW);
      digitalWrite(g, HIGH);
      
    }
    if (getal == 4)
    {
      digitalWrite(a, LOW);
      digitalWrite(b, HIGH);
      digitalWrite(c, HIGH);
      digitalWrite(d, LOW);
      digitalWrite(e, LOW);
      digitalWrite(f, HIGH);
      digitalWrite(g, HIGH);
      
    }
    if (getal == 5)
    {
      digitalWrite(a, HIGH);
      digitalWrite(b, LOW);
      digitalWrite(c, HIGH);
      digitalWrite(d, HIGH);
      digitalWrite(e, LOW);
      digitalWrite(f, HIGH);
      digitalWrite(g, HIGH);
      
    }
    if (getal == 6)
    {
      digitalWrite(a, HIGH);
      digitalWrite(b, LOW);
      digitalWrite(c, HIGH);
      digitalWrite(d, HIGH);
      digitalWrite(e, HIGH);
      digitalWrite(f, HIGH);
      digitalWrite(g, HIGH);
      
    }
    if (getal == 7)
    {
      digitalWrite(a, HIGH);
      digitalWrite(b, HIGH);
      digitalWrite(c, HIGH);
      digitalWrite(d, LOW);
      digitalWrite(e, LOW);
      digitalWrite(f, LOW);
      digitalWrite(g, LOW);
      
    }
    if (getal == 8)
    {
      digitalWrite(a, HIGH);
      digitalWrite(b, HIGH);
      digitalWrite(c, HIGH);
      digitalWrite(d, HIGH);
      digitalWrite(e, HIGH);
      digitalWrite(f, HIGH);
      digitalWrite(g, HIGH);
      
    }
    if (getal == 9)
    {
      digitalWrite(a, HIGH);
      digitalWrite(b, HIGH);
      digitalWrite(c, HIGH);
      digitalWrite(d, HIGH);
      digitalWrite(e, LOW);
      digitalWrite(f, HIGH);
      digitalWrite(g, HIGH);
      
    }
   
 }

void setup() {                
  
  pinMode(a, OUTPUT); 
  pinMode(b, OUTPUT); 
  pinMode(c, OUTPUT); 
  pinMode(d, OUTPUT); 
  pinMode(e, OUTPUT); 
  pinMode(f, OUTPUT); 
  pinMode(g, OUTPUT); 
}

void loop() {
 
  letter(teller);
  delay(pauze/4);
  letter(10);  // clear display
  delay(1);
  teller = teller +1;
  if (teller == 10)
     {
       teller = 0;
     }
   
}




 



 

Gebruikmakend van een 7segmenten driver. Slechts 4 digitale uitgangen zijn er nog maar nodig om op het display cijfertjes te toveren. Hier zijn nog 2 digitale uit-/ingangen in gebruik om het cijfer op het display te kunnen bevriezen, latch enablen/disablen via een knop.




 

int a0 = 10;
int a1 = 11;
int a2 = 12;
int a3 = 13;
int LE = 9;
int knop = 8;

int pauze = 1000;
int teller;
void getal (int cijfer)
 {
   
   if (cijfer == 0)
    {
      digitalWrite(a0, LOW);
      digitalWrite(a1, LOW);
      digitalWrite(a2, LOW);
      digitalWrite(a3, LOW);
      
      
    }
    if (cijfer == 1)
    {
      digitalWrite(a0, HIGH);
      digitalWrite(a1, LOW);
      digitalWrite(a2, LOW);
      digitalWrite(a3, LOW);
      
    }
    if (cijfer == 2)
    {
      digitalWrite(a0, LOW);
      digitalWrite(a1, HIGH);
      digitalWrite(a2, LOW);
      digitalWrite(a3, LOW);
      
    }
    if (cijfer == 3)
    {
      digitalWrite(a0, HIGH);
      digitalWrite(a1, HIGH);
      digitalWrite(a2, LOW);
      digitalWrite(a3, LOW);
      
    }
    if (cijfer == 4)
    {
      digitalWrite(a0, LOW);
      digitalWrite(a1, LOW);
      digitalWrite(a2, HIGH);
      digitalWrite(a3, LOW);
      
    }
    if (cijfer == 5)
    {
     digitalWrite(a0, HIGH);
      digitalWrite(a1, LOW);
      digitalWrite(a2, HIGH);
      digitalWrite(a3, LOW); 
      
    }
    if (cijfer == 6)
    {
      digitalWrite(a0, LOW);
      digitalWrite(a1, HIGH);
      digitalWrite(a2, HIGH);
      digitalWrite(a3, LOW); 
      
    }
    if (cijfer == 7)
    {
      digitalWrite(a0, HIGH);
      digitalWrite(a1, HIGH);
      digitalWrite(a2, HIGH);
      digitalWrite(a3, LOW);
    }
    if (cijfer == 8)
    {
      digitalWrite(a0, LOW);
      digitalWrite(a1, LOW);
      digitalWrite(a2, LOW);
      digitalWrite(a3, HIGH);
      
    }
    if (cijfer == 9)
    {
     digitalWrite(a0, HIGH);
      digitalWrite(a1, LOW);
      digitalWrite(a2, LOW);
      digitalWrite(a3, HIGH); 
      
    }
   
 }

void setup() {                
  
  pinMode(a0, OUTPUT); 
  pinMode(a1, OUTPUT); 
  pinMode(a2, OUTPUT); 
  pinMode(a3, OUTPUT); 
  pinMode(LE, OUTPUT);
  pinMode(knop, INPUT);
  digitalWrite(LE, LOW); // getal wordt doorgegeven
   
}

void loop() {
  
  if (digitalRead(knop) == HIGH)
      {
        digitalWrite(LE, HIGH);
      }
      if (digitalRead(knop) == LOW)
      {
        digitalWrite(LE, LOW);
      }
 
  getal(teller);
  delay(pauze/4);
  
  teller = teller +1;
  if (teller == 10)
     {
       teller = 0;
     }
   
}