Forum: Mikrocontroller und Digitale Elektronik GND für Taster herzaubern?


von hinz (Gast)


Lesenswert?

Tag.

Ich brauche an einem µC noch einen Taster. Allerdings ist die Platine 
schon fertig entwickelt (erhebliche Arbeit).

Wir haben eine 4er-Stiftleiste für Universalzwecke rausgeführt 
(PD.0-PD.3).
Die könnten wir nutzen.

Leider haben wir da kein Potential, gegen das der Schalter geschaltet 
werden könnte.

Kann ich einfach PD.0 auf 0 setzen und das als 'GND' für einen Taster an 
PD.1 mit aktiviertem Pullup nutzen oder spricht da was dagegen?


Es handelt sich um einen ATmega 328p.


Danke!

von Klaus (Gast)


Lesenswert?

...na sicher geht das. Erstaunliche Frage für jmd, der eine Platine "mit 
erheblichem Aufwand" entwickelt hat :)

Klaus.

von Teo D. (teoderix)


Lesenswert?

Klaus schrieb:
> Erstaunliche Frage für jmd, der...

Montag! ;)

von Harald W. (wilhelms)


Lesenswert?

hinz schrieb:

> GND für Taster herzaubern?

Das müsste so ähnlich wie hier funktionieren:
Beitrag "Drahtloses ESD Armband"
:-)

von Nop (Gast)


Lesenswert?

hinz schrieb:
> Kann ich einfach PD.0 auf 0 setzen und das als 'GND' für einen Taster an
> PD.1 mit aktiviertem Pullup nutzen oder spricht da was dagegen?

So macht man das bei Matrixtastaturen ohnehin, klar geht das. Denk aber 
an die SW-Entprellung.

von Robert K. (Firma: Medizintechnik) (robident)


Lesenswert?

Wenn da ohnehin noch gebastelt werden muss, würde ich den über einen 
Vorwiderstand anschließen. Dann kannst Du bis 3 Taster anschließen.

: Bearbeitet durch User
von Georg (Gast)


Lesenswert?

Klaus schrieb:
> Erstaunliche Frage für jmd, der eine Platine "mit
> erheblichem Aufwand" entwickelt hat :)

Aufwand /= Erfolg. Ein I/O-Stecker ohne Bezugspotential spricht nicht 
gerade für eine durchdachte Entwicklung.

Georg

von Thomas E. (thomase)


Lesenswert?

Robert K. schrieb:
> Dann kannst Du bis 3 Taster anschließen.

Ach was.

6 Taster und 12 Leds.

von Joachim B. (jar)


Lesenswert?

hinz schrieb:
> Wir haben eine 4er-Stiftleiste für Universalzwecke

und ein fünftes Loch daneben bohren ud einen Draht nach GND ziehen geht 
nicht? (als Bohrschablone eignen sich prima Lochrasterplatten)

Aber auch ohne das ich GND vergesse, manchmal hole ich mir den GND aus 
einem Port wenn nicht zuviel Strom verlangt wird, Nokia5110 Display, DHT 
11/22 usw.)

: Bearbeitet durch User
von Amateur (Gast)


Lesenswert?

Wenn Pull-Hoch nicht geht (GND); wie wäre es mit Pull-Runter (Vcc)?

von Manfred (Gast)


Lesenswert?

Thomas E. schrieb:
> Robert K. schrieb:
>> Dann kannst Du bis 3 Taster anschließen.
>
> Ach was.
> 6 Taster und 12 Leds.

Mit welcher Schaltung kommst Du auf diese Zahlen?
Bei vier Ports sehe ich eine 2x2 Matrix = 4 Taster oder, je zwei 
antiparallel, 8 LEDs.

von DerJoe (Gast)


Lesenswert?

12 LEDs = 4x3 kann man mit Charlieplexing erreichen. Aber wie können 
dann noch Taster dazu, dann gehen doch immer die LEDs aus?!
Vielleicht sind die Pins ja auch am ADC, dann können sehr viele Taster 
dran...

