Forum: Mikrocontroller und Digitale Elektronik Pins optimal nutzen


von Hannes (Gast)


Lesenswert?

Hi,

ich habe noch 4 Pins am Controller frei und möchte 6 Taster und 2 duo 
LED mit möglich wenig zusätzlichen Bauteilaufwand betreiben. Habe keinen 
Platz mehr für ein Schieberegister, ich könnte noch ein paar Dioden und 
Widerstände unterbringen dann wäre Platztechnisch aber wirklich nichts 
mehr zu machen....

Habe leider keinen Analogpin zur Verfügung, habt Ihr eine Idee?

Gruß,
H.

von bronko (Gast)


Lesenswert?

...hmmm,

kenne ja jetzt nicht genau deinen restlichen Platz, aber vlt könntest du 
einen 8 pin ATtiny (ohne Quarz) noch unterbringen:

- 1 Pin für die Kommunikation mit deinem Hauptcontroller
- 4 Pins für die Duos
- 1 Pin ADC -> Taster
- 2 Pins  Versorgungsspannung

Viel Erfolg,
bronko

von Also manchmal... (Gast)


Lesenswert?

>noch 4 Pins am Controller frei und möchte 6 Taster und 2 duo
>LED mit möglich wenig zusätzlichen Bauteilaufwand betreiben.

Du hast das Farb-GLCD vergessen.

von Falk B. (falk)


Lesenswert?


von Hannes (Gast)


Angehängte Dateien:

Lesenswert?

@ Bronko,

hey das ist eine gute idee, und soetwas wäre im Notfall sogar denkbar... 
Ich werde mal über soetwas weiter nachdenken...

@Falk,

danke für den Link, kannte ich schon. Diese Schaltung nutzt einen 
internen Komperator wenn ich das noch recht weis, den habe ich leider 
nicht zur Verfügung...

Ich knobel gerade an dieser Lösung rum (siehe Bild) aber ich bin mir 
nicht sicher ob ich mit dem SPannungsteiler für die Schalter hinkomme 
ohne die LEDs zu beeinflussen...

Wenn das so gehen könnte, dann fehlen mir nur noch 2 Tasten...

Gruß,
H.

von mh (Gast)


Lesenswert?

Du bekommst den ganzen kram noch auf die Platine? Dann nimm doch irgend 
einen kleinen µC...

von Wilhelm F. (Gast)


Lesenswert?

6 Tasten an einer 3x3-Matrix mit 3 Entkoppelungsdioden an 3 Pins geht 
auf jeden Fall.

Die Duo-LEDs könntest du zwischen den Tastenabfragen an den selben Pins 
multiplexen. Denn die Tastaturabfragen an sich benötigen ja nur sehr 
sehr wenig Zeit, höchstens ein paar Maschinenzyklen.

von Frank K. (fchk)


Lesenswert?

Hannes schrieb:

> ich habe noch 4 Pins am Controller frei

welchen? welche Bauform? Schaltplan?

fchk

von MCUA (Gast)


Lesenswert?

>ich habe noch 4 Pins am Controller frei ...Habe keinen Platz mehr
vielleicht passen noch LittleLogic (bsp von TI) drauf, dass man sich 
damit was kleines Digitales zusammen friemelt. (bsp MUX , FF, Shift ...)

von Hannes (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

@Wilhelm
? He ? mit den duo LEDs verbinde ich mir doch alle Pins, da muss man 
sich erstmal etwas einfallen lassen um das zu vermeiden...


B1,B0,D2,D3 beim Atmega168.

Die Rot eingekreisten Teile sind doch bereits auf der Platine...Es 
kommen sechs Widerstände und 2 Dioden dazu, ich kann überall noch hier 
und da ein Teil dazwischenpuzzeln, aber größere Flächen sind schlecht...

Hannes

von MCUA (Gast)


Lesenswert?

>Ich knobel gerade an dieser Lösung rum (siehe Bild) aber ich bin mir
>nicht sicher ob ich mit dem SPannungsteiler für die Schalter hinkomme
>ohne die LEDs zu beeinflussen...
Geht so nicht. Denn der R muss min so klein sein, dass der U-Unterschied 
zw den 2 Pins detekt. werden kann. Also U-Hub min ca 2,5..3V. Bei diese 
dann bei gedrückten Taster verbleibende U reicht nicht mehr für die LED.

von Wilhelm F. (Gast)


Lesenswert?

Hannes schrieb:

> @Wilhelm
> ? He ? mit den duo LEDs verbinde ich mir doch alle Pins, da muss man
> sich erstmal etwas einfallen lassen um das zu vermeiden...

Entschuldige. Hast sicher Recht. Ich muß mir mal Duo-LED genauer 
anschauen. Ich denke mal weiter nach.

von Wilhelm F. (Gast)


Lesenswert?

@Hannes:

Hast du noch Platz (und Software) für ein Multivibrator-Interface? Dabei 
werden den Tasten Widerstände zugeordnet, die an einem einzelnen 
Schmitt-Trigger-CMOS-Inverter mit einem festen C zusammen eine jeweils 
eigene Frequenz erzeugen. Das ist dann auch über einen einzigen Pin 
einlesbar.

Oder ADC-Pin, mit verschiedenen Widerständen an den Tastern.

von Hannes (Gast)


Lesenswert?

@Wilhelm, auch keine schlechte Idee, nur wenn ich dann 2 Tasten 
gleichzeitig drücke?

Wie groß darf denn ein Pulldown maximal werden an einem Pin der als 
Input geschaltet ist und dessen int. Pullup ausgeschaltet is damit der 
Pin noch ein LOW einliest?

H.

von MCUA (Gast)


Lesenswert?

>damit der Pin noch ein LOW einliest?
...siehe U-Pegel der Pins im Datenblatt. max 0,8V bei std-TTL or HCT.
aber bei Low kannste die LED nicht mehr an schalten, da ein swing von 
0,4V viel zu klein ist.
Auf High gesehen könnte bei gedr. Taster ca 2,4V gemacht werden. Mit 
Pin-ein wärens (für LED) dann viell. 3,5..4,5V. Mit dieser U-Diff könnte 
man die LED an schalten. (ZD oder paar Dioden in Reihe mit LED)

von Wilhelm F. (Gast)


Lesenswert?

Hannes schrieb:

> @Wilhelm, auch keine schlechte Idee, nur wenn ich dann 2 Tasten
> gleichzeitig drücke?

Dann bekommst du beim Multivibrator auch eine Zwischenfrequenz. Es ist 
natürlich die Frage, wie man das dann sinnvoll entprellt. Denn die 
Einlesung der Frequenz ist ja irgendwie Laufzeit des µC. Ich fand es 
aber als Möglichkeit in einem alten Buch. Unter Umständen kann man das 
aber sicher gestalten wie eine sonstige Tastenabfrage auch. Man muß eben 
nur die Frequenz messen, und daraus gedrückte Tasten zuordnen. Ist unter 
Umständen erheblicher Softwareaufwand.

Zum ADC an einem Pin mit mehreren Tastern, gab es hier heute noch einen 
Thread:

Beitrag "Taktile Sensoren / Taster"

Aber klar: Sowas wie Two-Key-Rollover hätte man am Ende bei den Tasten 
ja gerne.

von Frank K. (fchk)


Lesenswert?

Hannes schrieb:

> B1,B0,D2,D3 beim Atmega168.

Nochmal die Frage: welche Bauform benutzt Du? Du weißt, dass Du bei 
TQFP32 zwei zusätzliche Analogeingänge bekommst, die bei DIL28 und QFN28 
nicht herausgeführt sind?

fchk

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.