4stelliger 7segment zähler

Hallo.

Ich bin neu hier und möchte folgendes Projekt erstellen:

Ich habe 4 grosse 7-Segment Anzeigen (Pins: A-G, DP und COM), welche per Mausklick von 0-1000 aufwärts zählen sollten.
Tönt einfach, aber fühle mich als Anfänger mit meinem Arduino Uno so ziemlich überfordert...

Vielen Dank für eure Hilfe!

Was hast du bislang versucht? Das Netz sollte voll damit sein.

http://playground.arduino.cc/Main/DirectDrive88884Digit7SegmentDisplay

Mausklick ist schwer. Nimm Taster.

Nimm erst mal eine Ziffer und zähle von 0-9. Wenn das geht kannst du dich darum kümmern 4 Anzeigen zu multiplexen.

sschultewolter:
Was hast du bislang versucht? Das Netz sollte voll damit sein.

http://playground.arduino.cc/Main/DirectDrive88884Digit7SegmentDisplay

Beginne absolut bei 0...
Und habe 4 einzelne Segment-Bausteine.

michael_x:
Mausklick ist schwer. Nimm Taster.

Ok, danke für den Tipp.

Serenifly:
Nimm erst mal eine Ziffer und zähle von 0-9. Wenn das geht kannst du dich darum kümmern 4 Anzeigen zu multiplexen.

Werde ich so machen. Wo finde ich einen Sketch dazu?

Danke für eure Hilfe!

Am besten du fängst noch einfacher an. Erst mal die Anzeige weglassen und eine Zahl von 0-9 per Taster hochzählen. Ausgabe über die serielle Schnittstelle. Da lernst du schon mal wie man Taster entprellt und Variablen verändert.

Bei dem Display müsste man noch wissen ob die gemeinsame Anode oder gemeinsame Kathode hast

Am besten du fängst noch einfacher an

Ja.
Wenn du bei 0 anfängst, solltest du, bevor du in den Weiten des Web irgendwelchen Müll findest,

ansehen und entsprechend Serenifly's Tip nach

diese Punkte verstehen und möglichst ausprobiert haben:

2.Digital

  • Blink Without Delay: blinking an LED without using the delay() function.
  • Button: use a pushbutton to control an LED.
  • Debounce: read a pushbutton, filtering noise.
  • Button State Change: counting the number of button pushes.
  • Input Pullup Serial: Demonstrates the use of INPUT_PULLUP with pinMode().

Speziell für 7 Segment LED hat dir sschultewolter einen link gegeben:
http://playground.arduino.cc/Main/DirectDrive88884Digit7SegmentDisplay

Hier ist noch einer:
http://playground.arduino.cc/Main/SevenSegmentLibrary

Ob die anzuzeigende Zahl wirklich von dir manuell duch tausende Tastendrücke hochgezählt wird, sehen wir später :wink:

Diese "Arduino-Sketch-Finden" Geschichte ist Segen und Fluch zugleich.
Ziel ist, was du findest ansehen und selber besser machen.

Serenifly:
Am besten du fängst noch einfacher an. Erst mal die Anzeige weglassen und eine Zahl von 0-9 per Taster hochzählen. Ausgabe über die serielle Schnittstelle. Da lernst du schon mal wie man Taster entprellt und Variablen verändert.

Bei dem Display müsste man noch wissen ob die gemeinsame Anode oder gemeinsame Kathode hast

Es hat eine gemeinsame Anode.

michael_x:
Ja.
Wenn du bei 0 anfängst, solltest du, bevor du in den Weiten des Web irgendwelchen Müll findest,
http://www.arduino.cc/en/Tutorial/HomePage
ansehen und entsprechend Serenifly’s Tip nach
http://www.arduino.cc/en/Tutorial/DigitalReadSerial
diese Punkte verstehen und möglichst ausprobiert haben:

Speziell für 7 Segment LED hat dir sschultewolter einen link gegeben:
http://playground.arduino.cc/Main/DirectDrive88884Digit7SegmentDisplay

Hier ist noch einer:
http://playground.arduino.cc/Main/SevenSegmentLibrary

Ob die anzuzeigende Zahl wirklich von dir manuell duch tausende Tastendrücke hochgezählt wird, sehen wir später :wink:

Diese “Arduino-Sketch-Finden” Geschichte ist Segen und Fluch zugleich.
Ziel ist, was du findest ansehen und selber besser machen.

Vielen Dank für die Tipps. Na dann beginne ich mal bei null und hoffe möglichst bald auf 1000 zu sein…;).

bassgi:
Es hat eine gemeinsame Anode.

Dann so für eine einzelne Anzeige:
http://www.physics.mcmaster.ca/phy4d6/MCU/MC9S08/common_anode_LED.jpg
(ist ein anderer Prozessor, aber das Prinzip ist gleich. Bei Low am Ausgang leuchten die LEDs)

Und so für alle vier Ziffern mit vier PNP Transistoren zum Multiplexen:

http://img203.imageshack.us/img203/8453/ixm0.png
(bei dem zweiten Link sind die Segmentwiderstände etwas hoch, aber die kann man selbst dimensionieren)

Damit wird dann alle 1 oder 2ms zwischen einer Ziffer umgeschaltet. Es ist immer nur eine Ziffer auf einmal aktiv, aber da es so schnell geht erscheint es so dass alle gleichzeitig an sind. In vielen Beispiel Codes wird da ein Timer verwendet um auf den Takt zu kommen. Aber man auch millis() nehmen, wenn man auf sämtliche Delays verzichtet.