Forum: Mikrocontroller und Digitale Elektronik Arduino Mega, Einstellbare Zeitanzeige (über 7-Segmentanzeige) für Vorträge u. Ä.


von Dominik W. (dominik_wa)


Lesenswert?

Hi,
ich bräuchte bitte eure Hilfe bei meiner „Mikrocontroller Aufgabe“.
Ich besuche eine weiterführende Schule. Dort haben wir vor den Ferien 
mit dem Fach Mikrocontroller begonnen. Ich bin noch nicht mit dem System 
vertraut, also Arduino-Anfänger. Nun habe ich die Aufgabe erhalten, ein 
Software-Programm zu erstellen, mir fehlt jedoch der Lösungsansatz.
Kann mir jemand weiterhelfen?

Materialien:
Arduino Mega 2560 und 4* 7-Segmentanzeige 
(https://www.conrad.de/de/7-segment-anzeige-rot-57-mm-82-v-4-v-ziffernanzahl-1-kingbright-sa23-12ewa-160059.html)

Ziel:
Einstellbare Zeitanzeige (über 7-Segmentanzeige) für Vorträge u. Ä.

Aufgabenstellung:
Es soll per jeweiligen Tastendruck  eine 7-Segmentanzeige einzeln von 
0-9 hochzählbar sein, sodass wenn ich z. B. fünf, sechs, sieben Mal den 
Taster betätige, mir dann die fünf, sechs, sieben angezeigt wird usw. 
Sobald die 4 Zeiten/Zahlen eingestellt sind, soll über eine Bestätigung 
(am besten über einen fünften Taster) die Zeit beginnen 
herunterzuzählen!

Beispielhafte Darstellung:
erste Anzeige  2.
zweite Anzeige  2.
dritte Anzeige  3.
vierte Anzeige  0.
= 22 Min. und 30 Sek.
Durch Bestätigung läuft dann die Zeit von 22.30 Min. herab.

Für die bessere optische Darstellung sollen drei LEDs verwendet werden:
Wenn die Zeit sich noch im normalen Vortragsrahmen befindet, leuchtet 
eine LED z. B. Grün, wenn die Zeit kurz vor Vortragsende ist, leuchtet 
sie Gelb und bei Zeitüberschreitung Rot.

Abschließend noch eine Frage zur Hardware:
Benötige ich zwischen Arduino Mega und den 7-Segmentanzeigen zusätzlich 
einen „IC“ (beispielsweise) oder reicht es aus, nur die benötigten 
Widerstände dazwischenzuschalten.

Für eure Unterstützung sag ich schon mal Danke!

von 7segmente (Gast)


Lesenswert?

Zähl doch mal die Anzahl der Pins deines Arduino und die der Anzeige, 
das wird recht eng... Mit einem 7 Segment Treiber lässt sich da schon 
einiges an Kabel und programmieraufwand einsparen.

Allerdings solltest du für so eine leichte! Aufgabe keine Hilfe von 
außen brauchen, es sei denn du bist nicht willens Eigeninitiative zu 
zeigen. Solche aufbauten existieren zu tausenden im Netz und ich wette 
du bist nicht der erste der hier nach Hilfe zu Software fragt.

Man lernt halt nur durch Selbermachen...

von 7segmente (Gast)


Lesenswert?

7segmente schrieb:
> Zähl doch mal die Anzahl der Pins deines Arduino und die der
> Anzeige, das wird recht eng... Mit einem 7 Segment Treiber lässt sich da
> schon einiges an Kabel und programmieraufwand einsparen.
> Allerdings solltest du für so eine leichte! Aufgabe keine Hilfe von
> außen brauchen, es sei denn du bist nicht willens Eigeninitiative zu
> zeigen. Solche aufbauten existieren zu tausenden im Netz und ich wette
> du bist nicht der erste der hier nach Hilfe zu Software fragt.
> Man lernt halt nur durch Selbermachen...

Software = soetwas

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

57mm?
Wer soll denn das sehen beim Vortragen?

Das ist da schon eher die passende Größe, für das Teil gibts auch nen 
Countdown.
http://www.fritzler-avr.de/HP/dasuhr.php

von Paul B. (paul_baumann)


Lesenswert?

Mw E. schrieb:
> Wer soll denn das sehen beim Vortragen?

Wer soll denn Deine Uhr vor tragen? Da brauchst Du doch 10 Mann dafür.
:)
MfG Paul

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Die ist alleine tragbar, ohne Scherz!
Hat sogar nen ausbalancierten Griff in der Mitte.

