← Alle guides KompoNemt

| Knapper og kontakter – sådan bruger du dem

Med eller uden lås

Hvilken knap skal jeg bruge?

Momentary (fjedrende, uden lås) forbinder kun, mens du holder den nede – som en ringeklokke. Latching (med lås) klikker fast ved første tryk og slipper ved næste – som en afbryder. En vippekontakt bliver stående i den stilling, du sætter den i: I = tændt, O = slukket.

Uden lås

7 mm mini trykknap (rød)

Type
Momentary, normalt åben (NO)
Ben
2 loddeflige
Hul
7 mm
Til
Lavvolt: signal og små strømme

Start, reset, spil, dørklokke – alt hvor koden skal reagere på et tryk.

🛒 Se varen →
Med lås

12 mm trykknap med lås (rød)

Type
Latching (OFF-ON)
Ben
2 loddeterminaler
Hul
12 mm
Belastning
Står ikke på varen – tjek mærkningen

Tænd/sluk for strømmen til et projekt. Til tunge motorer: lad knappen styre et relæ.

🛒 Se varen →
Vippe

Mini vippekontakt 10 × 15 mm

Type
KCD11, SPST on/off
Ben
2
Hul
10 × 15 mm, snap-in
Mærket
250 V/3 A eller 125 V/6 A AC

Hovedafbryder til batteripakker, LED-lys og maker-projekter på 3,3–12 V.

🛒 Se varen →
Vippe

Rund mini vippekontakt (sort)

Type
SPST on/off
Ben
2
Hul
Rundt, snap-in – mål dit eksemplar før du borer
Mærket
250 V/3 A AC

Samme funktion – men et rundt hul er meget nemmere at bore eller 3D-printe.

🛒 Se varen →
Ikke til 230 V i boligen. Selvom vippekontakterne er mærket til 250 V, er de lavet til små projekter på 3,3–12 V. Arbejde på den faste el-installation må kun laves af en autoriseret elinstallatør – og 230 V kan slå ihjel.
Alle fire har 2 ben og er "SPST" (én kreds, tænd/sluk). Det er ligegyldigt, hvilket ben du bruger til hvad – de kan vende begge veje.
Prøv selv

Test kontakten med multimeterets bip

  1. Drej multimeteret over på bip-symbolet (lydbølger / diode-tegnet).
  2. Hold de to pinde mod de to ben på kontakten.
  3. Tryk eller vip. Bipper den, er benene forbundet – kontakten er ON.
  4. Bipper den aldrig, eller hele tiden uanset stilling, er kontakten i stykker (eller du har ramt forkert).
OFFOL

Tryk på knappen på tegningen.

Arduino & ESP32

Kobl en knap til en pin – kun to ledninger

Arduino D2GND knap

Det ene ben til en pin (her D2), det andet til GND. INPUT_PULLUP slår en indbygget modstand til, så pinnen er HIGH, når knappen er sluppet, og LOW, når du trykker. Derfor tester koden på LOW.

På ESP32 virker det på samme måde – men undgå GPIO 34–39 på den store ESP32, de har ingen indbygget pull-up. På ESP32-C3 SuperMini kan du fx bruge GPIO 3 eller 4.
Forbind aldrig knappen mellem pin og 5 V / 3,3 V uden en modstand – og brug ikke en kontakt til direkte at skifte en motor. Lad pinnen læse knappen, og lad et relæ eller en transistor tage strømmen.
// Knap på pin 2 og GND – tænder den indbyggede LED
const int KNAP = 2;

void setup() {
  pinMode(KNAP, INPUT_PULLUP);   // indbygget pull-up
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(115200);
}

void loop() {
  if (digitalRead(KNAP) == LOW) {   // LOW = trykket
    digitalWrite(LED_BUILTIN, HIGH);
    Serial.println("Trykket!");
  } else {
    digitalWrite(LED_BUILTIN, LOW);
  }
}
Afprelning (debounce)

Hvorfor tæller den 3 tryk, når jeg trykker én gang?

prel: få ms HIGH (sluppet)LOW (trykket)

Metallet inde i en knap hopper et par millisekunder, når den trykkes. Arduinoen er så hurtig, at den ser hvert hop som et nyt tryk. Løsningen er at vente lidt og først tælle trykket, når signalet har ligget stille.

Til at tænde lys mens knappen holdes (koden ovenfor) betyder prel ingenting. Det er kun et problem, når du tæller tryk eller skifter tilstand ved hvert tryk.
// Tæl tryk uden prel – skifter LED ved hvert tryk
const int KNAP = 2;
bool tidligere = HIGH;
unsigned long sidst = 0;
bool led = false;

void setup() {
  pinMode(KNAP, INPUT_PULLUP);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  bool nu = digitalRead(KNAP);
  if (nu != tidligere && millis() - sidst > 50) {
    sidst = millis();
    if (nu == LOW) {          // nyt tryk
      led = !led;
      digitalWrite(LED_BUILTIN, led);
    }
    tidligere = nu;
  }
}