Liebe Grüße
DerJoe

von kunz (Gast)


Lesenswert?

hinz schrieb:
> Wir haben eine 4er-Stiftleiste für Universalzwecke rausgeführt
> (PD.0-PD.3).
> Die könnten wir nutzen.

Prima, dann häng doch per (Soft-)SPI Schieberegister ran. Damit kannst 
du dir beliebig IO-Ports generieren ;-)

> oder spricht da was dagegen?

Nein, spricht es nicht.

Aber warum muss man für diese Entscheidung einen Thread aufmachen?
Sonst schaltest du doch auch selbständig Pins als Ausgang, ohne im Forum 
zu fragen, oder?

von Thomas E. (thomase)


Lesenswert?

DerJoe schrieb:
> 12 LEDs = 4x3 kann man mit Charlieplexing erreichen. Aber wie können
> dann noch Taster dazu, dann gehen doch immer die LEDs aus?!

Ja, Charlieplex.

Also 6 x je 2 antiparallel geschaltete Leds. Genauso schließt man die 
Taster auch an. Nur, daß man Taster nicht antiparallel schalten kann. 
Deswegen nur sechs.

Klar, die Leds flippen während des Tastendrucks aus. Aber in dem Moment 
konzentriert man sich auf den Taster. Und wenn man den loslässt, ist 
alles wieder gut. Haptisch ist das also gar nicht so problematisch.

Nicht die schönste Lösung, aber es geht.
Und wenn man nur 4 Leitungen hat...

von Robert K. (Firma: Medizintechnik) (robident)


Lesenswert?

Thomas E. schrieb:
> 6 Taster und 12 Leds.

Das könntest Du bitte mal erklären.

von Dennis (Gast)


Lesenswert?

Robert K. schrieb:
> Das könntest Du bitte mal erklären.

Ist nur das hier im Forum übliche Rumgebastel ohne jeglichen - halbwegs 
professionellen - Praxisbezug :-)

Die Informatiker halt, die denken dass sie Hardware entwickeln 
könnten...

von Thomas E. (thomase)


Lesenswert?

Dennis schrieb:
> Die Informatiker halt, die denken dass sie Hardware entwickeln
> könnten...

Die Dennis-Gäste halt. Die denken, daß sie das beurteilen können.

von Olaf B. (Firma: OBUP) (obrecht)


Lesenswert?

Dennis schrieb:
> Die Informatiker halt, die denken dass sie Hardware entwickeln
> könnten...

Die können das nicht nur, die machen das ;-))

Gehörte bei uns zur Ausbildung.

mfg

Olaf

von Wolfgang (Gast)


Lesenswert?

Thomas E. schrieb:
> Also 6 x je 2 antiparallel geschaltete Leds. Genauso schließt man die
> Taster auch an. Nur, daß man Taster nicht antiparallel schalten kann.
> Deswegen nur sechs.

Was spricht dagegen, genauso antiparallel geschaltete Taster abzufragen? 
Wofür wurden Dioden erfunden?

von Robert K. (Firma: Medizintechnik) (robident)


Lesenswert?

Zu "Tastaturen"

Vielleicht mal ihr das mal als Schaltung auf, wie das mit den Tastern 
gehen soll. Nach meinem Wissen braucht es die Dioden schon allein 
deshalb, um in der Matrix den Querstrom zu unterbinden und eine 
Fehlinterpretation zu verhindern. Und dann geht sicher auch nur wieder 
ein Taster, oder?

Zu "Charlieplex"

Da funktioniert dann auch nur eine LED je Gruppe, oder? Muss man mehrere 
LEDs dann zeitlich multiplexen? Wie könnte man das lösen?


Also wäre meine Frage: Wieviele LEDs und Schalter bekommt man mit n 
Leitungen gleichzeitig unabhängig gesteuert und ausgelesen?

: Bearbeitet durch User
von Timm T. (Gast)


Lesenswert?

Wie, nur 12 LED und 6 Taster?

