Go Down

Topic: Verhalten unbelegter Eingangspins... (Read 825 times) previous topic - next topic

hgpa

Hallo!

In einem Projekt mit der Abfrage von fast allen Eingangspins (auch den analogen, hier digital genutzt)
habe ich die Abfragen in 2 for-Schleifen gepackt.
(Eine Abfrage für Dreh-Encoder, eine für Taster)

Mit einzelnen Pins hat alles funktioniert, nur als die for-Schleife den endgültigen Wert von 39 bekam
(so viele Taster sollen abgefragt werden), aber nur 5 Taster angeschlossen waren (mit externem
Pulldown-Widerstand von 10K), kamen neben den richtigen Werten (u.a. werden den Tastern
zugeordnete Zahlen (in meinem Projekt Midi-Control-Change-Nummern) auch eher zufällige
Zahlen aus dem Pool der 39 Adressen...

Ich habe lange gerätselt, glaube aber die Lösung gefunden zu haben:
"Offene" Eingänge, an denen noch kein Schalter incl. Widerstand hängt, verhalten sich doch
ziemlich unkontrolliert, oder?
Wähle ich nämlich soviel Durchgänge wie angeschlossene Schalter, im Modell gerade 5,
so kommen absolut keine Ausreißer vor (entprellt ist jeder Schalter per Software eh..)

Danke für eine Notiz, dass ich das so richtig sehe!

HG

MaHa76

Ja, offene Eingänge liefern nicht definerte Werte. Arduino nutzt das auch für die Randomfunktion.

Doc_Arduino

Hallo,

offene Eingänge sind hochohmig und fangen alle Streusignale ein die so rumschwirren.
Also entweder nicht abfragen oder mindestens den internen PullUp aktivieren oder noch besser extern mit 10kOhm beschalten. Meinetwegen auch 5k. Ob gegen Masse oder gegen (+) ist egal.
Tschau
Doc Arduino '\0'

Messschieber auslesen: http://forum.arduino.cc/index.php?topic=273445
EA-DOGM Display - Demos: http://forum.arduino.cc/index.php?topic=378279

hgpa

...Danke für die schnellen Antworten!

Ich stecke ja noch im Lernstadium, freue mich daher, dass ich das so richtig gesehen habe.

Das Forum und der Umgangston hier sind übrigens ein herausragendes
Vorbild für Umgangston und Hilfe, gaaaanz herzlichen Dank an alle!
Ich lese schon seit einiger Zeit mit und habe schon so manchen Tipp bekommen.


Dann kann ich mich jetzt beruhigt um den Hardwarekram kümmern.
Wen es interessiert:
Es wird ein Midi-Controller mit 13 Drehencodern und 39 Tastern,
der liefert die Befehle für Final Cut Pro X (Mac), denn ein
Film- und Bildbearbeitungsprogramm nur mit der Maus zu steuern, ist oft nicht so dolle,
und einige fertige Midi-Controller waren mir nicht intuitiv genug.
So habe ich dann ein Gerät, dass die Arbeitsschritte so zusammenfasst, wie ich das
brauche.  :)

HG


uwefed

Ja, offene Eingänge liefern nicht definerte Werte. Arduino nutzt das auch für die Randomfunktion.
Als Startwert für die Zufallsfunktion nimmt man einen unbeschaltenen analogen Eingang, nicht digitalen Eingang.
Grüße Uwe

combie

Quote
Also entweder nicht abfragen
Das Gezappel braucht Strom.
Ob man fragt, oder auch nicht.
Und das ist bei Batteriebetrieb eher unangenehm.



Quote
oder mindestens den internen PullUp aktivieren
Das sieht dann bei mir in etwa so aus:
Code: [Select]
void setup()
{
  PORTA=0xff;
  PORTB=0xff;
  PORTC=0xff;
// usw.

// und dann erst mit pinMode() die wirklich benötigten Pins einstellen
}

Auf den Resetpin, und die Quarz Pins hat das keine Auswirkungen, wenn per Fuses die entsprechenden Sonderfunktionen aktiviert sind, da kann man einfach mit 0xff drüber braten.
Man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug.
Quelle: Jean-Paul Sartre

matthiasve

Hallo Combie, sollte das anstatt PORTA nicht PORTD sein beim Uno . Wenn ich das richtig verstehe ist PORTB Digitalpin 8-13  , PORTC Analogpin 0-5 und PORTD Digitalpin 0-7.

Oder hab ich da was falsch verstanden?

combie

#7
Oct 08, 2016, 10:03 am Last Edit: Oct 08, 2016, 10:05 am by combie
Quote
Hallo Combie, sollte das anstatt PORTA nicht PORTD sein beim Uno .
Hi!

Aber Ja!
Im Falle eines UNOS hättest du da natürlich recht.


Allerdings, von einem UNO weiß ich nichts......
Habe auch gewisse Probleme, mir 13 Drehencoder an einem UNO vorzustellen.
Außerdem sagte ich:
Quote
Das sieht dann bei mir in etwa so aus:
Zusammengefasst:
Das war ein Vorschlag, wie man das "in Etwa" tun könnte. Aber keine eindeutige Arbeitsanweisung. Es bleibt als noch etwas Raum für eigene Entscheidungen.

Man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug.
Quelle: Jean-Paul Sartre

Go Up