mikrocontroller.net

Forum: Projekte & Code Atmega8 Schachuhr mit Max7219


Autor: Sam .. (sam1994)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Sam .. (sam1994)
Datum:
Angehängte Dateien:

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

Autor: Sam .. (sam1994)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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:

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

Autor: Sam .. (sam1994)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sam .. (sam1994)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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).

Autor: Herbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schöne Idee, gibt's auch nen Schaltplan?

Autor: Sam .. (sam1994)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Sam .. (sam1994)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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/keyb...

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
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
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 bestätigst du, die Nutzungsbedingungen anzuerkennen.