Wenn das 4 Pins hat, kannst Du einen I2C dranbasteln. Dann kannst Du 
soviele LED dranhängen, wie der Portpin Strom treiben kann. Und eine 
ganze Tastatur.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Robert K. schrieb:
> Also wäre meine Frage: Wieviele LEDs und Schalter bekommt man mit n
> Leitungen gleichzeitig unabhängig gesteuert und ausgelesen?

 Bis zu 1000 Schalter und 4000 LEDs (mindestens).

 1 Leitung = GND Potential.
         +
 2 Leitungen = Soft-UART oder
 3 Leitungen = Soft-SPI.

 Und schon kann man alles mögliche machen...

: Bearbeitet durch User
von Robert K. (Firma: Medizintechnik) (robident)


Lesenswert?

Man kann wohl - ohne Jemandem zu nahe zu treten - behaupten, daß der 
Beitrag über dem meinen wieder einer jener war, der typisch ist, für 
gewisse Foren: Die Frage nicht verstehen und dann trotzdem einen klugen 
Satz bringen.

Verehrter Marc: Ich bin ja nicht aus Bielefeld. Wenn man SO denken 
wollte, dann ginge freilich "Alles", allerdings müsste man dann schon 
auch konsequent sein und die dafür optimale Lösung posten, nämlich, auf 
10 der 12 Leutungen verzichten, nur 2 davon nehmen und USB dranhängen. 
Dann bekommen wir mehrere Millionen Schalter und Computer-Monitore mit 
Millionen von LED-Elementen dran.

Das war aber nicht so ganz die Frage, denn so eine Lösung erfordert 
intelligente und aktive Endgeräte. In Deinem Fall mindestens einen 
I2C-slave oder UART-slvae und damit eine eigene Stromversorgung.

Bevor jetzt der nächste mit einer Ethernet-lösung kommt, präzisiere ich 
mal die Randbedingungen:

Die Lösung muss passiv sein, also keine Stromaufnahme haben.

Das gilt auch für die Lösung von "Tim Thaler". 10 Portpins liefern bei 
so einem Controller höchstens Strom für ein paar angehängten LEDs.

: Bearbeitet durch User
von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Robert K. schrieb:
> Man kann wohl - ohne Jemandem zu nahe zu treten - behaupten, daß der
...
> auch konsequent sein und die dafür optimale Lösung posten, nämlich, auf
> 10 der 12 Leutungen verzichten, nur 2 davon nehmen und USB dranhängen.

 Tja, nur funktioniert USB nicht aus der Box - da gehört viel mehr dazu.
 Und ohne dir auch zu nahe zu treten, bezweifle ich, dass du dazu
 fähig bist.

> Das war aber nicht so ganz die Frage, denn so eine Lösung erfordert
> intelligente und aktive Endgeräte. In Deinem Fall mindestens einen
> I2C-slave oder UART-slvae und damit eine eigene Stromversorgung.

 Intelligent ja, Stromversorgung nein.
 M48P braucht bei 8MHz im Active max. 8mA, Idle max.2,7mA, normal
 ist die Hälfte davon.
 Ein Portpin liefert bis zu 40mA, also könnte der im Extremfall bis
 zu 5xM48 versorgen, im Normalfall bis zu 10xM48.

> Die Lösung muss passiv sein, also keine Stromaufnahme haben.

 Da must du aber leider sowohl auf Taster als auch auf LEDs verzichten
 - die brauchen beide Strom.

: Bearbeitet durch User
von Robert K. (Firma: Medizintechnik) (robident)


Lesenswert?

Marc V. schrieb:
> Tja, nur funktioniert USB nicht aus der Box - da gehört viel mehr dazu.
Viele Controller haben heute USB mit an board.

>  Und ohne dir auch zu nahe zu treten, bezweifle ich, dass du dazu
>  fähig bist.
Schön, dass Du so genau weist, was Ich kann.

