Anleitung: Autodesk Circuits

Seite 5: Arduino-Projekt

Inhaltsverzeichnis

Im zweiten Beispiel soll ein Arduino Uno ein Standard-LC-Display vom Typ HD44780 ansteuern. Zusätzlich wird ein Taster genutzt, um die Frequenz für ein PWM-Signal zu verändern. Mit diesem Signal wird die Helligkeit einer LED beeinflusst. Ein Oszilloskop soll verdeutlichen, dass es sich dabei nicht um ein analoges Signal handelt, wie im Zusammenhang mit den Arduinos leider immer wieder zu lesen ist.

Zuerst bauen wir nur das LCD zusammen mit dem Arduino auf. Der Arduino R3 wird automatisch über die symbolisierte USB-Verbindung mit Spannung versorgt, wenn Sie die Simulation starten. Diese Spannung wird vom Arduino-Board an das Breadboard geleitet. Das LCD vom Typ HD44780 wird in der typischen Konfiguration betrieben, bei der nur die unteren vier Datenleitungen zum Einsatz kommen. Weil nur Daten ans Display gesendet werden sollen, kann die Leitung R/W (read/write) permanent auf Low (Masse) gezogen werden. Neben den vier Datenleitungen wird noch Reset und Enable zum Arduino verlegt. Die LED-Hintergrundbeleuchtung wird über einen Vorwiderstand von 220 Ω an 5 V betrieben. Für die Kontrastregelung ist ein Poti mit 10 kΩ verbaut.

Zum Vergrößern bitte anklicken.

Wenn Sie jetzt die Simulation starten würden, passiert noch nicht viel. Die grüne LED auf dem Arduino leuchtet als Betriebsanzeige, das Display bleibt aber dunkel, da es noch nicht angesteuert wird. Um den ATmega zu programmieren, klicken Sie oben rechts auf Code Editor. Am unteren Rand öffnet sich der Eingabebereich für den Quellcode.

Tragen Sie dort die folgenden Anweisungen ein:

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
uint8_t valuePWM = 128;

void setup()
{
lcd.begin (16, 2); // set up the LCD's number of columns and rows:
lcd.print ("hello Make:"); // Print a message to the LCD.
lcdOutValue();
}

void lcdOutValue(void)
{
lcd.setCursor(0, 1); // set the cursor to column 0, line 1. (note: line 1 is the second row, since counting begins with 0)
lcd.print("PWM value: ");
lcd.print(valuePWM); // print the value
lcd.print(" "); // overwrite old values
}

void loop()
{
}

Zum Vergrößern bitte anklicken.

Anschließend klicken Sie auf Upload & Run oder Start Simulation. Der Sourcecode wird dann übersetzt und die Ausführung auf dem Arduino wird simuliert, wenn keine Fehler vorliegen. Andernfalls wird die zu bemängelnde Stelle markiert und Sie können den Fehler im Text beseitigen.

Beim ersten Start wird vermutlich auf dem Display nichts zu sehen sein. Das liegt an der noch nicht eingestellten Kontrastspannung. Drehen Sie dann während der laufenden Simulation am Potentiometer den inneren Pfeil nach rechts, bis im Display der Text lesbar wird. Diese Einstellung kann ein wenig fummelig sein. Eventuell ist es einfacher, an die gewünschte Zeigerposition zu klicken.

Zum Vergrößern bitte anklicken.

Um den Sourcecode zu verändern, muss man erst die Simulation anhalten. Für den Zugriff auf das Display wurde im Beispiel die Bibliothek LiquidCrystal.h eingebunden. Auf eine weitere Beschreibung der Anweisungen verzichten wir hier, da es sich dabei um die einfachsten Grundlagen der Arduino-Nutzung handelt – die hier nicht Thema sind. Auf der Webseite mit der Arduino-Referenz für C finden Sie die Dokumentation zu der verwendeten Bibliothek und den Befehlen.