7 Segment Display ne kadar zor olabilir ki :)
Ama masum köylü internetten baktığı bütün örneklerin katod segment için olduğunu ancak gece saat 1 de öğrenir :)
Ben çektim siz çekmeyin işte 7 Segment Display Anode için şema, kod ve resimler sizler için:
Kod :
const int F = 7; // F segment = Arduino pin 7
const int A = 2; // A segment = Arduino pin 2
const int B = 3; // B segment = Arduino pin 3
const int E = 6; // E segment = Arduino pin 6
const int D = 5; // D segment = Arduino pin 5
const int C = 4; // C segment = Arduino pin 4
const int dp = 9; // decimal point (dp) segment = Arduino pin 9
const int second = 1000; // In a millisecond timer, 1000 milliseconds = 1 second
const int digit = 10; // Number of digits to display 10 digits (0 - 9)
const int segment = 7; // Number of segments in the LED (7)
// Array defining which LED segments to light up
// for a given number defined by position in the array
byte digseg[digit][segment] = {
{ 0, 0, 0, 0, 0, 0, 1 }, // = 0
{ 1, 0, 0, 1, 1, 1, 1 }, // = 1
{ 0, 0, 1, 0, 0, 1, 0 }, // = 2
{ 0, 0, 0, 0, 1, 1, 0 }, // = 3
{ 1, 0, 0, 1, 1, 0, 0 }, // = 4
{ 0, 1, 0, 0, 1, 0, 0 }, // = 5
{ 0, 1, 0, 0, 0, 0, 0 }, // = 6
{ 0, 0, 0, 1, 1, 1, 1 }, // = 7
{ 0, 0, 0, 0, 0, 0, 0 }, // = 8
{ 0, 0, 0, 1, 1, 0, 0 } // = 9
};
void setup() {
// Set all pins to OUTPUT
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
pinMode(dp, OUTPUT);
// Turn decimal point off by writing LOW
digitalWrite(dp, LOW);
}
// Loop through all 7 LED segments starting with pin 2
void writeDigit(byte digit)
{
byte pin = 2;
byte seg;
for (seg = 0; seg < 7; seg++)
{
digitalWrite(pin, digseg[digit][seg]);
pin++;
}
}
// Loop through all 10 digits starting with 0 ending with 9
// with appropriate delays
void loop()
{
byte digit;
for (digit = 0; digit < 10; digit++)
{
writeDigit(digit);
delay(second);
}
delay(4 * second);
}
Son Resim :
