Arduino Project #3
9 Second Seven Segment LTD Countdown Buzzer
This is a 7 segment LED connected to a 595N shift register. When it counts down from 9 to 0 second, the buzzer will be activated.
Arduino circuit and sketch
//Pin connected to latch pin (ST_CP) of 74HC595
const int latchPin = 9;
//Pin connected to clock pin (SH_CP) of 74HC595
const int clockPin = 10;
////Pin connected to Data in (DS) of 74HC595
const int dataPin = 8;
const int buzz = 7;
const byte CHAR_COUNT = 10;
const byte symbols[CHAR_COUNT] = {
B01111110, // 0
B00010010, // 1
B10111100, // 2 
B10110110, // 3
B11010010, // 4 
B11100110, // 5
B11101110, // 6 
B00110010, // 7
B11111110, // 8 
B11110110  // 9
};
void setup() {
  //set pins to output because they are addressed in the main loop
  pinMode(latchPin, OUTPUT);
  pinMode(dataPin, OUTPUT);  
  pinMode(clockPin, OUTPUT);
  pinMode(buzz, OUTPUT);
}
void loop() {
  pattern1();
}
void pattern1()
{
  int i=9;
  while(i<CHAR_COUNT)
  {
    writeLeds(symbols[i]);
    if (i==0)
    tone(buzz,1000,1000);
    else 
    i = i-1; 
    delay(1000);
  }
}
void writeLeds(byte pattern)
{
  // turn off the output so the pins don't light up
  // while you're shifting bits:
  digitalWrite(latchPin, LOW);
  // turn on the next highest bit in bitsToSend:
  Serial.println(pattern,BIN);
  // shift the bits out:
  shiftOut(dataPin, clockPin, MSBFIRST, pattern);
    // turn on the output so the LEDs can light up:
  digitalWrite(latchPin, HIGH);
  }
Component Required:
seven segment LED, 595N Shift register, Buzzer, 220 Ohm resistor
Problem you may encounter:
If your 7 segment LED randomly lights up instead of showing numbers, you may try to change all the '1' into '0' and all '0' into '1' when you define 'symbols[CHAR_COUNT]'.
 
Component Required:
seven segment LED, 595N Shift register, Buzzer, 220 Ohm resistor
Problem you may encounter:
If your 7 segment LED randomly lights up instead of showing numbers, you may try to change all the '1' into '0' and all '0' into '1' when you define 'symbols[CHAR_COUNT]'.

