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*).