Taschenrechner mit Touchscrenn und Serieller Eingabe auf Arduino Uno gequetscht

OP #7912883
Lesenswert?

Features des Codes

  1. Touchscreen-Bedienung

    5x5 Tastenfeld auf 3,5" TFT mit MCUFriend (Zahlen, Operatoren, Funktionen, Klammern, Löschen usw.) Große Tastenflächen und klare Labels für einfaches Tippen Jede Taste reagiert direkt auf Berührung

  2. Serieller Modus (USB/Serial Monitor)

    Rechnen per Serial Monitor (z.B. Arduino IDE → Werkzeuge → Serieller Monitor) Komplette Rechnungen eingeben (12+34/2, sqrt(16)+2, 1/0) Auch Operatoren-Fortsetzung: Wenn ein Ergebnis im Display steht, reicht z.B. /2, um mit diesem Wert weiterzurechnen (Anzeige: 20, Serial: /2 → Anzeige: 10)

  3. Autokorrektur von Eingaben

    Automatische Korrektur typischer Syntaxfehler und unvollständiger Eingaben: Komma wird zu Punkt (1,5 → 1.5) Doppelte Operatoren werden entfernt (1++2 → 1+2) Operatoren direkt nach ( werden entfernt ((+)5 → (5)) Leere Klammern entfernt (() → entfernt) Zahlen direkt vor einer Klammer (2(3+4)) → Multiplikationszeichen eingefügt (2*(3+4)) Klammer gefolgt von Zahl ((2)3 → (2)*3) Fehlende schließende Klammern werden ergänzt Ausdruck ohne Zahl (++--((()))) wird zu "0" Leere Eingabe wird zu "0" End-Operatoren werden entfernt (2+3+ → 2+3) Doppelte Plus/Minus am Anfang werden reduziert (--4 → 4) Ergebnis: Sehr viel weniger „ERR“ – Eingaben werden wie bei modernen Rechnern interpretiert

  4. Mathematik-Parser

    Eigener Parser für Ausdrücke mit Klammern, Punkt-vor-Strich, mehrere Operatoren Operatoren: +, -, *, /, % Klammern beliebig verschachtelt Funktionen: sqrt(…) (Wurzel) sq(…) (Quadrat) inv(…) (Kehrwert, 1/x) Direkte Quadrat-/Wurzel-Taste am Touchscreen (x^2, sqrt, 1/x)

  5. Komfortables Fehlerhandling

    Division durch Null, zu große/kleine Ergebnisse, Stacküberlauf → Anzeige „ERR“ Nach „ERR“ kann weitergerechnet werden (Touch oder Serial, keine Blockade mehr) **„C“ löscht alles und setzt auf „0“ zurück Watchdog-Timer (2s): Sollte dennoch ein Fehler im Code (Endlosschleife, Stacküberlauf) passieren, startet das System automatisch neu

  6. Ergebnisformatierung

    Ganze Zahlen werden als Integer angezeigt (ohne .0) Kommazahlen werden ohne unnötige Nullen ausgegeben Sehr große Zahlen (Überlauf) führen zu „ERR“

  7. Synchronisierte Anzeige

    Egal ob über Touch oder Serial gerechnet wird: Das Ergebnis ist immer sofort auf dem Display und im Serial Monitor sichtbar

  8. Zusätzliche Komfortfunktionen

    Löschen einzelner Zeichen („<-“) Vorzeichen umschalten („+/-“) Prozent-Umrechnung Automatisches Weiterrechnen nach Touch oder Serial

  9. Speichersicher, stabil und absturzfest

    Alle Array-Kopien und -Längen werden korrekt geprüft (Buffer Overflow-Schutz) Eingabegrößen (Touch und Serial) sind begrenzt (INPUT_MAX) Alle Stackoperationen geprüft: Tiefe Klammerausdrücke führen zu „ERR“, nicht zum Absturz

  10. Benutzerfreundlichkeit

    Fehlerkorrektur statt Fehlermeldung Keine Angst mehr vor Syntaxfehlern Funktioniert wie ein smarter Taschenrechner am Smartphone

Funktioniert mit Touchscreen(3.5 TFT Lcd Shield, kalibrieren nicht vergessen) oder Seriel (115200 baud)

Angehängte Dateien:
#7913090
Lesenswert?

Gequetscht? Bitte was? Kleiner Realitätscheck:

Der klassische TI-30 lief mit 2K ROM (9 Bit Breite) und 576 Bits RAM http://www.datamath.org/Chips/TMC0980.htm Funktionen ähnlich dem was du geschrieben hast, nur mit richtigem internen Taschenrechner-Zahlenformat und ohne Parser.

Der HP28C, ein Meilenstein bei den technisch-wissenschaftlichen Taschenrechnern, hatte 64KB ROM http://mycalcdb.free.fr/main.php?l=0&id=831

In diesen 64KB ROM war ein Taschenrechner auf Speed:

Unter anderem programmierbar und mit symbolischem und numerischem Solver, einem Satz von eingebauten Funktionen die in einem 400+ Seiten Handbuch dokumentiert waren, diverse Zahlensysteme, Matrixfunktionen, Differenzieren, Integrieren, Rechnen mit komplexen Zahlen, Plotfunktionen, Statistikfunktionen, und, und, und. Ach ja, und eine Katalog von 120 Einheiten inklusive Symbolen die man in Rechnungen verwenden konnte und Umrechnungsfunktionen. SI Prefixe, einschließlich allem was man in der E-Technik braucht, wurden dabei auch verstanden.

Das war gequetscht. Aber wirklich gequetscht. Ach ja, und das war im Jahr 1987.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren