Arduino 7-Segment?

3 Antworten

Was du brauchst ist ein Zähler und eine Abbildung von Zahl zu 7 Segment. Das zählen dürfte keine schwierigkeit sein(mit ++). Den Rest kannst du hard-coden.

if(1){setze alle segmente auf an, die die bei 1 an seien sollen und alle anderen auf aus}

if(2){...}

...

oder du erstellst ein zweidimensionales Array mit den informationen wann was an sein soll

Loriisbas 
Fragesteller
 19.03.2020, 12:33

Danke, sei mir nicht böse ich verstehe aber immer noch nicht selbst im Unterricht verzweifle ich immer

0

Das ist die Lange Variante. Viel Code der wenig macht. Dadurch wird einem aber der Umgang mit Arrays erspart.

void null(){
    digitalWrite(pinFürSegmentOben, HIGH);
    digitalWrite(pinFürSegmentObenLinks, HIGH);
    digitalWrite(pinFürSegmentObenRechts, HIGH);
    digitalWrite(pinFürSegmentMitte, LOW);
    digitalWrite(pinFürSegmentUntenRechts, HIGH);
    digitalWrite(pinFürSegmentUntenLinks, HIGH);
    digitalWrite(pinFürSegmentUnten, HIGH);
}
 //das gleiche für alle anderen zahlen

Müsst ihr diese Vorlage nehmen? Das ist meines Meinung nach kein effizienter Programmierstil.

Loriisbas 
Fragesteller
 19.03.2020, 13:41

Ja müssen wir da wir das Thema sehr oberflächig machen und grad am Anfang sind aber danke mit dem ausschnitt hab ich es glaub ich verstanden

0

Die bei der Siebensegmentanzeige soll jedes Segment mit einem Pin des Arduinos verbunden werden, richtig? Oder sind das mehrere Stellen und es handelt sich um eine art Schieberegister?

Falls die Segmente direkt angesteuert werden müsste das ca so aussehen:

int tasterPin = 13;
int pin7seg [] = {2,3,4,5,6,7,8};
int seg7code [][] ={{HIGH,LOW,LOW,HIGH,...},{...},...}//bitte ergänzen
int z;
void setup(){
  for(int i=0;i<7;i++){
    pinMode(pin7seg[i],OUTPUT);
  }
}
void loop(){
  //solange taster high
  //externer pullup oder internen aktivieren
  while(digitalRead(tasterPin));
  
  //zähler incrementieren
  z++;

  for(int i=0;i<7;i++){
    digitalWrite(pin7seg[i],seg7code[z][i]);
  }
}
      

ungefähr so müsste das mit array aussehen.

Es handelt sich hierbei um die C++-Dialekt den man üblicherweise in der Schule lernt.

Woher ich das weiß:eigene Erfahrung