www.mikrocontroller.net

Forum: Codesammlung Atmega8 Schachuhr mit Max7219


Autor: Samuel K. (sam1994)
Datum:
Angehängte Dateien:

Hi

Ich hab in den letzten paar Wochen, eine Schachuhr selber gebaut.
Gehäuse ist noch nicht ganz fertig, mit dem Code kann man aber schon
alle Spielmodi spielen, die es auf digitalen Schachuhrem gibt.

Das Projekt ist noch nicht ganz fertig, da noch ein paar Sachen geplant
sind:

- Ein und Ausschalter per Sleepmodi
- RS232 Schnittstelle + PC-Software um die Uhr mit dem PC zu
syncronisieren
- Und die ganzen Extras wie eigenen Zeiteinstellung speichern, laden,
Partie speichern und laden, autom. Ausschalten, Helligkeit speichern,
Piezo-Lautsprecher...

Beachten muss man, dass bei spielmodus 21 einer eingefügt wurde. Dadurch
stimmt die Modi nicht mehr ganz mit der DGT2010 überein. Es kann auch
sein, dass manche von der Einstellung nicht ganz stimmen, das liegt
daran, dass ich keine digitale uhr habe und das austesten kann. Wer so
einen Bug findet -> bitte melden!

Was sie kann:

- Zeitmodi: siehe http://www.schachschiri.de/dgt_2010.pdf
- Ändern der Zeit während dem Spiel
- Zugzähler (wird benötigt für einen spielmodus)
- Helligkeit ändern (16 Stufen)


Schaltplan erklär ich kurz:

- Atmega8 Grundschaltung mit Quarz (muss in main.c in F_CPU eingetragen
werden).
- Max7219 an SPI
- 8*7 Segment Anzeigen an den Max*
- Matrix Tastatur an ADC0 (aufbau im Anhang).
- Öffner je an PD6 und PD7 (wenn es schließer sind muss man einfach die
PIND Abfrage invertieren).

Wer andere Widerstände benutzen will, kann auch andere nehmen, das muss
man dann in der utils.c in dem key Array andere Werte benutzen.


Ich habe das ganze auf Streifenraster aufgebaut, und finde, dass das für
das extrem geeignet war. Selbst mit angefertigten Platinen, würde man
nicht viel mehr Platz rausholen.

Im ganzen Projekt können übrigens Bugs sein, wenn jemand einen findet,
bitte mir sagen.


*Im Nachhinein ist mir aufgefallen, dass die 7Segment Anzeigen
eigentlich zu viel Strom brauchen. Man kann das ganze auch gut mit einem
LCD Display machen, um meinen code zu nutzen muss man nur die
Ansteuerungsroutinen abändern.
Autor: Samuel K. (sam1994)
Datum:
Angehängte Dateien:

Da die Txt es irgenwie verrutscht hat, häng ich noch ne Exceltabelle an.
Autor: Samuel K. (sam1994)
Datum:
Angehängte Dateien:

Version 1.1

Würde ich jetzt als lauffähig bezeichnen, es waren noch ein paar grobe
Fehler in V1.0.
Autor: ams (Gast)
Datum:

Kannst auch den AS1107 oder 06 von austriamicrosystems benutzen, der
kostet nur die Hälfte und ist voll kompatibel.
Autor: Samuel K. (sam1994)
Datum:

ams schrieb:
> Kannst auch den AS1107 oder 06 von austriamicrosystems benutzen, der
> kostet nur die Hälfte und ist voll kompatibel.

Danke für den Tipp. Der Max7219 war eigentlich nicht geplant.
Ich hatte ursprünglich vorgehabt das ganze zu multiplexen, allerdings
hatte ich gerade keine brauchbaren 7 Segment und habe ein Angebot bei
ebay für 7 € (mit kostenlosem Versand) gesehen bei dem 4*2 7Segment
Anzeigen dabei waren + den Max7219.
Autor: Samuel K. (sam1994)
Datum:
Angehängte Dateien:

So Version 2 ist fertig. 3 Bugs wurden gefunden und behoben. 2
Änderungen, daruter auch die Speicherung des Spielmodis und der
Helligkeit. Wer das verwenden will muss allerdings noch ein 2mF vor den
µC schalten, damit er genug Zeti zum Speichern hat (funktioniert bei
einfachem Speichern, bei dem doublesave modus hab ich es noch nicht
ausprobiert).
Autor: Herbert (Gast)
Datum:

Schöne Idee, gibt's auch nen Schaltplan?
Autor: Samuel K. (sam1994)
Datum:

Ich hab mal einen erstellt.

Dabei ist zu beachten:

- Die Schalter S1 und S2 müssen Öffner sein, sonst muss es in der
PlayManual Methode umprogrammiert werden.

- Max7219 bekommt natürlich noch die 8 Segment Anzeigen dran. Das sollte
aber jeder selber können (falls nicht siehe Datenblatt
http://datasheets.maxim-ic.com/en/ds/MAX7219-MAX7221.pdf)

- In meiner Schaltung steckt noch der PR4404 vorne dran mit 2 Batterien,
der die Spannung auf 4.5V anhebt (für die Schaltung siehe Datenblatt
http://www.prema.com/pdf/pr4404.pdf oder noch besser
Beitrag "Re: PR4404 auf 5V funktioniert nicht unter Last" für die 5V). Für die
4.5V muss man ein bisschen mit dem Spannungsteiler experimentieren, ich
habe 1.8k und 100 Ohm genommen.

- Ich habe den Schaltplan mal eben kurz erstellt, ich selber habe es auf
Streifenraster aufgebaut -> Es können Fehler drin sein!
Autor: Samuel K. (sam1994)
Datum:
Angehängte Dateien:

Und dann noch vergessen ihn anzuhängen.

Hier noch ein Link wie ich zu der Tastenmatrix kam:

http://www.avr-asm-tutorial.net/avr_de/keypad/keyboard.html'

Falls du es nachbauen möchtest: Ich werde wahrscheinlich bald Version 2
posten. Die ganze Software ist dann neugeschrieben und es wird
stromsparend ausgelegt sein. Zu dem wird es neue Funktionen geben.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net