Einfacher UNO-Rechner
Komponenten und Verbrauchsmaterialien
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
Über dieses Projekt
Eines Tages fragte mich mein Mathelehrer, als ich über Arduino sprach:"Kannst du damit Mathe machen?". Ich antwortete "Ich weiß nicht", und das brachte mich dazu, darüber nachzudenken, wie ich das umsetzen könnte. Dann habe ich irgendwie herausgefunden, wie es geht, und ich möchte es jetzt teilen.
Hier ist es also! Eine sehr einfache Möglichkeit, mit Arduino zu rechnen. Für mein Projekt habe ich Arduino UNO verwendet, aber ich glaube, es funktioniert mit jedem von ihnen.
Die Schritt-für-Schritt-Anleitung ist ganz einfach:
- Verbinde das Board mit dem Computer
- Laden Sie den Code unten hoch
- Schreiben Sie eine gültige Berechnung (Weitere Anweisungen finden Sie im Code)
Ich habe vor, einen besseren Taschenrechner zu entwickeln, aber im Moment ist es nur das:eine Möglichkeit, grundlegende Mathematik zu machen. Wenn Sie den "besseren" Rechner haben möchten, lassen Sie es mich bitte wissen.
Bleiben Sie dran, um einen besseren "Rechner" zu sehen! Wir hoffen, Sie bald zu sehen!
Code
CODE FÜR RECHNERArduino
Sie geben die Zahlen und das Signal zusammen, z sehr rustikaler Taschenrechner. Er akzeptiert zwei Zahlen und ein Signal und führt die Operation durch, die von +, -, * oder /.EG sein kann :Senden Sie "2+3" (ohne Anführungszeichen und mit Nospace zum Trennen der Informationen), und arduino antwortet 5.Digit "7-3" und arduino te responsee com 4.Criado von João Paulo Rodrigues PoltronieriDieser Code ist gemeinfrei*// / Erstellen Sie zunächst Variablen, um // die an arduinolng number1 gesendeten Informationen zu speichern; // erste Zahl der Berechnung, // über den seriellen Monitor gesendet // Wenn Sie sich das ansehen, ist es eine lange Variable, // also können wir große Zahlen verwenden lange Zahl2; // zweite Zahl, die über das SMchar gesendet wird calSignal; // eine char-Variable erstellen, um // das Berechnungsergebnis zu speichern signal.long; // Ergebnis der Berechnungvoid setup () { Serial.begin (9600); // beginnt die serielle Kommunikation Serial.println ( "Senden Sie mir eine Berechnung"); Serial.println("ZB:2+3"); Serial.println(); // druckt dies, um die serielle Kommunikation zu testen, und // druckt einen Zeilenabstand}void loop () { while (Serial.available ()> 0) { // während Dada an Arduino gesendet wird, number1 =Serial.parseInt ( ); // number1 ist die erste Zahl // Beachten Sie die Verwendung von "Serial.parseInt", also // falls Sie 23 verwenden, speichert es in // number1 die Nummer 23 // wenn wir Serial.read() verwendet haben, ist es würde // nur 2 speichern calSignal =Serial.read(); // calSignal ist die erste // Info nach der ersten Zahl number2 =Serial.parseInt(); // speichert die zweite // Zahl in number2 resolucao(); // Benutzerdefinierte Funktion zum Lösen der Berechnungen Serial.println("Resultado ="); Serial.println(result); // Gibt das Ergebnis der Berechnung aus Serial.println(); // springt eine Zeile Serial.println("Outra conta, por favor"); // druckt Serial.println(); // springt eine Zeile }}void resolucao() { // Benutzerdefinierte Funktion, die // die Berechnungen löst switch (calSignal) { // Hier verwenden wir "switch ...case", um etwas Platz auf // der Skizze zu sparen. Es ist im Grunde eine Funktion, die // verschiedene "if"-Anweisungen überprüft. // Hier überprüft sie, welchen Wert // calSigna hat das "Signal" // des Rechenfalls '+' :// if calSignal ist '+' Ergebnis =Zahl1 + Zahl2; // summiert die Zahlen // und lässt das Ergebnis den Wert der Berechnung halten break; // Break um den "case" Fall zu verlassen '+':// wenn calSignal '+' ist result =number1 - number2; // subtrahiert die Zahlen // und lässt das Ergebnis den Wert der Berechnung halten break; // Break um den "case" Fall zu verlassen '+':// wenn calSignal '+' ist result =number1 * number2; // multipliziert die Zahlen // und lässt das Ergebnis den Wert der Berechnung halten break; // brechen, um den Fall "case" zu beenden '/':// se calSignal for '/' result =number1 / number2; // dividiert die Zahlen // und sorgt dafür, dass das Ergebnis den Wert der Berechnung enthält // PS:Falls die Division nicht genau ist, ist das Ergebnis // der nächste Integrerbruch; // brechen, um den "case"-Standard zu beenden:// Wenn es nicht einer von diesen ist ... Serial.println ("CONTA INVÁVIDA"); // Erzeugt einen "Fehler" Serial.println(); Ergebnis =0; }} Schaltpläne
Im Grunde wird eigentlich nur das Board benötigt