Prečo používať rezistory s tlačidlami a prepínačmi pri Arduine
Tento návod vysvetľuje, prečo je použitie rezistora s tlačidlami a prepínačmi pripojenými k Arduinu kľúčové pre spoľahlivú prevádzku. Pochopenie tohto konceptu je základom pre každý projekt Arduino zahŕňajúci vstup od používateľa. Tieto znalosti predchádzajú neočakávanému správaniu a zabezpečujú, že vaše projekty fungujú správne. Tu je niekoľko nápadov na projekty, kde sú tieto znalosti nevyhnutné:
- Jednoduchý vypínač/zapínač pre LED
- Interaktívny herný ovládač
- Diaľkové ovládanie domácich spotrebičov
- Bezpečnostný systém s aktiváciou tlačidlom
Poďme preskúmať dôvody použitia rezistorov v týchto obvodoch.

Hardvér/Komponenty
Základné komponenty potrebné pre tento projekt sú minimálne: doska Arduino, tlačidlový spínač a rezistor (väčší ako 300 ohmov). Hodnota rezistora nie je kritická; hodnoty ako 1kΩ, 10kΩ alebo dokonca 100kΩ budú vo všeobecnosti fungovať dobre (vo videu o 00:41).
Sprievodca zapojením
Existujú dve hlavné konfigurácie zapojenia (vo videu o 00:30):
- Konfigurácia 1: Pripojte tlačidlo medzi pin Arduina a +5V. Druhá strana tlačidla je pripojená k zemi cez rezistor. Keď je tlačidlo stlačené, pin číta HIGH; keď je uvoľnené, číta LOW.
- Konfigurácia 2: Pripojte tlačidlo medzi pin Arduina a zem. Druhá strana tlačidla je pripojená k +5V cez rezistor. Keď je tlačidlo stlačené, pin číta LOW; keď je uvoľnené, číta HIGH.

Vizuálna schéma zapojenia by tu bola užitočná.
Vysvetlenie kódu
Kód Arduina využíva funkciu pinMode() na konfiguráciu pinu ako vstupu. Kľúčovou časťou je použitie INPUT_PULLUP (vo videu o 04:06, 04:23). Tento interný pull-up rezistor eliminuje potrebu externého rezistora v určitých konfiguráciách, čím zjednodušuje zapojenie. Funkcia digitalRead() číta stav pinu a jednoduchý príkaz if-else určuje, či je tlačidlo stlačené (LOW) alebo nie (HIGH) (vo videu o 08:34).
pinMode(2, INPUT_PULLUP); // Konfiguruje pin 2 ako vstup s interným pull-up rezistorom
int pushButton = digitalRead(2); // Číta stav pinu 2
if (pushButton == LOW) {
// Tlačidlo je stlačené
} else {
// Tlačidlo nie je stlačené
}
Živý projekt/Demonštrácia
Video demonštruje obe konfigurácie zapojenia a ich príslušné správanie. Zdôrazňuje problémy, ktoré môžu nastať pri vynechaní rezistora, ako sú nepravidelné hodnoty spôsobené šumom a kapacitnou väzbou (vo videu o 06:18, 06:39, 07:21). Demonštrácia jasne ukazuje stabilnú a spoľahlivú prevádzku dosiahnutú s rezistorom na mieste (vo videu o 08:08).
Kapitoly
- [00:00] Úvod
- [00:30] Konfigurácie zapojenia
- [04:12] Vysvetlenie kódu pomocou INPUT_PULLUP
- [05:36] Odstránenie rezistora: Praktická demonštrácia
- [08:33] Vysvetlenie kódu
Images
/*
* 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);
}
/*
* 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);
}
Things you might need
-
Amazon
Resources & references
No resources yet.
Files📁
No files available.
