Vorhandenen Sketch erweitern

Nitri:
Ich könnte das Schaltverhalten träger machen, so das Der Piezo nicht dieses "trillernde" Geräusch abgibt :slight_smile: Zur Zeit hört es sich an wie eine Krähe.

Das "hört sich an wie eine Krähe" kommt von der falschen Ansteuerung. Ein "Buzzer" wird korrekt so angesteuert:

  • Buzzer mit Strom versorgen
  • Buzzer piept (in einer einzigen bauartbedingten Tonhöhe)
  • Strom abschalten

Ein Sounder/Lautsprecher wird dagegen mit einem Aduiosignal variabler Frequenz angesteuert und kann Töne unterschiedlicher Frequenz erzeugen.

Dein Buzzer wird bei Dir tatsächlich wie ein Lautsprecher angesteuert und macht deshalb das raue Geräusch statt eines sauberen Sinustons.

Nitri:
Das mit der "Entertaste" ist natürlich ne gute Idee. Zudem man ja auch Handschuhe anhat, ausser Puste ist, durch die Maske vielleicht ´n bissel verschwommen sieht und, und, und. Aber ich kann das nicht programmieren. Ich bin froh, wenn ich Texte auf dem Dislplay ausgebe und LED´s zum blinken bekomme. Die Tastatur, die ich hier benutze, ich schon ein bissel besser, mit richtigen Kunststofftasten. Solch Folientastatur hat mir nicht gefallen. Aber das "" ist doch schon die Aufforderung um den Code ein zu tippern. Kann man die Taste "" doppelt belegen um das man bei Falscheingabe, die falsche Zahl weglöscht? Denn das geht ja zur Zeit nur mit der "#" Taste. Oder halt so, das man die "#" Taste gedrückt halten muss umd die Eingabe abzuschließen :slight_smile:

Ein besseres Tastenfeld anstelle einer simplen Folientastatur ist natürlich keine schlechte Sache.

Und Doppelbelegungen von Tasten kann man natürlich immer nur dann machen, wenn die Funktion dabei eindeutig bleibt.

Ich habe mir nochmal die Original-Tastenlogik Deines Sketches angesehen: Du verwendest tatsächlich das Sternchen, um die Codeeingabe zu aktivieren. Vorher eingegebene Ziffern werden ignoriert. Und bis zur dritten Ziffer kann man den bis dahin eingegebenen Code tatsächlich noch korrigieren, indem man den eingetippten Code mit der Doppelraute löschen kann.

Also um den Code 1234 einzugeben, muss man bei Dir eingeben *1234

Allerdings ist der Gebrauch der Sternchen-Taste nicht konsistent: Wenn man nach der Aktivierung der Codeeingabe nochmals Sternchen eintippt, dann wird das Sternchen als Codebestandteil interpretiert und nicht die Codeeingabe neu begonnen. D.h. die fünfmalige Eingabe eines Sternchens führt zu "Wrong CODE" und nicht zur fünfmaligen Aktivierung einer neuen Codeeingabe.

Eigentlich nicht schlecht, aber ich sehe da zwei Problem:

  • Nach der dritten Stelle ist keine Korrektur mehr möglich.
  • die Sternchen-Taste wird nicht durchgängig für "Neue Codeeingabe beginnen" verwendet

Ist eigentlich die verdeckte Codeeingabe notwendig, mit der die tatsächliche Eingabe durch Sternchen verschleiert wird?

Als maximale Sicherheit gegen Falscheingaben des Codes würde ich vorschlagen:

  • Beginn der Codeeingabe mit Sternchen *
  • offene Codeeingabe ohne Verschleierung
  • Abschluß der Eingabe mit der Doppelraute #

So dass ein Code 1234 tatsächlich bei der Eingabe der Code *1234# ist.
Vorteil: Korrekturmöglichkeit bis zur Eingabe der letzten Ziffer, und durch kein "Doppelprellen" einer Taste mit Eingabe durch zittrige Hand ist eine Fehleingabe möglich. Bei Fehleingaben kann man einfach mit einem Sternchen jederzeit neu mit der Codeeingabe beginnen. Falls also z.B. falsch *1233 getippt wurde, tippt man einfach neu *1234# und der Code wurde komplett und richtig eingegeben. Also bei Fehleingabe einfach nochmal neu von vorne anfangen zu tippen, erst mit der Doppelraute wird die Eingabe komplett.

Also erstmal die Eingabe so gut es geht narrensicher machen, dann ggf. einen Zähler für die Anzahl der möglichen Fehlversuche noch zusätzlich implementieren. Wenn Du Probleme mit der Umsetzung hast, kann ich mir ja mal etwas überlegen, das ein wenig schöner und übersichtlicher umzusetzen als im vorhandenen Sketch.