arduino/microcontroler empfindlichkeit von pins?
Hallo, ich habe mir einen Arduino Uno gekauft und wollte etwas probieren.
Ich habe einen Pin mit einem Schalter verbunden und geschaut, ob dieser HIGH ist. Wenn ja, dann soll eine LED leuchten, sonst nicht. Alles gut soweit.
Das Problem ist, dass ich nur in die nähe, des Kabels kommen muss, damit der Arduino am Eingang HIGH sagt, da die Spannung von meinem Körper durch den Leiter übertragen wird.
Wie kann ich die "Empfindlichkeit" verringern?
Danke. Lg. Sepp
Hier noch mein Code:
int buttonPin = 10;
int ledPin = 3;
void setup()
{
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop()
{
if (digitalRead(buttonPin) == HIGH)
{
digitalWrite(ledPin, HIGH);
} else
{
digitalWrite(ledPin, LOW);
}
}
2 Antworten
Du brauchst einen pull down oder pull up widerstand. Weil aktuell misst der arduino halt nur die spannung, und wenn der pin "floating" ist, dann reicht da eine leichte induktive ladung und schon hat man genug spannung. Weil die spannung kann ja nirgendwo hin abfließen.
Ein pull up bzw. pull down ist ein widerstand, mit meist 1k-100k Ohm, der die spannung entweder hoch oder runter zieht wenn dein input nicht betätigt wird.
Der arduino hat auch einen eingebauten pull-up widerstand(keinen pull-down) den du aktivieren kannst. pinMode(buttonPin, INPUT_PULLUP) anstatt "INPUT". Der zieht deinen wert automatisch nach oben wenn du keinen input hast.
Aber dann müsstest du deine schaltung etwas umbauen weil er dann im neutralen zustand HIGH wäre, bedeutet deinen schalter müsstest du dann mit ground verbinden und nicht mit 5V.
Oder du verbaust einen externen pullup, dann funktioniert es ohne den code zu ändern.
Du musst ihn nicht dazwischen schalten.
Ein pull down kommt zwischen den pin und ground, und ein pull up zwischen den pin und 5V. Der widerstand wird permanent verbunden.
https://circuitdigest.com/sites/default/files/projectimage_tut/Pull-up-and-Pull-down-Resistor.png
10k ist so ein standard wert für einen pull-up/pull.down bei 5V. 1k benutzt man wenn 10k nicht "stark" genug ist, und 100k wenn man strom sparen will.
Was ist der unterschied zwischen Pull-up und Pull-down?
Pull-up zieht den wert nach oben und pull down nach unten, sind eigentlich gegenteile.
ok danke
Ich habe gerade die Pull-down Schaltung aufgebaut und jetzt Funktioniert die LED auch ohne dem im Arduino verbauten Pull-up Widerstand.
Danke noch mal hab viel dazugelernt :))
Wie kann ich die "Empfindlichkeit" verringern
Pull-up/Pull-down Widerstände verwenden. Eventuell kann man interne Widerstände aktivieren im Arduino.
Ok danke funktioniert einwandfrei :)
Eine frage noch: Ich habe das schon probiert, aber extern. D.h. ich habe einfach einen Widerstand mit 100k Ohm dazwischen geschaltet, aber es hatte noch immer nicht funktioniert. Weißt du warum?