Ich habe hier ein 7 Segment Display (XH-8401ARW) aus einem defekten Gerät ausgelötet und mal getestet. Aktuell läuft jede Millisekunde der Counter runter, bis der Counter 0 ist und dann gibt es einen Piepston von sich. Man kann natürlich auch eine LED, Motor, Stepper,… auslösen. Das Ganze geht natürlich auch mit anderen 7-Segment LED Displays. Vielleicht kann das ja mal jemand für sein Projekt gebrauchen ;).
1 x Arduino
4 x 1 KOhm Widerstand
1 x Buzzer
1 x 7-Segment LED Display
Für den Code benötigt man „SevenSeg“ Library.
#include "SevSeg.h" //include Seven Seg. Library
SevSeg sevseg; //init Segment-object
int buzzerPin = A0; //pin for Sound
bool alarm = false;
int number=9999; //Counter value 1-9999
void setup()
{
byte numDigits = 4; //number of digits
byte digitPins[] = {2, 3, 4, 5}; //digit pins
byte segmentPins[] = {6, 7, 8, 9, 10, 11, 12, 13}; //Pins Segment
sevseg.begin(COMMON_CATHODE, numDigits, digitPins, segmentPins);
sevseg.setBrightness(90);
}
void loop()
{
static unsigned long timer = millis();
static int deciSeconds = 0;
if (millis() – timer >= 100) {
timer += 100;
deciSeconds++; // 100 milliSeconds is equal to 1 deciSecond
if(number>0){
number–;
}
if (deciSeconds == 10000) { // Reset to 0 after counting for 1000 seconds.
deciSeconds=0;
}
sevseg.setNumber(number, 4);
}
if(number==0 && alarm==false){
tone(buzzerPin, 1000, 2500);
alarm=true;
}
sevseg.refreshDisplay(); // Must run repeatedly
}
Ich übernehme natürlich keine Verantwortung für irgendwelche Schäden. Alles auf eigene Gefahr.
Code kann auch als ZIP runtergeladen werden.