LES 15 (7 segment display)

Alleen lezen

Moderator: pe1br

Post Reply
pe1br
Posts: 66
Joined: Thu Apr 14, 2016 3:37 am

LES 15 (7 segment display)

Post by pe1br »

Het 7 segment display zal uitgedeeld worden aan het begin van de les.
Het display bestaat uit 7 leds die in de form zijn gezet zodat ze elk cijfer kunnen maken.

Les15-1:

Zorg er voor dat je alle voedingsspanningen los koppelt (usb niet aangesloten op de pc en geen power adapter aangesloten op de voedingsplug).
sluit de Arduino aan volgens onderstaand schema:


Hieronder een tekening van het display en de bijbehorende Arduino pennen die we gebruikt hebben:
Image

Start het Arduino programma en sluit de USB kabel aan.
Typ de volgende code over of kopieer deze naar de arduino ide:

Code: Select all

//             2  3  4  5  6  7  8  9
int letter0[]={1, 0, 0, 0, 0, 1, 0, 0};   //set met containers voor het cijfer 0   
int letter1[]={1, 0, 1, 1, 1, 1, 1, 0};   //set met containers voor het cijfer 1
int letter2[]={1, 1, 0, 0, 1, 0, 0, 0};   //set met containers voor het cijfer 2
int letter3[]={1, 0, 0, 1, 1, 0, 0, 0};   //set met containers voor het cijfer 3
int letter4[]={1, 0, 1, 1, 0, 0, 1, 0};   //set met containers voor het cijfer 4
int letter5[]={1, 0, 0, 1, 0, 0, 0, 1};   //set met containers voor het cijfer 5
int letter6[]={1, 0, 0, 0, 0, 0, 0, 1};   //set met containers voor het cijfer 6
int letter7[]={1, 0, 1, 1, 1, 1, 0, 0};   //set met containers voor het cijfer 7
int letter8[]={1, 0, 0, 0, 0, 0, 0, 0};   //set met containers voor het cijfer 8
int letter9[]={1, 0, 0, 1, 0, 0, 0, 0};   //set met containers voor het cijfer 9
int letterdot[]={0, 1, 1, 1, 1, 1, 1, 1}; //set met containers voor de punt

void setup() {
  Serial.begin(9600);
  for (int i = 2; i <= 9; i++) {  //tel van 2 tot 9 en stop dit in de container i
    pinMode(i, OUTPUT);           //Zet de waarde van de container i als output
    digitalWrite(i, HIGH);        //Zet alles uit bij het opstarten
  }
}

void loop() {
  //letter 9
  for (int i = 2; i <= 9; i++) {             //tel van 2 tot 9 en stop dit in de container i  
    digitalWrite(i, letter9[i - 2]);         //maak de waarde van de container i laag
  }
  delay(1000);                               //wacht 1 seconde
  //letter 8
  for (int i = 2; i <= 9; i++) {  //tel van 2 tot 9 en stop dit in de container i  
    digitalWrite(i, letter8[i - 2]);         //maak de waarde van de container i laag
  }
  delay(1000);                               //wacht 1 seconde
  //letter 7
  for (int i = 2; i <= 9; i++) {  //tel van 2 tot 9 en stop dit in de container i  
    digitalWrite(i, letter7[i - 2]);         //maak de waarde van de container i laag
  }
  delay(1000);                               //wacht 1 seconde
  //letter 6
  for (int i = 2; i <= 9; i++) {  //tel van 2 tot 9 en stop dit in de container i  
    digitalWrite(i, letter6[i - 2]);         //maak de waarde van de container i laag
  }
  delay(1000);                               //wacht 1 seconde
  //letter 5
  for (int i = 2; i <= 9; i++) {  //tel van 2 tot 9 en stop dit in de container i  
    digitalWrite(i, letter5[i - 2]);         //maak de waarde van de container i laag
  }
  delay(1000);                               //wacht 1 seconde
  //letter 4
  for (int i = 2; i <= 9; i++) {  //tel van 2 tot 9 en stop dit in de container i  
    digitalWrite(i, letter4[i - 2]);         //maak de waarde van de container i laag
  }
  delay(1000);                               //wacht 1 seconde
  //letter 3
  for (int i = 2; i <= 9; i++) {  //tel van 2 tot 9 en stop dit in de container i  
    digitalWrite(i, letter3[i - 2]);         //maak de waarde van de container i laag
  }
  delay(1000);                               //wacht 1 seconde
  //letter 2
  for (int i = 2; i <= 9; i++) {  //tel van 2 tot 9 en stop dit in de container i  
    digitalWrite(i, letter2[i - 2]);         //maak de waarde van de container i laag
  }
  delay(1000);                               //wacht 1 seconde
  //letter 1
  for (int i = 2; i <= 9; i++) {  //tel van 2 tot 9 en stop dit in de container i  
    digitalWrite(i, letter1[i - 2]);         //maak de waarde van de container i laag
  }
  delay(1000);                               //wacht 1 seconde
  //letter 0
  for (int i = 2; i <= 9; i++) {  //tel van 2 tot 9 en stop dit in de container i  
    digitalWrite(i, letter0[i - 2]);         //maak de waarde van de container i laag
  }
  delay(1000);                               //wacht 1 seconde
  //letter dot
  for (int i = 2; i <= 9; i++) {  //tel van 2 tot 9 en stop dit in de container i  
    digitalWrite(i, letterdot[i - 2]);         //maak de waarde van de container i laag
  }
  delay(1000);                               //wacht 1 seconde
}
Les15-2:
We gebruiken hetzelfde schema als in les 15-1

Start het Arduino programma en sluit de USB kabel aan.
Typ de volgende code over of kopieer deze naar de arduino ide:

Code: Select all