>> Die Lösung muss passiv sein, also keine Stromaufnahme haben.
>  Da must du aber leider sowohl auf Taster als auch auf LEDs verzichten
>  - die brauchen beide Strom.
Taster schalten nur Information weiter und LEDs sind das Ziel der 
Bestromung gewesen. Die jetzt in den Kontext des Ausschlusses einer 
Stromversorung mit einzubeziehen ist spitzfindig.

von Georg (Gast)


Lesenswert?

Robert K. schrieb:
> Die jetzt in den Kontext des Ausschlusses einer
> Stromversorung mit einzubeziehen ist spitzfindig

Das ist nicht spitzfindig, sondern real. Es gibt unzählige 
Möglichkeiten, externe Erweiterungen anzusteuern, z.B. brauchen 
CMOS-Schieberegister keinen erwähnenswerten Strom, LEDs aber schon, 
sonst leuchten sie hat einfach nicht. Der Stromverbrauch der LEDs wird 
letzten Endes das begrenzende Element an deiner Elektronik sein, auch 
wenn du hunderte LEDs anssteuern könntest, das geht eben nicht ohne 
zusätzliche Stromversorgung. Und mit dieser gibt es keine vernünftige 
Einschränkung.

Da dir sowas aber offensichtlich überhaupt nicht klar ist, erhebt sich 
schon die Frage, was du fachlich tatsächlich realisieren kannst, und das 
liegt nicht an den Möglichkeiten der Elektronik.

Georg

von Timm T. (Gast)


Lesenswert?

Georg schrieb:
> Der Stromverbrauch der LEDs wird
> letzten Endes das begrenzende Element an deiner Elektronik sein, auch
> wenn du hunderte LEDs anssteuern könntest, das geht eben nicht ohne
> zusätzliche Stromversorgung.

Ich hab hier SMD-LED rumliegen, die brauchen als Anzeige gerade mal 
100µA. Damit brauchst Du für 100 LED 10mA. Bringt der Portpin eines AVR 
locker.

Die Zeiten, als man LED mit 20mA bestromen mußte um überhaupt etwas zu 
erkennen und auch nur wenn die Sonne nicht scheint sind vorbei.

Robert K. schrieb:
> Taster schalten nur Information weiter

Also mir fällt gerade ausser Piezotaster keine Schaltung ein, wie man 
einen Taster stromlos abfragt. Irgendwas fließt durch den Pullup immer. 
Und wenn man nicht zu störanfällig werden will, sollte dieser auch nicht 
zu hochohmig sein.

Robert K. schrieb:
> Die Lösung muss passiv sein, also keine Stromaufnahme haben.

Sagt wer? Sagt hinz nicht.

von J. S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Robert K. schrieb:
> Also wäre meine Frage: Wieviele LEDs und Schalter bekommt man mit n
> Leitungen gleichzeitig unabhängig gesteuert und ausgelesen?

Wenn es wirklich darum ginge, das maximale aus einem bestehenden Board 
rauszuholen, das nicht dafür entwickelt wurde und nun mit einer 
Erweiterungsplatine versehen werden soll und darf, sind mehrere Wege 
offen. Der goldene Weg ist natürlich ein Schieberegister mit digitalen 
Eingängen und Ausgängen, wie schon erklärt wurde. Dann greift das 
Bandbreitenlimit der treibenden Schaltung.


Robert K. schrieb:
> Die Lösung muss passiv sein, also keine Stromaufnahme haben.
Einigen wir uns mal auf "keine externe Stromversorgung haben" denn ein 
bischen Strom werden die Schaltungen immer benötigen. Es muss ja 
Information reinfließen, egal, ob man die dem Schalten oder dem 
Lampenverbrauch zurechnet.

Bei dem "Möglichen" kommt es damit allein darauf an, wieviel zusätzliche 
Analoghardware man noch verwenden will.

Unter bestimmten Umständen ist Charlieplex die beste Lösung, da sie 
wenige Bauteile erfordert. Vollparallel zu steuern geht (bei deutlich 
mehr Aufwand und Signalverarbeitung im Steuergerät) mit "Schuhmiplex":

