Sieben-Segment-Countdown
Seite 1 von 1
Sieben-Segment-Countdown
1) Aufgabe: Ich habe es mir zum Ziel gesetzt die Siebensegment-Anzeige mithilfe des Arduino anzusteuern. Daraus wurde ein Countdown von 9-0 mit Startknopf und End-Buzzer.
Ein Universalcode zum Ansteuern mehrerer Siebensegment-Bausteine für größere Zahlen ist gerade in Arbeit und wird zur allgemienen Verwwendng, sobald fertig, im Forum bereitgestellt.
2)Zur Schaltung: Aus Faulheitsgründen habe ich das ganze so programmiert, dass mann möglichst wenig Schaltelemente benötigt(keine außer dem Sieben-Segment-Baustein und dem Arduino),
mithilfe der Digital/Analog(13-2)-Pins. Pinbelegung befindet sich im Code als Kommentar am Anfang.
Zusatzinfo: Es muss nur einer der Ground-Anschlüsse des Bausteines verwendet werden(sind intern verbunden), also entweder den oberen bzw. den unteren, mittleren Kontakt.
3)Code:
Ein Universalcode zum Ansteuern mehrerer Siebensegment-Bausteine für größere Zahlen ist gerade in Arbeit und wird zur allgemienen Verwwendng, sobald fertig, im Forum bereitgestellt.
2)Zur Schaltung: Aus Faulheitsgründen habe ich das ganze so programmiert, dass mann möglichst wenig Schaltelemente benötigt(keine außer dem Sieben-Segment-Baustein und dem Arduino),
mithilfe der Digital/Analog(13-2)-Pins. Pinbelegung befindet sich im Code als Kommentar am Anfang.
Zusatzinfo: Es muss nur einer der Ground-Anschlüsse des Bausteines verwendet werden(sind intern verbunden), also entweder den oberen bzw. den unteren, mittleren Kontakt.
3)Code:
- Code:
/* 13..OBEN RECHTS
* 12..OBEN MITTE
* 11..OBEN LINKS
* 10..MITTE MITTE
* 9..UNTEN RECHTS
* 8..UNTEN MITTE
* 7..UNTEN LINKS
* 4..BUTTON
* 3..BUZZER
*/
void show1(void){
analogWrite(13, 102); //DEFINITION DER ZAHLEN 0-9
analogWrite(12, 0);
analogWrite(11, 0);
analogWrite(10, 0);
analogWrite(9, 102);
analogWrite(8, 0);
analogWrite(7, 0);
}
void show2(void){
analogWrite(13, 102);
analogWrite(12, 102);
analogWrite(11, 0);
analogWrite(10, 102);
analogWrite(9, 0);
analogWrite(8, 102);
analogWrite(7, 102);
}
void show3(void){
analogWrite(13, 102);
analogWrite(12, 102);
analogWrite(11, 0);
analogWrite(10, 102);
analogWrite(9, 102);
analogWrite(8, 102);
analogWrite(7, 0);
}
void show4(void){
analogWrite(13, 102);
analogWrite(12, 0);
analogWrite(11, 102);
analogWrite(10, 102);
analogWrite(9, 1021);
analogWrite(8, 0);
analogWrite(7, 0);
}
void show5(void){
analogWrite(13, 0);
analogWrite(12, 102);
analogWrite(11, 102);
analogWrite(10, 102);
analogWrite(9, 102);
analogWrite(8, 102);
analogWrite(7, 0);
}
void show6(void){
analogWrite(13, 0);
analogWrite(12, 102);
analogWrite(11, 102);
analogWrite(10, 102);
analogWrite(9, 102);
analogWrite(8, 102);
analogWrite(7, 102);
}
void show7(void){
analogWrite(13, 102);
analogWrite(12, 102);
analogWrite(11, 0);
analogWrite(10, 0);
analogWrite(9, 102);
analogWrite(8, 0);
analogWrite(7, 0);
}
void show8(void){
analogWrite(13, 102);
analogWrite(12, 102);
analogWrite(11, 102);
analogWrite(10, 102);
analogWrite(9, 102);
analogWrite(8, 102);
analogWrite(7, 102);
}
void show9(void){
analogWrite(13, 102);
analogWrite(12, 102);
analogWrite(11, 102);
analogWrite(10, 102);
analogWrite(9, 102);
analogWrite(8, 102);
analogWrite(7, 0);
}
void show0(void){
analogWrite(13, 102);
analogWrite(12, 102);
analogWrite(11, 102);
analogWrite(10, 0);
analogWrite(9, 102);
analogWrite(8, 102);
analogWrite(7, 102);
}
void resetall(void){
analogWrite(13, 0);
analogWrite(12, 0);
analogWrite(11, 0);
analogWrite(10, 0);
analogWrite(9, 0);
analogWrite(8, 0);
analogWrite(7, 0);
}
void setup() {
// put your setup code here, to run once:
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
pinMode(10,OUTPUT);
pinMode(9,OUTPUT);
pinMode(8,OUTPUT);
pinMode(7,OUTPUT);
pinMode(4,INPUT);
pinMode(3,OUTPUT);
resetall(); //BEIM STARTEN ANZEIGE RESETTEN
delay(1000);
}
void loop() {
// put your main code here, to run repeatedly:
if (digitalRead(4) == LOW ){
show9();
delay(1000);
resetall();
delay(500);
show8();
delay(1000);
resetall();
delay(500);
show7();
delay(1000);
resetall();
delay(500);
show6();
delay(1000);
resetall();
delay(500);
show5();
delay(1000);
resetall();
delay(500);
show4();
delay(1000);
resetall();
delay(500);
show3();
delay(1000);
resetall();
delay(500);
show2();
delay(1000);
resetall();
delay(500);
show1();
delay(1000);
resetall();
delay(500);
show0();
digitalWrite(3, HIGH);
delay(2000);
digitalWrite(3,LOW);
resetall();
delay(500);
}
if(digitalRead(4) == HIGH)
{
resetall();
}
}
Aistl(eitner)- Anzahl der Beiträge : 1
Anmeldedatum : 23.02.16
Alter : 24
Seite 1 von 1
Befugnisse in diesem Forum
Sie können in diesem Forum nicht antworten
|
|