Ein kleines Beispiel in Assembler für einen ATmega8, 1MHz, wie 2x3 7-Segmentanzeigen eine Spannung (grün) und einen Strom (rot)anzeigen können. Zwei Tasten "Menue" und "Enter" ermöglichen schnell und einfach die Justierung des Systems, also ohne Potentiometer. Anzeige Spannung 0.00...2.56V (mV Bereich) 2.60...99.9V ( V Bereich) Anzeige Strom 0.00...9.99A Der Spannungsteiler für ADC0 bitte so dimensionieren, dass die Spannung am ADC0-Pin 2,5V (Referenzsspannung) nicht überschreitet. Optional kann der PWM-Ausgang für die Steuerung eines Lüfters verwendet werden, ab 50°C läuft der Lüfter an, ab 70°C volle Pulle. Die Kalibrierung bzw. Justierung ist relativ einfach. 1. Spannung von 2V anlegen und "CAL 2u" aufrufen + Enter (für mV-Bereich) 2. Spannung von 28V anlegen und "CAL 28u" aufrufen + Enter (für V-Bereich) 3. Strom 0 Einstellen und "CAL 0 A" aufrufen + Enter (für ev. vorhandenen Offset) 4. Strom 1A Einstellen und "CAL 1 A" aufrufen + Enter (für max 1A Strom) 4a. alternativ für größere Ströme Strom 2A Einstellen und "CAL 2 A" aufrufen + Enter (für max 2A Strom) Die Ergebnisse werden im EEPROM des ATmega8 abgelegt. Menueführung : Menue-0: Anzeige Strom und Spannung Menue-1: Anzeige Temperatur Menue-2: Anzeige PWM z.B. für Lüftermotor Menue-3: "CAL 2u" - Kalibrierung 2V für den mV Bereich Menue-4: "CAL 28u" - Kalibrierung 28V Menue-5: "CAL 0 A" - Kalibrierung 0A (Offset) Menue-6: "CAL 1 A" - Kalibrierung 1A Menue-7: "CAL 2 A" - Kalibrierung 2A Menue-8: "A 0 xxx" - ADC0 Wert Menue-9: "A 1 xxx" - ADC1 Wert Menue-10:"A 2 xxx" - ADC2 Wert Menue-11:"A 3 xxx" - ADC3 Wert Bernhard Nachtag: Dieses Modul passt gut in ein Gehäuse RND 320-KD3005D, eigentlich wollte ich mit 4-stelligen Anzeigen arbeiten, jedoch die Fenster sind dafür zu klein.
:
Bearbeitet durch User
Sehr cool! Danke dafür, werde ich bestimmt mal aufbauen!
Es würde der Ablesbarkeit der Anzeige auch ausserhalb des dunklen Bastlerzimmers sicherlich helfen, wenn zumindest die Digit-Leitungen mit Transistoren zur Stromverstärkung ausgestattet werden, denn (5V-2.1V)/100Ohm=29mA*8=232mA schafft so ein ATmega-Pin nichal wenn man es sich vor Weihnachten ganz stark wünscht da hat man die Datenblattgrenzwerte ums 12-fache gerissen, aber auch die Segmentleitungen, dann könnte man sogar auf 60mA für die ganze Helligkeit laut Datenblatt hochgehen. Bei (SOT23 reicht schon) MOSFETs bräuchte man nichtmal Basisvorwiderstände. Aber entweder andere 'common Anode' Anzeigen oder Änderungen am Programm für invertierte Ausgänge. Der coole Chinese baut das natürlich mit einem SH79F3212 und spart sich Treiber und Vorwiderstände und hätte auch 12bit A/D damit nach dem kalibrieren nicht plötzlich bei einigen Werten die Anzeige um 2 springt und eine Zahl ausgelassen wird. Der nutzt auch einen OpAmp damit bei 10A nicht 2.56V Spannungsabfall zu 26W Verlustwärme am shunt führen und verstärkt lieber um Faktor 10, auch invertierend. Nur möglichst einen OpAmp besser als LM358, vielleicht LT1013.
MaWin schrieb: > Es würde der Ablesbarkeit der Anzeige auch ausserhalb des dunklen > Bastlerzimmers sicherlich helfen, wenn zumindest die Digit-Leitungen mit > Transistoren zur Stromverstärkung ausgestattet werden Mh.. stimmt. Ist mir gar nicht aufgefallen, dass hier Transistoren fehlen. Also wenn man da jetzt 4 Transistoren auf die Digit Leitungen setzt dann muss man im Programm das Ganze noch invertieren, richtig? @Bernhard Könntest du das noch machen?
Max B. schrieb: > Also wenn man da jetzt 4 Transistoren auf die Digit Leitungen setzt dann > muss man im Programm das Ganze noch invertieren, richtig? Also wenn man nur 6 (nicht 4) Transistoren einsetzt, dann muss das Programm nur die Digit-Leitungen invertieren, oder man nimmt 7-Segment mit gemeinsamer Anode und muss nur die 8 Segmentleitungen invertieren, aber einen Block muss man dann invertieren.
Sorry, ich meinte 6 Transistoren! Keine Ahnung wie ich auf 4 kam. Die Segmente haben doch common Anode. Aber stimmt... Einfacher wäre es doch jeweils 3 Transistoren zu nehmen für Spannung/Strom und im Programm zu invertieren.
MaWin schrieb: > Es würde der Ablesbarkeit der Anzeige … > … [viele gute Ratschläge] > … einen OpAmp besser als LM358, vielleicht LT1013. Bernhard hat ein simples und gutes Projekt geteilt. Wenn Du ein besseres mit weniger Bauteilen hast, dann teile das doch auch. Auf echte Fehler hinweisen (Verbindungsfehler im Schaltplan, Typos in der Typbezeichnung), OK. Aber an allem rummäkeln ist jetzt kein Ansporn für Bernhard, noch mal was geiles zu teilen.
A. S. schrieb: > Wenn Du ein besseres mit weniger Bauteilen hast, dann teile das doch > auch. Auf echte Fehler hinweisen PortPins mit 232mA zu beaufschlagen ist ein echter Fehler. Auf der Platine wäre Platz genug für 14 Transistoren und den OpAmp, entweder siegte hier die Faulheit oder das nicht-Nachdenken. Bessere uC-Auswahl wurde auch genannt. Also was willst du ? Kevin, das hast du schon ganz toll gemacht, das nächste Mal wird es bestimmt noch besser.
MaWin schrieb: > PortPins mit 232mA zu beaufschlagen ist ein echter Fehler. Mit welchen Daten genau hast Du dieses Ströme berechnet? Mit den typischen Daten des µC jedenfalls nicht. kommschon: Für den echten MaWin bist Du zu pedantisch und zu theoretisch.
A. S. schrieb: > Mit welchen Daten genau hast Du dieses Ströme berechnet Ich hatte extra auch für die Denkfaulsten den Rechenweg oben hingeschrieben, aber dann kommst du und bist auch noch lesefaul. Dass der ATmega das nicht schafft, sieht man schon im Photo, die 3 Segmente der 7 sind potzhell, die 8 der 0. dunkel und die 5 der 5 halbhell. Aber manchem doppeläugig Blinden fällt das natürlich nicht auf.
MaWin schrieb: > Dass der ATmega das nicht schafft, sieht man schon im Photo, die 3 > Segmente der 7 sind potzhell, die 8 der 0. dunkel und die 5 der 5 > halbhell. Aber manchem doppeläugig Blinden fällt das natürlich nicht > auf. Könnte auch am Multiplex liegen? Bernhard S. schrieb: > Ein kleines Beispiel in Assembler für einen ATmega8, 1MHz, > wie 2x3 7-Segmentanzeigen eine Spannung (grün) und einen Strom > (rot)anzeigen können. Danke.
Jens M. schrieb: > Könnte auch am Multiplex liegen Wenn man nicht verstanden hat, wie viel Strom zum Multiplexbetrieb notwendig ist, und die Schaltung unterdimensioniert, ist das die Folge von Multiplex, ja. https://dse-faq.elektronik-kompendium.de/dse-faq.htm#F.8.1
Max B. schrieb: > Sehr cool! > Danke dafür, werde ich bestimmt mal aufbauen! nee, werde ich bestimmt nicht, nur pfusch! schaut euch mal die asm quellen an - ein ahnungsloser der sich mal freund, wenn was leuchtet/blinkt. sw+hw einfach nur schrott!
MaWin schrieb: > Ich hatte extra auch für die Denkfaulsten den Rechenweg oben > hingeschrieben, aber dann kommst du und bist auch noch lesefaul. Ich sehe da nur eine "starke Vereinfachung". MaWin schrieb: > (5V-2.1V)/100Ohm=29mA*8=232mA Du bist also auf meinen Hinweis nicht eingegangen. Gut. Ich mache nicht in AVR, darum hab ich mir hier ein Datenblatt geliehen: http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2486-8-bit-AVR-microcontroller-ATmega8_L_datasheet.pdf Gehen wir mal von 2V für die LEDs aus, 5V Versorgung, gemeinsamer GND und 6 Segmente AN. Mit z.B. 11mA pro Segment wären das etwa 1,6V bzw. 0,3V an den Outputs, 1,1 am Widerstand und 2 an der LED. Passt also. Bei 2 Segmenten sind es keine 20mA. Also nicht mal ein Faktor 2. Und selbst den könnte man relativ einfach per SW eliminieren. Das ist mal etwas, das jemand, der noch nie gelötet hat innerhalb weniger Stunden komplett aufbauen und mit einem Multimeter in Betrieb nehmen kann. Mit Bauteilen aus dem Schrott. Ja, Transistor wären "richtig", aber dann braucht es schon wieder ein wenig mehr ... wie war das noch mit Kathode oder wie das hieß, und wo ist die bei diesem Transistor ohne erkennbare Beschriftung....
A. S. schrieb: > wie war das noch mit Kathode oder wie das hieß, und wo ist die bei > diesem Transistor ohne erkennbare Beschriftung.... Wer so ahnungslos durch die Welt tapert, dümmer als Bohnenstroh, sollte die Griffel stillhalten, wenn Erwachsene was schreiben.
hallo, ich bin schon öfters auf MC-Net-habe aber kaum den Login benutzt; weil diese Schaltung mich interresiert frage ich an : Haben Sie auf diesem Schaltplan 2x DVM-festgestellt- dass die Segmente afgb 2x gleich bezeichnet sind.. wo sind die anderen 3/4 Segmente "cde Dp" ? in den ASM-Dateien kann ich diese auch NICHT finden... Bitte um Berichtigung mfg Herby
sorry .equ BALKEN_A =PORTB .equ BALKEN_B =PORTB .equ BALKEN_C =PORTD .equ BALKEN_D =PORTD .equ BALKEN_E =PORTD .equ BALKEN_F =PORTB .equ BALKEN_G =PORTB .equ BALKEN_P =PORTD .equ PIN_BALKEN_A =5 .equ PIN_BALKEN_B =2 .equ PIN_BALKEN_C =3 .equ PIN_BALKEN_D =2 .equ PIN_BALKEN_E =1 .equ PIN_BALKEN_F =4 .equ PIN_BALKEN_G =3 .equ PIN_BALKEN_P =4
hallo, schön dass Sie so schnell sind; ABER: Balken B+D habe die gleiche Pin #2, etwas ist da NICHT richtig... mfg herby
Herbert G. schrieb: > Balken B+D haben die gleiche Pin #2 Korrekt, Lob! Sie unterscheiden sich im Port. .equ BALKEN_B =PORTB .equ BALKEN_D =PORTD Gruß Bernhard
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.