Arduino Uno – mein neuestes Spielzeug

von Dave am 19. August 2012

in Rösten

Arduino Uno mit SainSmart 1602 LCD Keypad Shield

Arduino Uno m. LCD-Shield

Eigentlich bin ich bisher sehr zufrieden mit meinem Gene CBR-101. Aber im Kaffee-Netz gibt es Threads, die mir einen Floh ins Ohr gesetzt haben, ich könnte dieses Gerät noch optimieren. Das würde mit etwas Bastelei verbunden sein, was mich allerdings nicht abschreckt – im Gegenteil!

Temperatur messen, steuern, regeln.

Es gibt mehrere Methoden der Modifikation. Ich habe mich für ein Arduino-Board mit TC4-Shield entschieden. Einer der Gründe, mich für die Arduino-Lösung zu entscheiden, war, dass mir dieses Gerät auch bereits mehrfach bei meinen Studien zu elektronischer Musik begegnet ist. Eine Einarbeitung in dieses System könnte sich vielleicht also auch auf anderem Gebiet auszahlen.

Was ist ein Arduino-Board?

Arduino ist eine Open-Source-Physical-Computing-Plattform, die auf sehr einfach anzuwendender Hard- und Sofware besteht. Entwickelt wurde sie für Künstler, Designer, Bastler und jeden, der daran interessiert ist, interaktive Objekte oder Umgebungen zu schaffen. Die Hardware besteht aus einer kleinen Platine, deren Herzstück ein Atmel AVR Microcontroller ist. Über USB kann ein Computer mit dem Board kommunizieren und die Software, die auf einer eigens entwickelten, plattformunabhängigen IDE geschrieben wird, auf das Board übertragen.

Der hohe Verbreitungsgrad und daraus resultierend die günstigen Preise für die Arduino-Boards lassen ihre Popularität ständig wachsen. Ich habe mich für das Arduino-Uno-Board entschieden und für einen Clone davon bei Ebay inkl. Versand und USB-Kabel knappe 17 EUR bezahlt.

Was ist ein TC4-Shield?

Für verschiedene Anwendungen existieren inzwischen eine große Zahl an sogenannten Shields, das sind Zusatzplatinen, die auf das Arduino-Board aufgesteckt werden, um die analogen und digitalen Ein- und Ausgänge des Arduinos in spezieller Weise anzusprechen. Um Temperaturfühler (Typ K), die im Röster noch zu montieren sind, und zwei Schaltrelais, welche die Heizung und den Lüfter des Rösters ansteuern sollen, sinvoll an das Uno-Board anschließen zu können, hat Bill Welch, ein US-amerikanischer Elektroingenieur, im Jahre 2010 das TC4-Shield entwickelt, welches es ermöglicht, 4 Temperaturmessungen gleichzeitig vorzunehmen, die genannten SSRs anzusteuern und optional auch noch den Widerstand von Potentiometern zum Einstellen der Röstparameter zu messen.

Leider ist das TC4-Shield im Gegensatz zum Arduino-Board relativ teuer. Außerdem wird es nur in den USA und nur in kleinen Stückzahlen produziert. Deshalb ist die Bestellung noch nicht eingetroffen.

Erste Schritte

Allerdings habe ich mir zum Arduino Uno noch ein LCD-Diplay-Shield (SainSmart 1602LCD Keypad Shield), zusammen mit einem Entfernungssensor für 6 Euro inkl. Versand geleistet. Zunächst habe ich das Arduino-Board mittels der IDE alleine getestet, indem ich mit dem Beispielprogramm “Blink” eine LED auf dem Board zum Blinken gebracht habe. Ein Video dieser Aktion erspare ich der geneigten Leserschaft …

Mein zweites Projekt möchte ich allerdings hier kurz vorstellen: Eine Laufschrift auf dem LCD-Display, die ankündigt, welche Aufgabe das Arduino-Board demnächst wahrnehmen wird:

Arduino Uno + SainSmart 1602 LCD: Laufschrift / Ticker Tape

