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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.