Grobe Widerstandsmessung

Gast #27326
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
Gast
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
Gast
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
Gast
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
Gast
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
Gast
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 23 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.