29 Ocak 2016 Cuma

7 Segment Display..Çok basit.. Meğerse anode muş...


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 G = 8;  // G segment = Arduino pin 8
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 :