INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
7 Segmentanzeige und 20er Ledbar synchronisieren
07.02.2021, 14:45
Beitrag #9
RE: 7 Segmentanzeige und 20er Ledbar synchronisieren
(07.02.2021 12:17)Thor Wallhall schrieb:  würde gerne wissen ob das auch gehen würde.....

wenn ich die Pins für die ledbar am 7 segment steuernden ATmega anschliesse und als OUTPUT setze.....müsste ich diese doch nur noch irgendwie in die Loop mit reinbekommen das die PINs dann mit den 7Segmentzeilen gleichzeitig auf HIGH oder LOW gesetzt werden, so wie das im Array sequenz steht....
du könntest diese Funktion zusammen mit Anzeige() aufrufen:
Code:
void leds(byte num){
  for (byte i=0;i<5;i++){
    digitalWrite(ledbar[i], sequenz[(num*5)+i]);
  }
}
(ungetestet)

gruß lorenz
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.02.2021, 15:25
Beitrag #10
RE: 7 Segmentanzeige und 20er Ledbar synchronisieren
Hallo Lorenz....

HAMMER!!!!

Es funktioniert.......

KLASSE!!!!!
hab die leds in der loop vor die zeile(nummer) gesetzt und siehe da es läuft so wie es soll.....

die leds sind zwar sehr dunkel aber das bekomme ich noch hin

Ich danke dir recht herzlich!!!! wieder was gelernt!!!!

Code:
#include <TimerOne.h>


//Pinbelegung der 7 Segmentanzeigen
const byte Anzeige[] = {A0,A1,A2,A3,A4};
const byte Segment[] = {2,3,4,5,6,7,8};

//Zeichenreihenfolge der 7 Segementanzeige
const byte ausgabe[] = {0x7f,0x7f,0x7f,0x7f,0x7f,
                        0x5e,0x3e,0x79,0x73,0x20,
                        0x75,0x79,0x57,0x1f,0x70,
                        0x42,0x24,0x09,0x30,0x41,
                        0x5e,0x3e,0x79,0x73,0x20,
                        0x76,0x6d,0x5b,0x67,0x30,
                        0x42,0x24,0x09,0x30,0x41};

//Pinbelegung der 20er ledbar, pro Pin 4leds
const byte ledbar[] = {9,10,11,12,13};                        

//pro sequenz sollen die Pins so ein-(1) oder aus-(0) geschaltet sein.
const byte sequenz[] = {0,0,0,1,0,
                        0,0,1,0,0,
                        0,0,0,0,1,
                        0,0,0,0,0,
                        0,1,0,0,0,
                        1,0,0,0,0,
                        0,0,0,0,0};                      

//Welche Zeile
byte nummer = 1;                        


void setup() {
  // put your setup code here, to run once:
//Stellen (Kathode)
for (byte tmp = 0; tmp<5; tmp++){
  pinMode(Anzeige[tmp], OUTPUT);
  digitalWrite(Anzeige[tmp], HIGH);
}
//Segmente (Anode)
for (byte tmp = 0; tmp<7; tmp++){
  pinMode(Segment[tmp], OUTPUT);
  digitalWrite(Segment[tmp], LOW);
}
//Ledbar Pins als OUTPUT
for (byte tmp = 0; tmp<5; tmp++){
  pinMode(sequenz[tmp], OUTPUT);
  digitalWrite(sequenz[tmp], LOW);
}
}


void leds(byte num){
  for (byte i=0; i<5; i++){
    digitalWrite(ledbar[i], sequenz[(num*5)+i]);
  }
}
// Ausgabe einer Zeile aus ausgabe[]
void zeile(byte num){
  byte wert;
  // 5 Anzeigen
  for(byte anz = 0; anz < 5; anz++){
    //Anzeige ein
    digitalWrite(Anzeige[anz], LOW);
    //Ausgabewert (Zeile) + Spalte
    wert = ausgabe[5*num+anz];
    // 7 Segmente
    for(byte seg = 0; seg<7; seg++){
      digitalWrite(Segment[seg], bitRead(wert,seg));

    }
    //Anzeige aus
    digitalWrite(Anzeige[anz], HIGH);
    //Segmente aus
    for(byte seg = 0; seg<7; seg++){
      digitalWrite(Segment[seg],0);
    }
  }
      
}
void loop() {
  // put your main code here, to run repeatedly:
static uint8_t nummer = 0;
static uint32_t lastMillis = 0;
uint32_t aktMillis = millis();
leds(nummer);
zeile(nummer);

if (aktMillis - lastMillis >=1000){
  nummer++;
  if (nummer > 7) nummer = 0;
  lastMillis = aktMillis;
}
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.02.2021, 16:06
Beitrag #11
RE: 7 Segmentanzeige und 20er Ledbar synchronisieren
Freut mich das es funktioniert, hast ja auch schon gute Vorarbeit geleistet Smile
würde evtl. loop() noch dahingehend ändern:
Code:
void loop() {
  static uint8_t nummer = 0;
  static uint32_t lastMillis = 0;
  uint32_t aktMillis = millis();
  if (aktMillis - lastMillis >= 1000) {
    nummer++;
    if (nummer > 7) nummer = 0;
    lastMillis = aktMillis;
    leds(nummer);
    zeile(nummer);
  }
}
und am Ende von setup() beide Funtionen einmal aufrufen:
Code:
void setup() {
// (...)
    leds(nummer);
    zeile(nummer);
}
Das hätte den Vorteil, dass die Pegel an den Pins nur aktuallisert werden, wenn sie sich ändern sollen. So bleibt mehr Rechenleistung für etwaige andere Aufgaben.

gruß lorenz
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  RTC und 7 Segmentanzeige ellecks 7 482 25.12.2020 21:17
Letzter Beitrag: Tommy56
  Uhr mit 7 Segmentanzeige ottii50 18 5.824 24.12.2020 19:20
Letzter Beitrag: Bitklopfer
  Arduino mit NTP auf Zehntelsekunden synchronisieren? pcegli82 2 557 27.10.2020 23:37
Letzter Beitrag: GuaAck
  2 Schrittmotore synchronisieren WF55 15 2.108 22.05.2020 19:03
Letzter Beitrag: WF55
  Multiple Serielle Bytes mit Startmarke synchronisieren, was mache ich falsch Mosi 8 2.676 20.12.2018 18:33
Letzter Beitrag: Mosi
  8x7 Segmentanzeige, Dezimalpunkt "in Zahl" Marco.R 2 1.642 18.12.2018 16:35
Letzter Beitrag: Marco.R
  DHT22 min max Temperatur 7-Segmentanzeige bastelbert 50 15.717 14.01.2017 11:46
Letzter Beitrag: Tommy56
Smile Datum Anzeige mit 7 Segmentanzeige ottii50 11 4.566 16.05.2016 19:12
Letzter Beitrag: Mathias
  Funkthermometer mit 7 Segmentanzeige-bitte um Hilfe ottii50 45 13.706 27.07.2015 14:02
Letzter Beitrag: ottii50
  Hilfe bei 7-Segmentanzeige und Shift-Register knut 4 3.942 01.06.2014 15:58
Letzter Beitrag: knut

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste