Suchcode

Warum Widerstände bei Drucktastern und Schaltern mit dem Arduino verwenden

Warum Widerstände bei Drucktastern und Schaltern mit dem Arduino verwenden

Dieses Tutorial erklärt, warum die Verwendung eines Widerstands bei an ein Arduino angeschlossenen Drucktastern und Schaltern für einen zuverlässigen Betrieb entscheidend ist. Das Verständnis dieses Konzepts ist grundlegend für jedes Arduino-Projekt, das Benutzereingaben umfasst. Dieses Wissen verhindert unerwartetes Verhalten und sorgt dafür, dass Ihre Projekte korrekt funktionieren. Hier sind einige Projektideen, bei denen dieses Wissen unerlässlich ist:

  • Einfacher Ein-/Aus-Schalter für eine LED
  • Interaktiver Spielcontroller
  • Fernbedienung für Haushaltsgeräte
  • Sicherheitssystem mit Drucktastenaktivierung

Lassen Sie uns die Gründe untersuchen, warum in diesen Schaltungen Widerstände verwendet werden.

Arduino wiring for Push button wihthout resistor

Hardware/Komponenten

Die Kernkomponenten, die für dieses Projekt benötigt werden, sind minimal: ein Arduino-Board, ein Drucktaster und ein Widerstand (größer als 300 Ohm). Der Widerstandswert ist nicht kritisch; Werte wie 1kΩ, 10kΩ oder sogar 100kΩ funktionieren in der Regel gut (im Video bei 00:41).

Verdrahtungsanleitung

Es gibt zwei primäre Verdrahtungskonfigurationen (im Video bei 00:30):

  1. Konfiguration 1:Verbinden Sie den Drucktaster zwischen dem Arduino-Pin und +5V. Die andere Seite des Drucktasters ist über einen Widerstand mit Masse verbunden. Wenn der Taster gedrückt ist, liest der Pin HIGH; wenn er losgelassen ist, liest er LOW.
  2. Konfiguration 2:Verbinde den Drucktaster zwischen dem Arduino-Pin und Masse. Die andere Seite des Drucktasters ist über einen Widerstand mit +5V verbunden. Wenn der Drucktaster gedrückt wird, liest der Pin LOW; wenn er losgelassen wird, liest er HIGH.

Arduino wriring for push button and LED
Arduino wriring for push button and LED

Ein visuelles Verdrahtungsdiagramm wäre hier von Vorteil.

Erklärung des Codes

Der Arduino-Code verwendet diepinMode()Funktion, um den Pin als Eingang zu konfigurieren. Der entscheidende Teil ist die Verwendung vonINPUT_PULLUP(im Video bei 04:06, 04:23). Dieser interne Pull-up-Widerstand macht in bestimmten Konfigurationen einen externen Widerstand überflüssig und vereinfacht so die Verdrahtung. DerdigitalRead()Die Funktion liest den Zustand des Pins und ein einfachesif-elseDie Anweisung bestimmt, ob die Taste gedrückt ist (LOW) oder nicht (HIGH) (im Video bei 08:34).


pinMode(2, INPUT_PULLUP); // Configures pin 2 as input with internal pull-up resistor
int pushButton = digitalRead(2); // Reads the state of pin 2
if (pushButton == LOW) {
  // Button is pressed
} else {
  // Button is not pressed
}

Live-Projekt/Demonstration

Das Video zeigt beide Verdrahtungskonfigurationen und deren jeweiliges Verhalten. Es hebt die Probleme hervor, die auftreten können, wenn der Widerstand weggelassen wird, wie etwa sprunghafte Messwerte durch Rauschen und kapazitive Kopplung (im Video bei 06:18, 06:39, 07:21). Die Demonstration zeigt deutlich den stabilen und zuverlässigen Betrieb, der mit eingesetztem Widerstand erreicht wird (im Video bei 08:08).

Kapitel

  • [00:00] Einleitung
  • [00:30] Verdrahtungskonfigurationen
  • [04:12] Erklärung des Codes unter Verwendung von INPUT_PULLUP
  • [05:36] Entfernen des Widerstands: Praktische Demonstration
  • [08:33] Code-Erklärung

Bilder

Warum sollten wir einen Widerstand mit einem Taster beim Arduino verwenden?
Warum sollten wir einen Widerstand mit einem Taster beim Arduino verwenden?
Warum sollten wir einen Widerstand mit einem Taster und Arduino verwenden?
Warum sollten wir einen Widerstand mit einem Taster und Arduino verwenden?
2 pin tactile push button switch
2 pin tactile push button switch
Arduino wriring for push button and LED
Arduino wriring for push button and LED
Arduino wiring for Push button with resistor-2
Arduino wiring for Push button with resistor-2
Arduino wiring for Push button with resistor-1
Arduino wiring for Push button with resistor-1
Arduino wiring for Push button wihthout resistor
Arduino wiring for Push button wihthout resistor
132-Code example using a resistor
Sprache: C++
/*
 * This is an Arduino Sketch for a tutorial video 
 * explaining why a resistor is needed to be used with a push button
 * with Arduino.
 * 
 * Written by Ahmad Shamshiri on July 17, 2018 at 23:11 in Ajax, Ontario, Canada
 * For Robojax.com
 * Watch the instruction video for this code: https://youtu.be/TTqoKcpIWkQ
 * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
 */

void setup() {
  // Robojax.com push button tutorial
  pinMode(3,INPUT_PULLUP);
  Serial.begin(9600);
  Serial.println("Robojax Push Button Tutorial");
  

}

void loop() {
  // Robojax.com push button tutorial
  int pushButton = digitalRead(3);
  if(pushButton == LOW)
  {
    Serial.println("Pin 3 LOW");
  }else{
    Serial.println("Pin 3 HIGH");
  }

delay(500);
}
133-Code example using INPUT_PULLUP without a resistor
Sprache: C++
/*
 * This is an Arduino Sketch for a Tutorial video 
 * explaining why a resistor is needed to be used with a push button
 * with an Arduino to connect the pin to Ground (GND)
 * 
 * Written by Ahmad Shamshiri on July 18, 2018 at 17:36 in Ajax, Ontario, Canada
 * For Robojax.com
 * Watch the instruction video for this code: https://youtu.be/TTqoKcpIWkQ
 * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
 */

void setup() {
  // Robojax.com push button tutorial
  pinMode(2,INPUT_PULLUP);
  Serial.begin(9600);
  Serial.println("Robojax Push Button Tutorial");
  

}

void loop() {
  // Robojax.com push button tutorial
  int pushButton = digitalRead(2);
  if(pushButton == LOW)
  {
    Serial.println("Button is pushed.");
  }else{
    Serial.println("Button is NOT pushed.");    
  }

delay(500);
}

Dinge, die Sie vielleicht brauchen

Ressourcen & Referenzen

Noch keine Ressourcen vorhanden.

Dateien📁

Keine Dateien verfügbar.