Schritt 6: Programmierung der Arduino
Nun, da Sie alles, was bis zu einem Steckbrett verbunden haben, können Sie Ihr Programm zusammengestellt.
Was ich brauchte, es zu tun: mit einem Bildschirm-Schnittstelle, lesen Sie die Eingabe von zwei Tasten und passen Sie die Werte basierend auf einem Drehgeber.
Zum Glück wurde die Kommunikation mit dem Bildschirm schnell und einfach aufgrund Adafruit Bibliotheken vorgenommen. (SSD1306 für die Anbindung mit der Treiber-Chip für den Bildschirm und ihre GFX-Bibliothek für schnell und einfach hinzufügen von Text oder Formen in die Anzeige.)
Der Drehgeber verwendet externe Interrupts, die eine sehr nützliche Funktion, die den ATMega328 hat und der Arduino IDE unterstützt. Es kann Code ausgeführt werden, nur wenn ein Pin geändert und sonst nicht verlangsamen die wichtigsten loop() Programm von Polling mit der digitalRead()-Funktion. Erfahren Sie mehr über dieses nützliche Feature hier: http://playground.arduino.cc/Code/Interrupts
Angefangen habe ich mit bekommen das OLED-Display zu arbeiten. Zum Glück Adafruit verfügt über eine Bibliothek (Link) leicht Schnittstelle mit dem Display war ich (SSD1305) mit und Adafruit hat eine Menge von Informationen darüber hier: https://learn.adafruit.com/monochrome-oled-breakou...
Nach der Verlegung, mein Text und Roll-Zahlen und Ergebnisse, wo ich wollte, habe ich es so der Benutzer in verschiedenen Auswahlmodi, die Anzahl der Würfel zu Rollen und die Anzahl der Seiten ändern könnte. Ich habe eine Zufallsstartwert die Anzahl der Millisekunden, da das Gerät wurde auf und generiert eine Zufallszahl jedes Mal, wenn sie die Rollen-Taste gedrückt. Ich hatte auch den Bildschirm aktualisieren Sie nur, wenn eine Zahl geändert wurde, um unnötige CPU-Overhead reduzieren.
Zögern Sie nicht zu finden und meinen Code auf meinem Github Repository zu verwenden: https://github.com/tedmyers/Dice_Roller
Für dieses Projekt wollte ich nicht zu viel Zeit ein Steckbrett einrichten und ein Systemprogrammierer einstecken. Also ich den Atmega328p Microcontroller in mein Arduino Uno herausgesprungen, und legte ihn in meine endgültige Schaltung. Wenn Sie dies tun, denken Sie daran, ein 16 MHz Crystal Oszillator mit der notwendigen 22pF Kondensatoren auf jeden Pin.