Interface een Seven Segment Display naar een Arduino

Voor veel toepassingen is er geen noodzaak om een duurdere liquid crystal display te gebruiken om gegevens weer te geven.

Als uw Arduino-toepassing alleen getallen hoeft weer te geven, overweeg dan het gebruik van een zeven-segment display. De zeven-segment display heeft zeven LED’s gerangschikt in de vorm van nummer acht. Ze zijn gemakkelijk te gebruiken en kosteneffectief. De afbeelding hieronder toont een typisch zeven-segment display.

SSD

Zeven-segment displays zijn er in twee types: gemeenschappelijke anode en gemeenschappelijke kathode. De interne structuur van beide typen is vrijwel gelijk. Het verschil is de polariteit van de LED’s en de gemeenschappelijke terminal. In een zeven-segment display met gemeenschappelijke kathode (het type dat we in de experimenten hebben gebruikt) zijn de kathodes van alle zeven LED’s plus een punt-LED verbonden met pennen 3 en 8. Om dit display te gebruiken, moeten we GROUND op pin 3 en pin 8 aansluiten, en +5V op de andere pinnen om de afzonderlijke segmenten te laten oplichten. Het volgende schema toont de interne structuur van een 7-segments display met een gemeenschappelijke kathode:

Common Cathode
Common Cathode

Het common anode display is precies het tegenovergestelde. In een common-anode display zijn de positieve klemmen van alle acht LED’s met elkaar verbonden en vervolgens verbonden met pin 3 en pin 8. Om een individueel segment aan te zetten, zet je een van de pinnen aan massa. Het volgende schema toont de interne structuur van het common-anode zeven-segment display.

Common anode
Common anode

De zeven segmenten zijn gelabeld als a-g, waarbij de punt “dp” is, zoals in de onderstaande figuur is aangegeven:

SSD-configuratie
SSD-configuratie

Om een bepaald getal weer te geven, schakelt u de afzonderlijke segmenten in, zoals in de onderstaande tabel wordt weergegeven:

aan

aan

aan

aan

op

op

op

on

on

on

aan

aan

uit

Cijfer gfedcba

abcdefg

a

b

c

d

e

f

g

0 0×3F

0×7E

on

aan

aan

aan aan aan

uit

1 0×06

0×30

off

on

on

off

off

off

off

2 0×5B

0×6D

on

on

off

on

on

off

on

3 0×4F

0×79

on

on

on

on

off

uit

aan

4 0×66

0×33

uit

aan

aan uit

uit

uit

aan

on

5 0×6D

0×5B

on

uit

aan

aan uit aan

6 0×7D

0×5F

on

off

op

op

op op op

7 0×07

0×70

aan

aan

aan

aan

uit

uit

uit

uit

8 0×7F

0×7F

op

op op

op

op

op

9 0×6F

0×7B

on

on

on

on

off

op

A 0×77

0×77

op

op

on

on

off

on on

B 0×7C

0×1F

off

off

aan

aan

aan aan aan

C 0×39

0×4E

on

off

off

aan

aan

D 0×5E

0×3D

off

on

on

on

aan

uit

aan
E 0×79

0×4F

on

off

off

on

on

on

aan

F 0×71

0×47

aan

uit

uit

uit

on

on

on

Experiment 1

In dit experiment, zullen we de LED’s gewoon aan- en uitzetten om vertrouwd te raken met de werking van een zeven-segment display.

Nodige hardware

  • 1 x zeven-segment display (gemeenschappelijke kathode)
  • 1 x Arduino MEGA 2560
  • 1 x breadboard
  • 7 x 220 ohm weerstanden (1/4 W)
  • jumperdraden

Bedradingsdiagram

In deze schakeling, zijn de pennen van het zeven-segment display verbonden met Arduino-pinnen 2-9, zoals weergegeven in de onderstaande tabel. Gemeenschappelijke pinnen (pin 3 en pin 8) zijn verbonden met GND en dp is niet aangesloten, omdat deze in dit experiment niet wordt gebruikt

Zeven segment pinnen Arduino pinnen Draadkleur
1(e) 6 oranje
2(d) 5 wit
3,8(COM) GND n/a
c 4 geel
5(dp)
6(b) 3 rood
7(a) 2 blauw
9(f) 7 cyaan
10(g) 8 groen

Code

void setup(){ // define pin modes pinMode(2,OUTPUT); pinMode(3,OUTPUT); pinMode(4,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(7,OUTPUT); pinMode(8,OUTPUT); }void loop() { // loop to turn leds od seven seg ON for(int i=2;i<9;i++) { digitalWrite(i,HIGH); delay(600); } // loop to turn leds od seven seg OFF for(int i=2;i<9;i++) { digitalWrite(i,LOW); delay(600); } delay(1000);}

Interface_Seven_Segment.zip

Experiment 2

Beschrijving

In deze tutorial gaan we een zeven-segment display interfacen met Arduino mega en leren we om op een zeven-segment display af te tellen vanaf negen met een vertraging van een seconde.

Nodigde hardware

De benodigde hardware voor dit experiment is dezelfde als voor Experiment 1.

Bedradingsschema

Het bedradingsschema voor dit experiment is hetzelfde als de schakeling voor Experiment 1.

Code

// make an array to save Sev Seg pin configuration of numbersint num_array = { { 1,1,1,1,1,1,0 }, // 0 { 0,1,1,0,0,0,0 }, // 1 { 1,1,0,1,1,0,1 }, // 2 { 1,1,1,1,0,0,1 }, // 3 { 0,1,1,0,0,1,1 }, // 4 { 1,0,1,1,0,1,1 }, // 5 { 1,0,1,1,1,1,1 }, // 6 { 1,1,1,0,0,0,0 }, // 7 { 1,1,1,1,1,1,1 }, // 8 { 1,1,1,0,0,1,1 }}; // 9 //function headervoid Num_Write(int);void setup() { // set pin modes pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); }void loop() { //counter loop for (int counter = 10; counter > 0; --counter) { delay(1000); Num_Write(counter-1); } delay(3000);}// this functions writes values to the sev seg pins void Num_Write(int number) { int pin= 2; for (int j=0; j < 7; j++) { digitalWrite(pin, num_array); pin++; }}

aac_interface_a_seven_segment.zip

Video

Probeer dit project zelf eens uit! Krijg de BOM.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *