Ereignis 'wenn Pin gepulst' konfigurieren (digital Input)

Digitale Eingänge können für verschiedene Zwecke benutzt werden. Als Beispiel:

  • Taster
  • Encoder (schneller Impulszähler)

‚wenn Pin gedrückt‘ gibt es nur für P0 P1 P2 P3. Das funktioniert mit Tastern gut.

‚wenn Pin gepulst‘ gibt es für alle digitalen Pins. Schließe ich einen Taster an, kann der prellen und das Ereignis mehrmals auslösen. Ist der Code im Ereignis Block noch nicht abgearbeitet, werden die (unerwünschten) Impulse in eine Warteschlange gestellt und lösen das Ereignis nach Ablauf gleich wieder neu aus. Das ist hilfreich für schnelle Impulszähler, aber nicht für Taster, die nicht „prellfrei“ sind.

Ich habe nun Grove Dual Button | Seeed Studio Wiki an C16 / C17 angeschlossen. Die haben zwar Elektronik aber lösen das Ereignis trotzdem 3 bis 5 Mal aus bei einem Tastendruck.

Es gibt den Block ‚stelle Pin ein zum Ausgeben von Ereignissen‘ mit den Optionen Rand, Impuls, Berührung, nichts.

Was bedeutet das? Ist das dokumentiert?

Bei den digital Pin Blöcken ist auch nicht eindeutig erkennbar, ob sie für Eingabe oder für Ausgabe wirksam sind. Was mache ich mit ‚Impuls in µs‘? Kann das mein Problem lösen?

Was ist also bei dem Ereignis ‚wenn Pin gepulst‘ zusätzlich noch einzustellen, um es an verschiedene Anforderungen anzupassen? Und was ist der Standardwert?

Schau mal, bei Adafruit gibt es einiges zu den Pins. Pin events
Die Randereignisse sind die abfallenden bzw. aufsteigenden Flanken von high zu low oder umgekehrt.
Ich würde zum entprellen einen Timer verwenden der eine bestimmte Zeit oder eine Anzahl von Ereignissen einfach nichts auslösen lässt.

Viel Spaß

Michael

1 „Gefällt mir“