von Hubert G. (hubertg)


Lesenswert?

Also mit den Pin hast du sicher keine Probleme, es sind etwa 70 
vorhanden, das sollte leicht reichen.
Für die 7Seg-Anzeige wirst du aber Treiber brauchen, z.B. ULN2803 und 
natürlich eine entsprechende Stromversorgung und Vorwiderstände.

von Draco (Gast)


Lesenswert?

Der 2560 langweilt sich damit doch zu tote! :-D Bissle Overkill - aber 
nun ja...

Schau mal im Netz zu MAX7219 etc... das ist der richtige Controller für 
deine 7-Seg Anzeigen, da reicht dir einer davon, der kann 8 Stellen 
ansteueren (vielleicht sogar mit den 8x8 Seg?! Sieht geiler aus!) - 3 
Pin. Für die Tasten (Jede Ziffer einzeln oder nur die Minuten up/down?) 
ein Taster für Start / Reset (Push = Start und Push-Hold = Reset), sind 
wir nochmal bei 2-6 Pin. Die drei Status LEDs, nochmal 3 Pins. Also so 
im groben ca. 8 Pins plus eventuell 4 zusätzlich für die anderen Zahlen.

- 1x kleiner Ardunio mit 12 I/Os = 5€
- 1x MAX7219 = ~5€
- 4x 7Seg Anzeigen = ~12€
- Hühnerfutter = ~5€

Code:
- Sekunden Timer
- Pin-Change Interrupt
- I2C Kommunikation (für den MAX7219)

Wenn man sehr sehr sehr verschwenderisch ist und die I2C per Software 
macht: ~2KB Code.


Fertig ist die Laube.

von Domethom (Gast)


Lesenswert?

@7segmente:
Es ist schön wenn es für dich einfach ist für mich sind beide Sachen 
Neuland.
Aber so viel habe ich schon berücksichtigt, dass es mir an den Pins 
nicht scheitern sollte.

@Mw En:
Es soll nur der Referent sehen können und da gewünscht wurde, dass auch 
das Verhältnis der Anzeige zum notwenigen Behältnis passen soll wurde 
auf die einzelnen 7-Segmentanzeigen zurückgegriffen. Da die anderen 
Standard Anzeigeblöcke zu klein waren.
Leider ist deine Variante zu groß und kein Countdown Zähler.



@Hubert G., Draco:
Danke für die Info mit den Treiber. Das heißt ich brauche auch noch 
zwingend dieses Bauteil bzw. wenn ich genügend Pins habe kann ich diesen 
Treiber auch weg lassen?

von Hubert G. (hubertg)


Lesenswert?

Domethom schrieb:
> Danke für die Info mit den Treiber. Das heißt ich brauche auch noch
> zwingend dieses Bauteil bzw. wenn ich genügend Pins habe kann ich diesen
> Treiber auch weg lassen?

Einen Treiber kannst du nicht weglassen, die Anzeige braucht 10V, also 
zumindest 12V vom Netzteil und Vorwiderstände. Vom µC bekommst du nur 
5V.

von holger (Gast)


Lesenswert?

> wenn ich genügend Pins habe kann ich diesen
>Treiber auch weg lassen?

Nein, ein Atmega kann eine LED Anzeige die 8,2V benötigt
nicht ohne Treiber ansteuern.

von Flo85 (Gast)


Lesenswert?

Einen Treiber brauchst du in jedem Fall da die von dir verlinkten 
Anzeigen eine Spannung von 8,2V (4V für den Punkt) benötigen, das geht 
nicht ohne Treiber.

