6.3. 'Edge Detector' für den Button

Wenn eine Aktion genau bei Drücken des Buttons ausgelöst werden soll, also nur beim Moment des Tastendrucks, dann wird ein 'edge detector' oder 'Flankendetektor' benötigt.

Das funktioniert so, dass der aktuelle Zustand des gpio-Eingangs mit dem letzten Zustand verglichen wird. Es wird eine Variable benutzt, um sich den letzten Zustand zu merken. Wenn der aktuelle Zustand '0' ist und der letzte Zustand '1' ist, dann hat man den Tastendruck gefunden.

set lastValue = '1'
forever
    if lastValue == '1' and if gpio23 sensorvalue == 0
        send broadcast 'button pressed'
    end if
    set lastValue = gpio23 sensorvalue 

Dieser Code muß geschrieben werden, da gpioserver keine Flankenerkennung mitbringt.

Beispielprogramm Flankendetektor piandmore_gpioserver_buttontoggle.sb