Hallo! Ich möchte gerne möglichst einfach eine Tastatur seriell auslesen. Jede Taste hat einen eigenen Widerstand, kleinere Widerstände "überlagern" alle anderen Tasten (d.h. es wird immer nur die niederwertigste erkannt). Da es sich um 6 Tasten handelt habe ich 7 Zustände (halt 6 + 1 nicht gedrückt). Da der uC eigentlich nichts anderes machen muss als die Tasten auszulesen kann ich z.B. 8 IO-Pins darauf verwenden das Signal zu dekodieren. Habe mir das AN betreffend dem AC durchgelesen, denke aber das ich bei einer derart geringen benötigten Auflösung etwas noch einfacheres machen könnte!? Hat jemand eine Idee? Gruß Robert
Hi hä? Du hast eine Tastatur die 6 verschiedene Widerstände zwischen zwei Pins schaltet je nachdem welche Taste gedrückt ist? Dann häng deine Tastatur + einen Widerstand an einen freilaufenden AD-Wandler und frage diesen zyklisch ab. Matthias
Na, diese Variante ist mir halt zu umständlich. Vielleicht erkläre ich meine Anforderung noch mal einfacher: Ich habe eine Leitung nach Masse die 7 Zustände haben kann: offen, 10k, 20k, ..., 60k. Und ich möchte mit minimalen Hard- und Softwareaufwand diese detektieren. Dazu möchte ich einen 2313 (wenn nicht nen Tiny) benutzen. Ich habe also keinen AD-Wandler und möchte auch keinen zusätzlichen nehmen. Auch würde ich gerne die Variante mit dem Analogcomparator umgehen, da dieser min. 8bit Auflösung hat. Ich möchte aber nur 3bit (7 Zustände) haben. Klar, man kann die niederwertigen Bits maskieren, aber irgendwie ist das wie mit Kanonen auf Spatzen zu schießen. Hatte schon überlegt die Leitung über verschiedene Spannungsteiler an 6 Portpins zu hängen. Aber ich weiß nicht ob die high oder low dann zuverlässig erkannt werden. Fällt jemanden noch etwas anderes ein? Gruß Robert
Hi was ist den einfacher als ein freilaufender AD-Wandler? Nimm ATTiny26 der hat AD drin. Einfacher (was Hard als auch Software angeht wirst dus kaum bekommen. Matthias
Hi! Irgendwie komme ich nicht ganz klar.Ein digitales Portpin ist doch nicht in der Lage verschiedene Widerstände bzw. Spannungspegel zu unterscheiden, es gibt nur High und Low, welches eindeutig definiert ist.Du wirst wohl mit deiner Idee an einer analogen Auswertung nicht vorbei kommen. Gruss Uwe
Schau mal in meinem C-Tutorial unter Artikel im Kapitel Messen eines Widerstandes nach und ersetze das 10 KiloOhm-Poti einfach durch deine Widerstandsschaltung. Die Messgenauigkeit dürfte für deine Zwecke allemal ausreichen. Wenn du in ASM programmieren willst musst du dir das Progrämmchen für die Auswertung leider selber zusammenstricken denn für mich ist ASM ein Greuel. Gruss Christian
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.