Ob ein Max7219 damit klar kommt bin ich mir auch nicht sicher, hab mich 
mit dem noch nicht eingehend beschäftigt.

von Jörg R. (solar77)


Lesenswert?

Flo85 schrieb:
> Ob ein Max7219 damit klar kommt bin ich mir auch nicht sicher, hab mich
> mit dem noch nicht eingehend beschäftigt.

Der 7219 kann das vom TO gewählte Display nicht direkt ansteuern.
Zum einen wegen der Spannung die das Display benötigt, zum anderen ist 
er für Common Kathode Displays ausgelegt.

Das Display gibt es bei Reichelt etwas preiswerter als bei Conrad.

http://www.reichelt.de/Siebensegment-Anzeigen/SA-23-12-RT/3/index.html?&ACTION=3&LA=2&ARTICLE=31577&GROUPID=3002&artnr=SA+23-12+RT

Ich würde für die Ansteuerung Schieberegister nehmen und als Treiber 
ULN2003 o.ä. Alternativ gibt es auch Schieberegister die das Display 
direkt ansteuern können > TPIC6B....(genauen Typ habe ich jetzt nicht im 
Kopf)

: Bearbeitet durch User
von Dominik W. (dominik_wa)


Lesenswert?

Hi,
 so habe jetzt erstmal zeit gebraucht um die Infos zu bearbeiten.

@Hubert G, holger,
Flo85


Danke für die Antwort, gut dann muss es mit Treiber sein, da ich die 
Spannung nicht konstant von Netz/Akku herbekomme.

@Draco,Flo85
//Ob ein Max7219 damit klar kommt bin ich mir auch nicht sicher, hab 
mich
//mit dem noch nicht eingehend beschäftigt.
Danke für die Info mit dem Max.. das Datenblatt ist sehr übersichtlich 
aber wohl doch nicht geeignet wie Jörg R. meint.
Ja es sollen alle Anzeigen separat mit einem Taster realisiert werden 
und mit einem weiteren bestätigt und dann der Timer ablaufen (so 
ungefähr wie ein Wecker).

@Jörg R.:
// Das Display gibt es bei Reichelt* etwas preiswerter als bei Conrad*.
Die Anzeigen sind schon fürs erste schon im Haus.
 Außer es gibt noch eine
andere Wahl mit der ich eine große Anzeige mit VIER Zahlen Realisieren 
kann mit passenden Verdrahtungs- und Softwareaufwand, dann wäre ich auch 
offen dafür!


// o.ä. Alternativ gibt es auch Schieberegister die das Display
direkt ansteuern können > TPIC6B....

Sonst habe ich mir diese Variante angeschaut,
>>www.reichelt.de/ICs-TLC-TSA-/TPIC-6B595-N/3/index.html?ACTION=3&GROUPI 
D=5480&ARTICLE=147328
>>http://cdn-reichelt.de/documents/datenblatt/A200/TPIC_6B595_DB.pdf
>>http://pdf1.alldatasheet.com/datasheet-pdf/view/55170/ALLEGRO/6B595.html

1. wobei ich nicht genau weiß wie ich die  anderen Anschlüssen eines 
(Außer OUT 0-7) TPIC6B595 Verdrahten/an klemmen muss!
2. wie/wo müsste ich dort meine Taster Verdrahten, dass sie mir auch 
jeweils beim drücken um eins hochzählen??
3. Müsste ich diesen TPIC Software mäßig auch noch berücksichtigen?

Über weitere Hilfe bin ich dankbar! vg schönen Abend noch

Um weitere

von Flo85 (Gast)


Lesenswert?

Der TPIC ist nur ein Schieberegister, das macht gar nicht von alleine, 
weder hochzählen noch einen Taster einlesen, das muss deine Software 
machen.

von Hubert G. (hubertg)


Lesenswert?

Wenn du es tatsächlich mit einem Arduino-Mega machen willst, brauchst du 
den TPIC nicht. Du hast genügend I/O frei um jedes Segment einzeln 
anzusteuern.

von Flo85 (Gast)


Lesenswert?

