Hallo zusammen, ich bin dabei Hardware fuer einen Schachcomputer zu bauen. Allerdings habe ich ein Problem mit dem Brett: Ich wollte eine 8x8 Matrix mit ReadKontakten aufbauen, so dass man erkennen kan, wann und wo eine Figur bewegt wurde. Nur das ist nicht so einfach, da ja gleichzeitig 32 Figuren draufstehen koennen. Hat jemand ne Idee wie man so etwas loesen kann? Danke. Alex
Hi Alex, ich kann Dir zwar Deine aktuelle Frage nicht beantworten. Aber mich interessiert brennend warum Du überhaupt eine spezielle Hardware baust ? Ist das noch "zeitgemäss" ? Würde man nicht eher ein "normales" PC-Programm schreiben? Gruß UBoot-Stocki
Hallo... @UBoot-Stocki: Natuerlich, Du hast recht. Das Programm laeft ja auch schon auf dem PC. Es macht aber mehr Spass so etwas mal zu bauen. Alex
Matrix ist schon richtig, zusätzlich noch eine Diode zu jedem Reedkontakt in Reihe, damit man keine Fehlinfos aus anderen Zeilen/Spalten der Matrix bekommt. Viel Spaß beim Bauen, Markus_8051
8 waagrechte "drähte" für jede Zeile 8 senkrechte "drähte" für jede Spalte ein reed kontakt an den Kreuzungen für jedes Feld gib auf a ein high und schau dann ob auf 1 oder oder 3 oder 3 ........ ein high zurückkommt wo ein high zurückkommt steht eine Figur das selbe dann mit b und c und.... hab dir in paint was gekritzelt hoffe du kommst damit klar
solltest in reihe zu jedem Kontakt eine Diode schalten, damit dir das high signal über die anderen Kontakte nicht verschwindet
Guck mal bei atmel.com nach der Application Note 240. Da ist ein ziemlich einfacher Algorithmus für eine Matrix-Tastatur beschrieben. Den müsste man auf jeden Fall etwas abändern, aber für den Anfang könnte der schon interessant sein. Es wird auf jeden Fall umständlicher (bin auch gerade am Überlegen...) Gruß Rahul
Hallo... Das mit der Matrix ist mir klar (habe schon oeffter Matrizen eingesetzt). Mein Problem ist, das man bei einer Matrix "nur eine" (je nach dem, wo man drueckt auch zwei) Tasten erkennen kann. Bei einem Schachbrett stehen aber 32 Figuren am Anfang auf dem Brett, d.h. ich kann z.B. wenn auf einer Spalte 2 figuren hintereinander und in einer Reihe 2 Figuren nebeneinander stehen, kann ich das nicht erkennen, da der Readkontakt geschlossen ist (die Figur steht). Wie so etwas geht weiss ich nicht. ;-(( Juergen hat recht: Es gibt einen definierten Anfangszustand. Die Engine hat diesen Zustand und verwaltet auch das Brett. Wenn jetzt aber jemand die figuren umstellt oder nicht richtig hinstellt, dann geht dieses Verfahren nicht. Das werde ich aber erstmal noch nicht versuchen. Erstmal muss das so laufen. Alex
Hi Alex, Du musst die Reed-Schalter mit Dioden entkoppeln, sprich: zu jedem Reed eine D in Serie. Dann kannst Du alle gleichzeitig erkennen. Stefan
war zu faul noch die reedschalter zu machen aber das prinzip ist ja das entscheidende :)
Hallo, Danke fuer die Tips, aber.. Oder bin ich zu "bresig" oder ihr wisst etwas von den Readkontakten, das ich nicht weiss. Fallen die den nach einer Zeit ab? Wenn ich jetzt mal die o. g. Schaltung (matrix.jpg) betrachte... Angenommen alle 6 Schalter sind geschlossen: Ich lege zuerst an die Zeilen eine "1" und lese die Spalten -> alle sind Null. Jetzt andersherunm. Wie soll ich jetzt erkennen, wenn R3C3 weggenommen wurde? Alex
reedkontakte bleiben angezogen solange ein magnet in der nähe ist. du liest die spalten einzeln aus. jede leitung wird einzeln überprüft/bekommt einen eigenen port. wenn jetzt nur auf einem feld einer reihe eine figur steht, sagen wir mal auf dem 2. dann ist auch nur die schalterstellung an port nr 2 verändern. die dioden verhindern, dass ein offener schalter gleich die ganze reihe als geschlossen markiert. geh das einfach mal im kopf anhand der sschaltungsskizze durch dann siehst du was wir meinen
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.