In Bezug auf das Automaten-Display haben wir uns für eine Open-Source-Lösung entschieden. Das kleine DIY-Display wird energieautark mit einer Powerbank über einen Mikrokontroller betrieben.
Zutaten- Cytron Maker UNO (Arduino-Variante)
- LCD-Display 1602 mit i2c-Bus – zusammengebaut und verlötet Hintergrundbeleuchtung: Blau, Betriebsspannung: 3,3 V und 5 V
- Modulabmessungen: 98 mm x 60 mm x 14 mm
- Auflösung: 20 Zeichen x 4 Zeilen
- Betriebstemperatur: von -20°C bis +70°C
- Female-to-Male-Wires
Programmierung
Zur Programmierung von Arduino und Display benötigst Du die Arduino-IDE und die Library LiquidCrystal I2C
1. Arduino IDE > Reiter „Werkzeuge“ > „Bibliotheken verwalten“
2. Bibliothek „LiquidCrystal I2C“ im Suchfeld eingeben
3. „LiquidCrystal I2C“ > Installieren
Schrift am Display: Programmiercode// libraries to be included#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 20, 4); // Display: 20x04, physical address: 0x27 char array2[] = " HALLO! "; char array1[] = " VIEL SPASS "; char array3[] = " BEIM LESEN!!! "; void setup() { lcd.init(); lcd.backlight(); delay(250); lcd.noBacklight(); delay(1000); lcd.backlight(); delay(500); lcd.clear(); } void loop() { lcd.clear(); // Clears the LCD screen and positions the cursor in the upper-left corner lcd.setCursor(0, -1); // Sets the cursor for ( int positionCounter1 = 0; positionCounter1 < 14; positionCounter1++) { lcd.scrollDisplayLeft(); // Scrolls the content of the display one space to the left. lcd.print(array2[positionCounter1]); // Shows array with 12 characters delay(150); } delay(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Ich bin ein Automat"); delay(1000); lcd.setCursor(0, 1); lcd.print("von TAKOTOKA."); delay(1000); lcd.setCursor(0, 2); lcd.print("Ich zeige Comics"); delay(1000); lcd.setCursor(0, 3); lcd.print("- und verkaufe sie!"); delay(1000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("1. 2-Euro-Muenze"); delay(1000); lcd.setCursor(0, 1); lcd.print("2. Klappe aufziehen"); delay(1000); lcd.setCursor(0, 2); lcd.print("3. Comic entnehmen"); delay(1000); lcd.setCursor(0, 3); lcd.print("4. Klappe schliessen"); delay(1000); lcd.setCursor(0, 0); lcd.clear(); lcd.setCursor(0, 0); lcd.print("5. Bei Versagen:"); delay(1000); lcd.setCursor(0, 1); lcd.print("Knopf druecken"); delay(1000); lcd.clear(); lcd.setCursor(0, 1); lcd.print("& nochmals ziehen"); delay(1000); lcd.setCursor(0, 2); lcd.print("oder"); delay(1000); lcd.clear(); lcd.setCursor(0, 2); lcd.print("ausgegebene Muenze"); delay(1000); lcd.setCursor(0, 3); lcd.print("erneut einwerfen!"); delay(1500); lcd.clear(); lcd.setCursor(24, 3); for ( int positionCounter1 = 0; positionCounter1 < 19; positionCounter1++) { lcd.scrollDisplayLeft(); lcd.print(array1[positionCounter1]); } lcd.setCursor(-3, -2); for ( int positionCounter1 = 0; positionCounter1 < 17; positionCounter1++) { lcd.scrollDisplayLeft(); lcd.print(array3[positionCounter1]); delay(150); } delay(1500); lcd.clear(); lcd.setCursor(0, 0); lcd.print(" 127.0.0.1"); delay(1000); lcd.setCursor(0, 1); lcd.print(" & "); delay(1000); lcd.setCursor(0, 2); lcd.print(" takotoka.com"); delay(1500); }