24 Taster und 24 LEDs über 2x2 Leitungen.  Die Auswertung erfolgt über 
Signalverarbeitung in einem DSP. Es gibt auch noch einen undokumentieren 
Multiplexbetrieb zwischen LED und Schalter, der nur 3 Leitungen 
erfordert, aber 32 Kanäle hat, den ich - wie die konkrete 
Schaltungsdimensionierung - aber nicht publizieren darf.

Man könnte jetzt die Ausgangschaltung symmetrisch aufbauen und die 
Dioden kurzerhand gegen die LEDs austauschen. Oder man belässt die 
Dioden um die Schaltschwelle aufrecht zu erhalten und nutzt beide 
Halbwellen.

Da die Schaltungen logischerweise einen Wirkungsgrad von signifikant 
weniger, als 1 haben (:D) sollte man für für 32 LEDs mal 1 Ampere 
kalkulieren. Ein kleiner 3Watt-Audio-Verstärker sollte reichen. Für den 
Lesepfad reicht ein einfacher Leitungstreiber. Je nach 
Signalverarbeitung kann man sehr enge Frequenzabstände nehmen. Zumindest 
für den Lesezweig.

Wenn man das für den Ausgang auf die hiesigen Anforderungen portieren 
möchte, würde ich eine komplette Oktave Abstand zwischen den Frequenzen 
veranschlagen, im Audiobereich bleiben und maximal 8 LEDs pro Kanal 
fahren. Das dürfte stromtechnisch schon das Limit sein, denke ich.

von J. S. (engineer) Benutzerseite


Lesenswert?

Eine Idee noch: Wenn es wirklich darum geht, für eine größere 
Produktionscharge eine Lösung zu finden, dann sollte man einige Ports 
als Stromquelle benutzen, indem man mit Übertragern und gegensinniger 
Ansteuerung eine Wechselspannung übersetzt, hinten gleichrichtig und 
parallel schaltet. Dann hast Du rund 1 Watt an der Hand. Mit einem 
Leitungspaar machst Du eine LVDS-Verbindung, indem Du einen solchen 
Übertrager mit Vorwiderständen hintrimmst. Wären 2 Power Leitungen und 2 
Signalleitungen.

Weitere Verbeserung: Ein Powerzweig wird abgetrennt und zur Bildung 
einer lokalen Spannung auf dem Board benutzt, um einen Optokoppler zu 
treiben. Damit kommst Du dann mit Megaherzen aus dem Board raus und 
knapp 1 Watt Versorgung in die Peripherie.

von lohnsklave (Gast)


Lesenswert?

Marc V. schrieb:
>  Da must du aber leider sowohl auf Taster als auch auf LEDs verzichten
>  - die brauchen beide Strom.

Nö.
Es gibt 4 Pins und zwei Taster sollen dran.
Also können zwei Pins GND herzaubern.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

lohnsklave schrieb:
>>  Da must du aber leider sowohl auf Taster als auch auf LEDs verzichten
>>  - die brauchen beide Strom.

> Nö.
> Es gibt 4 Pins und zwei Taster sollen dran.
> Also können zwei Pins GND herzaubern.

 Aha.
 Und der benötigte Strom wird woher hergezaubert ?

 Pullup braucht Strom und Pulldown kann man nicht gegen GND schalten.

von Carlo (Gast)


Lesenswert?

lohnsklave schrieb:
> Nö.
> Es gibt 4 Pins und zwei Taster sollen dran.
> Also können zwei Pins GND herzaubern.
Du hast es FAST richtig:

1. 1 Pin auf HI für die pullups
2. 1 Pin auf LO für die GNDs
3. 2 Pins für die Inputs

Also 4 Pins und 2 Widerstände.

Das lasse ich mir jetzt patentieren, wenn ich mir die anderen Vorschläge 
so durchlese ...

von J. S. (engineer) Benutzerseite


Lesenswert?

Carlo schrieb:
> Das lasse ich mir jetzt patentieren, wenn ich mir die anderen Vorschläge
> so durchlese ...

Das ist schon gefühlt im 18. Jhd patentiert worden :-)

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.