Biite lies doch mal den Thread bevor du postest! Eine LED Anzeige die 
8,2V braucht kann man nicht direkt mit einen µC ansteuern.

von Flo85 (Gast)


Lesenswert?

Irgend einen Treiber braucht er also, der TPIC ist nur eine Möglichkeit 
die eben auch dafür sorgt das man nur wenige Pins braucht, egal wieviele 
Anzeigen man ansteuern will. Ein ULN2803, von mir aus direkt mit 32 PINs 
aus dem µC angesteuert, wäre eine andere.

von Peter D. (peda)


Lesenswert?

Flo85 schrieb:
> Eine LED Anzeige die
> 8,2V braucht kann man nicht direkt mit einen µC ansteuern.

Kann man schon. Der MC muß ja nur die Spannungsdifferenz von hell nach 
dunkel schaffen.
Ich hab z.B. ne Jumbo-LED Anzeige direkt vom AVR treiben lassen (mit 
Vorwiderständen) und die Anoden an +11V gelegt. In die Dezimalpunkte 
mußte ich allerdings noch ne Z-Diode 3,9V legen.

Z.B. ein ATmega162 könnte alle 28 Segmente treiben und hat dann noch 7 
IOs für anderes übrig.

: Bearbeitet durch User
von Hubert G. (hubertg)


Lesenswert?

Flo85 schrieb:
> Biite lies doch mal den Thread bevor du postest! Eine LED Anzeige die
> 8,2V braucht kann man nicht direkt mit einen µC ansteuern.

Ja, du solltest lesen, denn dann wüsstest du das ich schon anfangs einen 
ULN2803 als Treiber empfohlen hatte. Ich sehe bei dem Übermaß an I/O 
keinen Sinn ein Schieberegister einzusetzen.

28 Segmente direkt vom µC anzusteuern ist doch etwas kritisch. Wenn alle 
Segmente gleichzeitig leuchten, wären das 560mA. Das wären doch etwas 
mehr als die im Datenblatt vorgegebenen 200mA nach GND.

von Jörg R. (solar77)


Lesenswert?

Bei dem Überangebot an Pins reichen auch entsprechend viele BC547 O.ä..
Möglichkeiten gibt es ja wohl genug.

Die Frage ist warum ein 2560 ?
Ok, wenn es eine Vorgabe ist dann ist es halt so. Ansonsten reicht auch 
ein Atemega328 oder ein.......die Auswahl ist riesig.

von Draco (Gast)


Lesenswert?

Peter D. schrieb:
> Ich hab z.B. ne Jumbo-LED Anzeige direkt vom AVR treiben lassen (mit
> Vorwiderständen) und die Anoden an +11V gelegt.

Hä? Erklär mal bitte. Kann mir das grad nicht vorstellen. Du hast da ja 
sicherlich nen Transistor als Treiber gehabt oder?

von Jörg R. (solar77)


Lesenswert?

Dominik W. schrieb:
> eiswerter als bei Conrad*.
> Die Anzeigen sind schon fürs erste schon im Haus.
>  Außer es gibt noch eine
> andere Wahl mit der ich eine große Anzeige mit VIER Zahlen Realisieren
> kann mit passenden Verdrahtungs- und Softwareaufwand, dann wäre ich auch
> offen dafür!

Die Anzeigen gibt es auch in 100 mm. Eine weitere Möglichkeit ist selber 
bauen. 8 oder 10 mm Leds und Du baust die Anzeige so groß wie Du willst. 
Mit Duo oder RGB-Leds kannst Du mit den Segmenten verschiedene Modi 
darstellen.
Segmente aus Teilstücken von Led-Bändern ginge auch. Bänder mit WS2812B 
bieten Möglichkeiten mit geringen Verdrahtungsaufwand, bei 5 Volt 
Betriebsspannung. Usw. usw.....

> 1. wobei ich nicht genau weiß wie ich die  anderen Anschlüssen eines
> (Außer OUT 0-7) TPIC6B595 Verdrahten/an klemmen muss!

