// 7Segment #include "Arduino.h" #include "Segment.h" byte seven_seg_digits[][8] = { { 0,1,1,1,1,1,0,1 }, // = 0 { 0,1,1,0,0,0,0,0 }, // = 1 { 0,0,1,1,1,1,1,0 }, // = 2 { 0,1,1,1,1,0,1,0 }, // = 3 { 0,1,1,0,0,0,1,1 }, // = 4 { 0,1,0,1,1,0,1,1 }, // = 5 { 0,1,0,1,1,1,1,1 }, // = 6 { 0,1,1,1,0,0,0,0 }, // = 7 { 0,1,1,1,1,1,1,1 }, // = 8 { 0,1,1,1,1,0,1,1 }, // = 9 { 1,1,1,1,0,1,1,1 }, // = A { 1,1,0,0,1,1,1,1 }, // = B { 1,0,0,1,1,1,0,1 }, // = C { 1,1,0,0,1,1,1,1 }, // = D { 1,0,0,1,1,1,1,1 }, // = E { 1,0,0,1,0,1,1,1 }, // = F { 1,1,0,1,1,0,1,1 }, // = S { 0,0,0,0,0,0,0,0 }, // = NULL { 1,0,0,1,0,1,0,1 } // = R }; Segment::Segment() { for (int i=0; i<8; i++) pinMode(6+i, OUTPUT); } /*void Segment::sevenSegWrite(byte digit) { byte pin = 6; for (byte segCount = 0; segCount < 8; ++segCount) { digitalWrite(pin, !seven_seg_digits[digit][segCount]); ++pin; } }*/ void Segment::sevenSegWrite(char chr) { byte pin = 6; byte digit; if(chr <= 9) digit = chr; else if (chr <= 'f') digit = 10 + (chr -'a'); else if (chr == 's') digit = 16; else if (chr == 'r') digit = 18; else digit = Cls; for (byte segCount = 0; segCount < 8; ++segCount) { digitalWrite(pin, !seven_seg_digits[digit][segCount]); ++pin; } } /*void Segment::BlinksevenSegWrite(byte digit) { byte pin = 6; for (byte segCount = 0; segCount < 8; ++segCount) { digitalWrite(pin, !seven_seg_digits[digit][segCount]); ++pin; } delay(100); sevenSegWrite((byte)17); }*/ void Segment::BlinksevenSegWrite(char chr) { byte pin = 6; byte digit; if(chr <= 9) digit = chr; else if (chr <= 'f') digit = 10 + (chr -'a'); else if (chr == 's') digit = 16; else digit = Cls; for (byte segCount = 0; segCount < 8; ++segCount) { digitalWrite(pin, !seven_seg_digits[digit][segCount]); ++pin; } delay(100); sevenSegWrite(Cls); }