Dan moet ik een schema maken en dat kan. Maar een controller moet je ook programeren, heb je daar ervaring mee.

Pico 2W (kun je later meer leuke dingen mee doen).

from machine import Pin
import time

# knop (pull-up → ingedrukt = 0)
button = Pin(15, Pin.IN, Pin.PULL_UP)

# uitgang
output = Pin(16, Pin.OUT)
output.value(0)

# instellingen
hold_time = 3000  # ms

# state
press_start = None
long_press = False
last_state = 1

while True:
    now = time.ticks_ms()
    current = button.value()

    # knop ingedrukt
    if current == 0:
        if press_start is None:
            press_start = now
            long_press = False

        # check of 3 sec gehaald is
        if time.ticks_diff(now, press_start) >= hold_time:
            long_press = True

    # knop losgelaten
    elif current == 1 and last_state == 0:
        if long_press:
            # toggle uitgang
            output.value(not output.value())

        press_start = None
        long_press = False

    last_state = current
    time.sleep(0.01)

GP16 naar SSR.

Mijn pinnen zijn iets anders, maar idee blijft hetzelfde.
https://www.tiktok.com/@skylabnetherlands/video/7620914656973966624?_r…

@Truffel: Is dat niet overkill? Een digispark is al veel te groot eigenlijk voor 1 ingang en 1 uitgang.

@TYPE ONE: Je bedoeld dat je een schakelingetje op12v wil? En de galvanische scheiding? Moet dat ook op 12v of is dat netspanning? Wat wil je geschakeld zien? Iets inductief? Iets met groot vermogen?....

[Bericht gewijzigd door EricN op (54%)]

Op dinsdag 24 maart 2026 21:03:19 schreef EricN:
@Truffel: Is dat niet overkill? Een digispark is al veel te groot eigenlijk voor 1 ingang en 1 uitgang.

@TYPE ONE: Je bedoeld dat je een schakelingetje op12v wil? En de galvanische scheiding? Moet dat ook op 12v of is dat netspanning? Wat wil je geschakeld zien? Iets inductief? Iets met groot vermogen?....

Mee eens, maar dit is wat TS vraagt en is PoC.
Hiermee ziet TS dat het niet ingewikkeld hoeft te zijn.
En zo'n pico kost letterlijk een paar euro....
Als er Wifi is kun je zelfs zien hoe vaak de knop is ingedrukt en etc.

Je kunt vrij snel alle kanten op met dit soort dingen.
https://www.tiktok.com/@skylabnetherlands/video/7620918071552789792?_r…

Ik vind state machines in firmware sowieso geen goed idee en is tegenwoordig ook totaal onnodig.
Toetsen afvragen, wachttimers e.d. doe je in een timerinterrupt. Veel preciezer en de mainloop blijft vrij voor andere zaken.

Ik zit nog steeds met teveel vragen om een deftig antwoord te verzinnen. Werkt het op netspanning (adapter/voeding(12v)) of op batterij? Wat mag de schakeling verbruiken in stand by? Wat moet het juist schakelen? Piekstromen? Resistieve belasting? Hoe storingsvrij moet het zijn? Welke vervuiling zit er op de 12v?

Tsja, ik zou zelf hebben aangegeven "Ik wil een lamp laten branden na een knop x seconden te hebben ingedrukt" etc.
Maar soms lijkt het wel een staatsgeheim :)
Duidelijke info in een enkel topic is soms zo handig om in een keer een passend antwoord te geven.

timerinterrupt

from machine import Pin, PWM, Timer
import time

# LED
led = PWM(Pin(11))
led.freq(5000)

# knop
button = Pin(14, Pin.IN, Pin.PULL_UP)

# instellingen
max_brightness = 65000
tick_ms = 10
hold_time_ms = 3000
hold_ticks = hold_time_ms // tick_ms

# state
press_ticks = 0
toggled_this_press = False
led_state = False

def timer_cb(t):
    global press_ticks, toggled_this_press, led_state

    if button.value() == 0:  # ingedrukt
        if press_ticks < hold_ticks:
            press_ticks += 1

        # &#128293; zodra 3 sec bereikt &#8594; DIRECT toggle
        if press_ticks >= hold_ticks and not toggled_this_press:
            led_state = not led_state
            toggled_this_press = True
    else:
        # reset voor volgende druk
        press_ticks = 0
        toggled_this_press = False

# timer starten
tim = Timer()
tim.init(period=tick_ms, mode=Timer.PERIODIC, callback=timer_cb)

# main loop
while True:
    if led_state:
        led.duty_u16(max_brightness)
    else:
        led.duty_u16(0)

    time.sleep_ms(10)

Schakelt na 3 seconden ingedrukt houden.
Blijft aanstaan en geen reset.

Het letterlijke antwoord op de vraag (led is SSR).
Alle verdere info ontbreekt dus meer zinnig is niet te zeggen.