> 2. wie/wo müsste ich dort meine Taster Verdrahten, dass sie mir auch
> jeweils beim drücken um eins hochzählen??
Die Taster kommen an freie Pins, den Rest macht die Software.

> 3. Müsste ich diesen TPIC Software mäßig auch noch berücksichtigen?
Ja!

Du musst Dich schon damit beschäftigen? Das ist Deine Hausaufgabe.
Dir wird niemand einen Schaltplan und den Code für Dein Board liefern.
Gerade im Arduino-Umfeld gibt es unzählige Hilfe im Netz. Du bekommst 
hier Anregungen und Hilfestellung...aber Du musst schon aktiv werden und 
Eigeninitative einbringen?

von Jörg R. (solar77)


Lesenswert?

Draco schrieb:
> Peter D. schrieb:
>> Ich hab z.B. ne Jumbo-LED Anzeige direkt vom AVR treiben lassen (mit
>> Vorwiderständen) und die Anoden an +11V gelegt.
>
> Hä? Erklär mal bitte. Kann mir das grad nicht vorstellen. Du hast da ja
> sicherlich nen Transistor als Treiber gehabt oder?

Würde mich auch interessieren. Schaltbild?

von MAX7219 (Gast)


Lesenswert?

Ein MAX7219 kann durchaus höhere Spannungen/Ströme "treiben".
https://www.maximintegrated.com/en/app-notes/index.mvp/id/1196

von Peter D. (peda)


Lesenswert?

Draco schrieb:
> Hä? Erklär mal bitte. Kann mir das grad nicht vorstellen. Du hast da ja
> sicherlich nen Transistor als Treiber gehabt oder?

Liefert der AVR high, liegen an dem Digit nur 6V und damit ist es 
dunkel.
Ich betreibe die Anzeigen auch nur mit ~6mA Segmentstrom. Damit werden 
die 200mA nicht überschritten und ich finde es trotzdem hell genug. Das 
Auge nimmt ja Helligkeit logarithmisch war.
Beim ATmega162 im TQFP sind sogar max 400mA erlaubt.
Treibertransistoren brauche ich nicht.

von Jörg R. (solar77)


Lesenswert?

MAX7219 schrieb im Beitrag #4688653:
> Ein MAX7219 kann durchaus höhere Spannungen/Ströme "treiben".
> https://www.maximintegrated.com/en/app-notes/index...

Der MAX7219 kann das aber nur mit externen Bauteilen...
...This application note discusses how the MAX7219/7221 can be used with 
external drive transistors.....

Er allein kann es nicht.

von Lurchi (Gast)


Lesenswert?

Für die Anzeigen reichen auch 5 mA oder so aus, wenn es nicht gerade in 
der prallen Sonne ist. Ich habe es so ähnlich schon mal mit ICL710x 
gemacht: auch da IC mit 5 V versorgt und LEDs an höhere Spannung und 
etwa 8 mA je Segment (Vom IC vorgegeben).

Wenn man mehr Helligkeit braucht oder einem die extra Spannung 
unheimlich ist, kann man Treiber wie die ULN2003 nutzen. Da hätte man 
dann ggf. auch die Möglichkeit die Anzeuge zu multiplexen, so dass man 
mit weniger (etwa 12) IO Pins auskommt.

von Dominik W. (dominik_wa)


Lesenswert?

Guten Abend,
danke an alle netten Helfer für die Unterstützung.
Dann wird wohl der ULN2803 herhalten müssen.:)

oder Alternativ
 habe ich sogar gesehen das ich für meine
mobile Funktion auch den Power Bank nehmen kann,
da ich mir dort meine beiden Spannungen abgreifen kann.

http://rs-online-privat.de/Products/ProductDetail/7d741b78-a3cc-4fd1-b1ee-30fc4b48cab2

Für µC mit USB 5V
und
für die Anzeigen direkt Ansteuerung auch
mit Multiplexing über den anderen Output, wobei ich nur noch
eine passende Buchse auf eine z.B. Lochplatine mit den Anzeigen löten 
muss.

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
Noch kein Account? Hier anmelden.