Dem Sketch (wie Programme in der Arduino-Welt genannt werden) liegt Code von CodeProject zugrunde, den ich leicht angepasst habe. Außerdem wird die LiquidCrystal Library verwendet:

/*

RoasterMessage.ino, based on TickerTape.cpp from

http://www.codeproject.com/Articles/38204/Interfacing-an-Arduino-with-LCDs

*/

#include <LiquidCrystal.h>

const int BACK_LIGHT = 10;          // Pin 10 will control the backlight
const char* MESSAGE = "Hallo, mein Name ist Arduino Uno. Ich werde in Zukunft den Gene CBR-101 steuern.                    ";
const int MESSAGE_LENGTH = 100;
const int DISPLAY_WIDTH = 16;
 
// select the pins used on the LCD panel
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

void setup()
{
    pinMode(BACK_LIGHT, OUTPUT);
    digitalWrite(BACK_LIGHT, HIGH); 	// Turn backlight on. 
			        	// Replace 'HIGH' with 'LOW' to turn it off.  
    lcd.clear();                  	// Start with a blank screen
    Serial.begin(9600);
}

void loop()
{
    static int s_nPosition = 0;
    int i;
    if(s_nPosition < (MESSAGE_LENGTH - DISPLAY_WIDTH))
    {
        for(i=0; i<DISPLAY_WIDTH; i++)
        {
            lcd.setCursor(i, 0);
            lcd.print(MESSAGE[s_nPosition + i]);
        }
    }
    else
    {
        int nChars = MESSAGE_LENGTH - s_nPosition;
        for(i=0; i<nChars; i++)
        {
            lcd.setCursor(i, 0);
            lcd.print(MESSAGE[s_nPosition + i]);
        }

        for(i=0; i<(DISPLAY_WIDTH - nChars); i++)
        {
            lcd.setCursor(nChars + i, 0);
            lcd.print(MESSAGE[i]);
        }
    }

    s_nPosition++;
    if(s_nPosition >= MESSAGE_LENGTH)
    {
        s_nPosition = 0;
    }

    delay(500);
}

Ausblick

Nun warte ich also auf das TC4 und werde mir noch zwei Thermoelemente vom Typ K besorgen. Dann wird der nächste Schritt eine Temperaturaufzeichnung beim Röstvorgang sein. Ich werde berichten.

» Arduino – HomePage

{ 4 Kommentare }

Johann 26. Februar 2013 um 16:59

Allerdings habe ich mir zum Arduino Uno noch ein LCD-Diplay-Shield (SainSmart 1602LCD Keypad Shield), zusammen mit einem Entfernungssensor für 6 Euro inkl. Versand geleistet.

Und wo hast du es für 6€ bekommen?

Antworten

Dave 8. März 2013 um 12:03

Da hatte ich Glück: Bei Ebay gab es diese Kombination im letzten August als Aution bei einem Händler namens tool_nerd. Im Moment hat er diese Kombi leider nur als Sofort-Kaufen-Angebot für 18,88, EUR im Angebot. Aber vielleicht gibt es mal wieder die Gelegenheit zu einem Schnäppchen …

Antworten

Weller 2. Januar 2014 um 18:09

Hallo Dave!
Ich habe deine Laufschrift getestet. Sie funktioniert super.
Wie kann ich aber in die Laufschrift Variable einbauen, um somit auch Werte von meiner Wetterstation auszugeben?
mfg
Helmut

Antworten

Dave 3. Januar 2014 um 10:52

Hallo Helmut,

freut mich, dass mein hier veröffentlichtes Skript bei Dir auch funktioniert!
Leider habe ich mich allerdings seither nicht mehr wirklich mit dem Arduino-Board beschäftigen können. Ich bin daher nicht der geeignete Ansprechpartner für Fragen zur Programmierung.
Als gute Ausgangsbasis für solche Fragen empfehle ich gerne:

… oder eben Google.

Beste Grüße
Dave

Antworten

Einen Kommentar hinterlassen

Vorheriger Beitrag:

Nächster Beitrag: