Segmentkuva simulaator
Sissejuhatus
Segmentkuva kasutatakse paljudes elektroonikaseadmetes alustades käekellast lõpetades mikrolaineahjuga. Segmentkuva eeliseks on see, et vaid seitsme jalaga on võimalik kuvada kõik kümnendsüsteemi ning kuueteistkümnendsüsteemi arvud. Osadel segmentkuvadel on ka komakoht.
Segmendid
Algajale võib segmentkuva omajagu hämmingut pakkuda
Mõne teatud sümboli laadimiseks vajuta nuppu:
Üksikute segmentide sisse-välja lülitamisest ainuüksi palju kasu pole. Tihtipeale kirjutatakse funktsioon, mis lihtsustab täisarvu väärtuse kuvamist:
char SEGMENT_MAPPING[] = { 0x7e,0x30,0x6d,0x79, // 0x0, 0x1, 0x2, 0x3 0x33,0x5b,0x5f,0x70, // 0x4, 0x5, 0x6, 0x7 0x7f,0x7b,0x77,0x1f, // 0x8, 0x9, 0xa, 0xb 0x4e,0x3d,0x4f,0x47 // 0xc, 0xd, 0xe, 0xf }; int PIN_ASSIGNMENT[] = {2, 3, 4, 5, 6, 7, 8, 9}; void segmentDisplayPrint(int *assignment, char value, char dot) { char bits = SEGMENT_MAPPING[value]; for (char j = 0; j < 8; j++) { pinMode(assignment[j], OUTPUT); } for (char j = 0; j < 7; j++) { digitalWrite(assignment[j], bits >> j & 1); } digitalWrite(assignment[7], dot); } void setup() { segmentDisplayPrint(PIN_ASSIGNMENT, 8, HIGH); } void loop(){ for(int i = 0; i < 16; i++){ segmentDisplayPrint(PIN_ASSIGNMENT, i, HIGH); delay(600); } delay(100); }
Mitme segmentkuva kasutamine
Kombineerides mitu segmentkuva võib ehitada mitmekohalise ujukoma arvu näitamise võimekusega kasutajaliidese, nt temperatuuri või õhuniiskuse näidik. Mitme segmentkuva puhul kasutatakse tavaliselt ka nihkeregistreid selleks et säästa mikrokontrolleri väljaviike. Iga kuva küljes on näiteks 74HC595 8-bitine nihkeregister ning need on jadamisi ühendatud mikrokontrolleri külge. Sellisel juhul on mikrokontrollerisse ühendatud vaid viis jalga: toide, maa, kell (*clock*), andmed (*data*) ja lukustamine (*latch*).