Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define SEGMENT_ON HIGH
- #define SEGMENT_OFF LOW
- #define DIGIT_ON 0
- #define DIGIT_OFF 255
- //výstupy připojených číslic
- byte digit[4] = {10,11,9,3};
- byte bright_on = DIGIT_ON;
- byte bright_off = DIGIT_OFF;
- //výstupy segmentů čísle A-G a DP
- byte seg[8] = {12,7,5,13,2,8,6,4};
- //mapa číslic segment A B C D E F G
- byte number[11][7] = {{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,1,0,1,1}, //9
- {0,0,0,0,0,0,0}}; //nic
- //jednotlivé číslice
- byte value[4] = {7,1,5,3}; // číslice k zobrazení
- byte dot = 1; // pozice desetiné tečky, >4 vypnuto
- //funkce pro výpis číslic z pole value[]
- void show() {
- byte l;
- for (int v=0;v < 4;v++) { // číslice 1 až 4
- analogWrite(digit[v],bright_on); //zapne číslici
- for ( int s=0;s < 7; s++) { //jeden segment za druhým
- if (number[value[v]][s] == 1) l = SEGMENT_ON; //řádek number dle hodnoty v value[v]
- else l = SEGMENT_OFF;
- digitalWrite(seg[s], l); //zapne segment
- }
- if (dot == v) digitalWrite(seg[7], SEGMENT_ON); //zapne desetinou tečku
- delay(1); // svíti milisekundu v cyklu
- analogWrite(digit[v],bright_off); //vypne číslici
- for ( int s=0;s < 7; s++) { //vynulovat segment
- digitalWrite(seg[s], SEGMENT_OFF);
- }
- digitalWrite(seg[7], SEGMENT_OFF); //vypne tečku
- }
- }
- //funkce nastavení výstupu a vypnutí všech LED
- void reset7() {
- for (int d=0; d < 4; d++) {
- pinMode(digit[d], OUTPUT);
- analogWrite(digit[d], DIGIT_OFF);
- }
- for (int s=0; s < 8; s++) {
- pinMode(seg[s], OUTPUT);
- digitalWrite(seg[s], SEGMENT_OFF);
- }
- }
- void setup() {
- reset7(); //nastavení vývodu
- for (int d=0; d<4; d++){ //vnořený cyklus, jedna číslice za druhou
- analogWrite(digit[d],bright_on); //zapne číslici
- }
- }
- void loop() {
- show();
- //delay(10);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement