Forum: Projekte & Code Atmega8 Schachuhr mit Max7219


von Sam .. (sam1994)


Angehängte Dateien:

Lesenswert?

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.

von Sam .. (sam1994)


Angehängte Dateien:

Lesenswert?

Da die Txt es irgenwie verrutscht hat, häng ich noch ne Exceltabelle an.

von Sam .. (sam1994)


Angehängte Dateien:

Lesenswert?

Version 1.1

Würde ich jetzt als lauffähig bezeichnen, es waren noch ein paar grobe 
Fehler in V1.0.

von ams (Gast)


Lesenswert?

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

von Sam .. (sam1994)


Lesenswert?

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.

von Sam .. (sam1994)


Angehängte Dateien:

Lesenswert?

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).

von Herbert (Gast)


Lesenswert?

Schöne Idee, gibt's auch nen Schaltplan?

von Sam .. (sam1994)


Lesenswert?

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!

von Sam .. (sam1994)


Angehängte Dateien:

Lesenswert?

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.

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.