- SF800 Solar Speicher Tutorial         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 72

Thema: 100mm 7-Segment Stoppuhr

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied
    Registriert seit
    20.12.2009
    Beiträge
    86
    Super Danke,
    Die Lösung mit dem ULN2803 ist sehr verlockend, so spar ich mir schon mal die 8 bzw. 9 Transistoren(für die Kathoden), aber für die 8 Segmente werde ich wohl gezwungen sein, die 8 Transistoren zu nehmen(10V)...

    Danke für die schnellen Antworten,

    lg Koertis

  2. #2
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Dafür eignen sich UDN2981 bis 4 Treiber.
    Geändert von PICture (12.04.2011 um 11:02 Uhr)
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    20.12.2009
    Beiträge
    86
    Ja super schon bestellt
    Softwaremäßig habe ich mir gedacht ich erstellt ein 9x10 Array in denen die Codes für 1,2,3 .. usw. für jedes Segment(9) gespeichert sind.
    Somit schreibe ich immer die Zeile aus die gerade notwendig ist... Die Zeilen verändere ich mit einen Timerinterrupt.
    Was sagt ihr dazu?

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    34
    Beiträge
    1.192
    Hallo,
    das mit dem Array sollte eigentlich gut funktionieren. Geschickt ist es auch noch, wenn du alle Segmentleitungen auf einen PORT (also z.B. alle auf PORTB) hängst. Dann kannst du mit PORTB=Array[Index] die Daten schnell ausgeben.
    Hast du dir schon Gedanken gemacht, wie du die Zeit präzise hochzählen willst? (Timer, Prescaler, Interrupt) und wie hoch die Wiederholfrequenz bei der Anzeige sein soll? (wird wohl auch mit Timer und Interrupt laufen...). Damit die angezeigte Zeit auch stimmt solltest du unbedingt einen Quarz verwenden an XTAL1/2.
    Aber bau erst mal deine Hardware auf
    Grüße, Bernhard

  5. #5
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Wenn dein Microcontroller zwei Timer hat, ist es richtg.

    Sonst würde ich endlose Schleife mit entsprechenden Verzögerungsschleifen für Displaysteuerung erstellen, die immer nur für Zeitaktualisierung durch Timer kurz unterbrochen wird.
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    20.12.2009
    Beiträge
    86
    Ich habe das mit dem Array heute programmiert und es funktioniert super, ich lasse bei einem Interrupt meine Funktion aufrufen bei der die "Linie" (die ausgegeben wird) um 1 Tausenstel erhöht wird.
    D.h. meine Vorgangsweise schaut jetzt so aus, ich werde mit meinen Oszi die genaue Quarzfrequenz messen, daraus errechne ich dann wie oft ich den 16bit Timer überlaufen lassen muss, damit ich 1ms bekomme und ab dann spring meine Funktion ein, diese zählt bis 99h

    Dann fehlt nur noch der Ein/Aus Interrupt bzw. reset knopf(könnt ich auch nur den µC resetten)

    Bezüglich der Widerholfrequenzen habe ich mir keinen Kopf gemacht, aber die übrige Zeit die der µC hat(bei 16MHz) kann er schreiben, ich werde es aber so machen dass ich unter 1Mhz bleibe, also so ca. 2-10 us...

    Meine Funktion ganz simple:

    Code:
    void func(uint8_t *A)    {
      A[t]++;
        if(A[t] == 9) { 
          A[t]= 0;
          A[hu]++;
          if(A[hu] == 9){
            A[hu]=0;
            A[z]++;
            if(A[z] == 9){
              A[z] = 0;
              A[s]++;
              if(A[s] ==9){
                A[s] = 0;
                A[ds]++;
                if(A[ds] == 6){
                  A[ds] = 0;
                  A[m]++;
                  if(A[m] == 9){
                    A[m] = 0;
                    A[dm]++;
                    if(A[dm]==6){
                      A[dm]=0;
                      A[h]++;
                      if(A[h]==9){
                        A[h]=0;
                        A[dh]++;
                        if(A[dh]==9)
                          A[dh]=0;
                     }
                   }                            
                 }    
               }
             }
           }
         }
       }
     }
    
    in main wir dann mittels einer forschleife die Zeile so ausgegeben:
    
    PORTA= LINE[i][A[8-i]];
    PORTD = 0x01<< i;
    Geändert von Koertis (12.04.2011 um 17:05 Uhr)

  7. #7
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    34
    Beiträge
    1.192
    Hallo,
    der Code sieht ja lustig aus mit den vielen Einrückungen
    Aber ich glaube, irgendwas passt noch nicht ganz.
    Überleg mal was passiert wenn A[t] vor dem Aufruf der Funktion 8 war. Wird dann ja um eins erhöht, wird also zu einer 9. Dann ist aber die if-Bedingung schon erfüllt, die Stelle wird auf 0 gesetzt und die nächste erhöht. Also wird die 9 komplett übergangen !?

    Du musst auch noch die Ziffen in Siebensegmentcodes umwandeln. Das kannst du per Software mit einem weiteren Array machen (oder mit switch case... oder if else if...). Alternativ ein IC einbauen, dass BCD-zu-7-Segment wandelt.
    Grüße, Bernhard

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    20.12.2009
    Beiträge
    86
    Ich hatte die 9 eigentlich schon ausgetauscht gehapt zu einer 10, keine Ahnung wie das passieren konnte, aber danke für den Hinweis. In LINE stehen schon die Hexdaten für die Siebensegmentanzeigen.

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    20.12.2009
    Beiträge
    86
    Ich habe jetzt alles aufgebaut und auf einem Steckbrett getestet mit 5 kleine Anzeigen. Man sieht bei den letzten 2 Anzeigen bezüglich der Verkabelung, dass diese schwach Flackern, und somit stören. Ist das auf die Frequenz zurück zu führen? Induziere ich in den anderen Leitungen schon eine Spg? Je höher ich die Frequenz mache, desto größer werden die Störungen und bei mehreren Anzeigen. -> Entstörkondensatoren?

    Upps... habe gerade rausgefunden dass es ein Softwareproblem war, ich habe den Port zu wenig Zeit gegeben,
    entschuldigung für die Störung

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    20.12.2009
    Beiträge
    86
    Aber wenn ich in der Hauptschleife die Daten raussschreibe und die neue Zeile generiere und ein _delay_us reinbringe, sodass mein ausgang genau 1ms ist. Dann brauch ich doch keinen Timer... Was sagt ihr dazu?

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Stoppuhr
    Von derpedi im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 11
    Letzter Beitrag: 07.03.2010, 20:37
  2. Suche schweres Alu-T-Nuten-Profil 80-100mm Breite
    Von erik_wolfram im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 4
    Letzter Beitrag: 26.01.2010, 07:47
  3. Drucksensor für 100mm Wassersäule gesucht
    Von BlaueLed im Forum Sensoren / Sensorik
    Antworten: 2
    Letzter Beitrag: 08.04.2008, 07:29
  4. Suche Hohlkugel Kunststoff/Gummi Dm. 80-100mm
    Von toemchen im Forum Mechanik
    Antworten: 22
    Letzter Beitrag: 19.10.2006, 21:50
  5. Stoppuhr an Lichtschranken
    Von Sebian im Forum Elektronik
    Antworten: 36
    Letzter Beitrag: 22.05.2005, 09:07

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test