void printletter0() {
  int letter0[]={1, 0, 0, 0, 0, 1, 0, 0};   //set met containers voor het cijfer 0   
  for (int i = 2; i <= 9; i++) {            //tel van 2 tot 9 en stop dit in de container i  
    digitalWrite(i, letter0[i - 2]);        //maak de waarde van de container i laag
  }
}

void printletter1() {
  int letter1[]={1, 0, 1, 1, 1, 1, 1, 0};   //set met containers voor het cijfer 1
  for (int i = 2; i <= 9; i++) {            //tel van 2 tot 9 en stop dit in de container i  
    digitalWrite(i, letter1[i - 2]);        //maak de waarde van de container i laag
  }
}

void printletter2() {
  int letter2[]={1, 1, 0, 0, 1, 0, 0, 0};   //set met containers voor het cijfer 2
  for (int i = 2; i <= 9; i++) {            //tel van 2 tot 9 en stop dit in de container i  
    digitalWrite(i, letter2[i - 2]);        //maak de waarde van de container i laag
  }
}

void printletter3() {
  int letter3[]={1, 0, 0, 1, 1, 0, 0, 0};   //set met containers voor het cijfer 3
  for (int i = 2; i <= 9; i++) {            //tel van 2 tot 9 en stop dit in de container i  
    digitalWrite(i, letter3[i - 2]);        //maak de waarde van de container i laag
  }
}

void printletter4() {
  int letter4[]={1, 0, 1, 1, 0, 0, 1, 0};   //set met containers voor het cijfer 4
  for (int i = 2; i <= 9; i++) {            //tel van 2 tot 9 en stop dit in de container i  
    digitalWrite(i, letter4[i - 2]);        //maak de waarde van de container i laag
  }
}

void printletter5() {
  int letter5[]={1, 0, 0, 1, 0, 0, 0, 1};   //set met containers voor het cijfer 5
  for (int i = 2; i <= 9; i++) {            //tel van 2 tot 9 en stop dit in de container i  
    digitalWrite(i, letter5[i - 2]);        //maak de waarde van de container i laag
  }
}

void printletter6() {
  int letter6[]={1, 0, 0, 0, 0, 0, 0, 1};   //set met containers voor het cijfer 6
  for (int i = 2; i <= 9; i++) {            //tel van 2 tot 9 en stop dit in de container i  
    digitalWrite(i, letter6[i - 2]);        //maak de waarde van de container i laag
  }
}

void printletter7() {
  int letter7[]={1, 0, 1, 1, 1, 1, 0, 0};   //set met containers voor het cijfer 7
  for (int i = 2; i <= 9; i++) {            //tel van 2 tot 9 en stop dit in de container i  
    digitalWrite(i, letter7[i - 2]);        //maak de waarde van de container i laag
  }
}

void printletter8() {
  int letter8[]={1, 0, 0, 0, 0, 0, 0, 0};   //set met containers voor het cijfer 8
  for (int i = 2; i <= 9; i++) {            //tel van 2 tot 9 en stop dit in de container i  
    digitalWrite(i, letter8[i - 2]);        //maak de waarde van de container i laag
  }
}

void printletter9() {
  int letter9[]={1, 0, 0, 1, 0, 0, 0, 0};   //set met containers voor het cijfer 9
  for (int i = 2; i <= 9; i++) {             //tel van 2 tot 9 en stop dit in de container i  
    digitalWrite(i, letter9[i - 2]);         //maak de waarde van de container i laag
  }
}

void printletterdot() {
  int letterdot[]={0, 1, 1, 1, 1, 1, 1, 1}; //set met containers voor de punt
  for (int i = 2; i <= 9; i++) {            //tel van 2 tot 9 en stop dit in de container i  
    digitalWrite(i, letterdot[i - 2]);      //maak de waarde van de container i laag
  }
}


void setup() {
  Serial.begin(9600);
  for (int i = 2; i <= 9; i++) {  //tel van 2 tot 9 en stop dit in de container i
    pinMode(i, OUTPUT);           //Zet de waarde van de container i als output
    digitalWrite(i, HIGH);        //Zet alles uit bij het opstarten
  }
}

void loop() {
  printletter9();    //voer functie letter9 uit
  delay(1000);  //wacht 1 seconde
  printletter8();    //voer functie letter8 uit
  delay(1000);  //wacht 1 seconde
  printletter7();    //voer functie letter7 uit
  delay(1000);  //wacht 1 seconde
  printletter6();    //voer functie letter6 uit
  delay(1000);  //wacht 1 seconde
  printletter5();    //voer functie letter5 uit
  delay(1000);  //wacht 1 seconde
  printletter4();    //voer functie letter4 uit
  delay(1000);  //wacht 1 seconde
  printletter3();    //voer functie letter3 uit
  delay(1000);  //wacht 1 seconde
  printletter2();    //voer functie letter2 uit
  delay(1000);  //wacht 1 seconde
  printletter1();    //voer functie letter1 uit
  delay(1000);  //wacht 1 seconde
  printletter0();    //voer functie letter0 uit
  delay(1000);  //wacht 1 seconde
  printletterdot();    //voer functie letterdot uit
  delay(10000);  //wacht 1 seconde
}
Dit programma doet hetzelfde als het programma in les 15-1.
In deze versie zijn we over gegaan naar het gebruik van functies om de cijfers aan te roepen.
Deze functies kun je heel eenvoudig in je eigen programma kopiëren en zo de cijfers aanroepen die je hebben wilt.
Je ziet dat het in veel gevallen handiger is om functies te gebruiken die je later vanuit 1 regel aan kunt roepen.
Attachments
7segmentdisplay.png
(5.18 KiB) Not downloaded yet
les15-1_bb.jpg
(808.3 KiB) Not downloaded yet
Post Reply