"Ik wil een lamp laten branden

Ook dat is nog steeds veel te weinig info. Dat kan een 0.1W fietslampje zijn op 6Vdc, of een 500W halogeen bouwlamp op 230Vac. Ik had toch eigenlijk wel beter verwacht van jou, Revado :) (OT: morgen gaat er een pakketje op de bus richting 's-Gravenhage /OT)

Maar soms lijkt het wel een staatsgeheim

Da's de reden dat ik dit soort threads/vragen links laat liggen. Als je eerst moet gaan vragen/zeuren/trekken om de info te krijgen.... laat maar.

Ik ben geen vragende partij dus 'no skin off my back'.

ot Je hoeft niet te reageren, simpel zat. Kijk nu doe ik hetzelfde. /ot

@TYPE ONE

Kan ik je verder helpen, want die knop voor een paar euro is simpel.

5/12
Omron G3VM-61G1
AQY212 (Panasonic PhotoMOS)
AQH3213 (voor iets hogere belasting)

12
Fotek SSR-40DD
SSR-25DD

230
Fotek SSR-25DA
Fotek SSR-40DA
Omron G3NA-210B

360
Fotek SSR-40DA (per fase 1 stuk nodig)
Carlo Gavazzi RM1A / RM3A series
Omron G3PH serie (3-phase SSR)

Will Smith - Switch (Official Music Video)

Op dinsdag 24 maart 2026 22:15:02 schreef Arco:
[...]
Kijk, zo zie ik het graag... :)

Je hebt gelijk, maar was rudimentair.

De vraag is: will switch smith?

Op dinsdag 24 maart 2026 21:59:49 schreef nonius:
[...]

(OT: morgen gaat er een pakketje op de bus richting 's-Gravenhage /OT)

[

Dank je wel vast! :)

Op dinsdag 24 maart 2026 20:34:18 schreef Lambiek:
Dan moet ik een schema maken en dat kan. Maar een controller moet je ook programeren, heb je daar ervaring mee.

Helaas niet

Op dinsdag 24 maart 2026 20:55:32 schreef Truffel.:
Pico 2W (kun je later meer leuke dingen mee doen).

from machine import Pin
import time

# knop (pull-up &#8594; ingedrukt = 0)
button = Pin(15, Pin.IN, Pin.PULL_UP)

# uitgang
output = Pin(16, Pin.OUT)
output.value(0)

# instellingen
hold_time = 3000  # ms

# state
press_start = None
long_press = False
last_state = 1

while True:
    now = time.ticks_ms()
    current = button.value()

    # knop ingedrukt
    if current == 0:
        if press_start is None:
            press_start = now
            long_press = False

        # check of 3 sec gehaald is
        if time.ticks_diff(now, press_start) >= hold_time:
            long_press = True

    # knop losgelaten
    elif current == 1 and last_state == 0:
        if long_press:
            # toggle uitgang
            output.value(not output.value())

        press_start = None
        long_press = False

    last_state = current
    time.sleep(0.01)

GP16 naar SSR.

Mijn pinnen zijn iets anders, maar idee blijft hetzelfde.
https://www.tiktok.com/@skylabnetherlands/video/7620914656973966624?_r…

Dat zier er goed uit.

Op dinsdag 24 maart 2026 21:03:19 schreef EricN:
@Truffel: Is dat niet overkill? Een digispark is al veel te groot eigenlijk voor 1 ingang en 1 uitgang.

@TYPE ONE: Je bedoeld dat je een schakelingetje op12v wil? En de galvanische scheiding? Moet dat ook op 12v of is dat netspanning? Wat wil je geschakeld zien? Iets inductief? Iets met groot vermogen?....

Op 12v inderdaad. Het te schakelen is maar 3V.

En 2000A ?

De stroom die het ding opneemt maakt *nogal* wat uit voor je uitgangstrap.

[Bericht gewijzigd door Sine op (80%)]

https://datasheet.octopart.com/AQY212EH-Panasonic-datasheet-109895.pdf
https://www.conrad.nl/nl/p/panasonic-aqy212eh-photomos-relais-1-stuk-s…

Arduino Uno / Nano
ESP32
ESP8266
STM32
ATtiny / ATmega
RP2040-borden algemeen

Step down van 12 naar ^
Pinnen naar 212, stuurt 3V
470 Ω weerstandje.

Beetje ziek op tijd dan naar C i.p.v Micro Python.

De enigste logische reden is een data gat voorkomen wat ik nu kan bedenken, je wilt geen reset.

Op woensdag 25 maart 2026 19:26:13 schreef Truffel.:
..., je wilt geen reset.

Lekker voor je controller iedere keer aan en uit zetten.

Ik zou een reset knopje willen.

TS wil een raket bouwen.
Aansturing en ontsteking moeten gescheiden zijn.
No point of return.

Forum psycholoog @K7Jz kan begeleiding geven...