Das ist eine für den Ausdruck optimierte Ansicht des gesamten Kapitels inkl. Unterseiten. Druckvorgang starten.

Zur Standardansicht zurückkehren.

Dokumentation

So startest du mit Automaduino!

Automaduino ist eine visuelle Programmiersprache basierend auf endlichen Automaten für den Arduino. Das Ziel dieses Projektes ist es herauszufinden ob eine Sprache wie Automaduino bessere Ergebnisse bei der Verwendung in der Lehre erzielt im Vergleich zu verzahnten Blocksprachen wie blockly. Du kannst den Online Editor verwenden um Code zu erzeugen ohne eine Zeile selbst zu schreiben! Aktuell werden 15 Komponenten unterstützt.

Installation

Aktuell ist Automaduino im Online Editor verfügbar.

Automaduino ist bald verfügbar Windows Desktop hier.

Wie geht es weiter?

Wenn du mehr über den theoretischen Hintergrund wissen möchtest schau die die Konzepte an oder bau dein erstes Projekt unter Erste Schritte.

Wenn du einen Einstieg in die Benutzung des Arduinos brauchst schau dir die Workshop Unterlagen an. Dort findest du auch mehr Arbeitsblätter mit Projekten.

1 - Erste Schritte

Alles was du wissen musst um mit Automaduino loszulegen!

Du möchtest mit Automaduino programmieren? Super! Hier wird die Benutzeroberfläche des Editors erklärt und wie du Code generieren kannst.

Überblick

Automaduino Editor Übersicht

Der Editor besteht aus folgenden Teilen:

Komponentenmenü
In diesem Menü findest du alle Komponenten, die du benutzen kannst. Mehr Informationen über die einzelnen Komponenten findest du auf der Komponentenseite.
Start Punkt
Der Startpunkt für dein Programm. Du musst ihn mit einem Zustand verbinden damit dein Code funktioniert.
Zustand
Ein Zustand besteht aus einer Komponente und einer Funktion. Der Zustand führt die Funktion auf dem Arduino aus. Finde mehr über Zustände heraus indem du hier klickst.
Übergang
Ein Übergang verbindet zwei Zustände und bestimmt wie und wann der nächste Block ausgeführt wird. Es gibt mehrere Möglichkeiten für die Übergänge. Finde mehr über Übergänge heraus indem du hier klickst.
Pin Zuweisung
Dieser Button öffnet die Pinzuweisung. Das ist notwendig damit der Arduino weiß an welchem Pin welche Komponente angeschlossen ist. Wenn ein Zustand keinen Pin zugewiesen hat wird eine Warnung angezeigt.
Code
Hier siehst du den erzeugten Code! Der Code wird immer generiert wenn du einen neuen Zustand hinzufügst oder zwei Zustände verbindest. Du kannst den Code hier auch als Texteditor verwenden.
Code Stil
Der Code Stil ermöglicht es dir verschiedene Stile für den generierten Code auszuwählen. Dieses Feature ist für erfahrene Programmierer. Alle Code Stile werden hier erklärt.

Pin Zuweisung

In diesem Dialog kannst du Pins für die angeschlossenen Komponenten zuweisen.

Beispiel Pinzuweisung

Füge zuerst eine neue Komponente hinzu, dann wähle einen Pin aus und welche Komponente angeschlossen werden soll. Sobald du das gemacht hast kannst du von unten einen Zustand zur Komponente ziehen.

Sobald du fertig bist klicke auf den Absenden Button.

Tipp: Benenne deine Zustände um damit du genau weißt was du zuweist!

Code kopieren.

Um den Code zu benutzen musst du ihn kipieren. Du kannst allen Code von Hand kopieren oder den Shortcut im Editor verwenden.

Shortcut im Editor zum Kopieren

Wenn der Editor zu ist kannst du stattdessen den Button hier verwenden. Außerdem gibt es hier einen Shortcut für die Pinzuweisung.

Shortcut im geschlossenen Editor zum Kopieren

Arduino IDE

Um einen Sketch hochzuladen musst du die Arduino IDE verwenden.

Nachdem du die Software erfolgreich installiert hast, öffne die IDE und wähle dein Board aus. Das ist normalerweise “Arduino Uno”.

Board Auswahl Menü

Als nächstes verbinde dein Board per USB mit deinem Computer. Wähle dein Board in der Port Auswahl. Der richtige Port hat in Klammern den Namen des Board daneben.

Port Auswahl Menü

Jetzt kannst du den Code aus dem Automaduino Editor kopieren und ihn in der IDE einfügen. Um den Code auf den Arduino zu laden drücke auf den Hochladen Button wenn du das Board per USB verbunden hast. Jetzt ist dein Programm auf dem Arduino!

Hochladen Button

Um ein ganzes Beispiel zu sehen schau dir die Blink Seite an!

1.1 - Blink Beispiel

In diesem Beispiel wird erklärt wie du den Code für das Blinkbeispiel generierst!

Das Blink Programm ist das Hallo Welt Programm für den Arduino. Wir verwenden eine einzelne LED und schalten sie an und wieder aus mit einer kleinen Verzögerung. Als Ergebnis wird die LED blinken, daher auch der name. Wenn dieses Programm läuft haben wir bewiesen, dass der Arduino korrekt angeschlossen ist und funktioniert.

Steckplan

Besorg dir eine LED und einen Widerstand (z.B. 100 Ohm). Verbinde die LED mit Pin 7 und verwende ein Steckbrett um den GND Pin mit dem Widerstand zu verbinden.

Unten siehst du einen Steckplan mit einer Beispielverbindung.

Steckplan für das Blink Beispiel

Sketch

Jetzt überlegen wir uns wie unser Automat aussehen soll. Wir benutzen Papier und Stift und skizzieren was passiert. Hier siehst du eine Skizze.

Blink Skizze Beispiel

Zustände hinzufügen

Jetzt setzen wir unsere Skizze in Automaduino um. Dazu fügen wir zwei Zustände hinzu: Eine eingeschaltete und eine ausgeschaltete LED.

Blink Zustände

Übergänge hinzufügen

Jetzt verbinden wir diese Zustände. Wir verbinden der Startpunkt mit dem AN Zustand. Danach warten wir kurz, dargestellt durch einen nach Übergang, und gehen zum AUS Zustand über. Nach einer weiteren kurzen Wartezeit wechseln wir wieder zum AN Zustand.

Blink Übergänge

Pins zuweisen

Um unseren Code lauffähig zu machen müssen wir noch die Pins zuweisen. Dazu öffnen wir den Dialog und fügen eine LED Komponente an Pin 7 hinzu. Wir weisen beide Zustände dieser Komponente zu und klicken auf Absenden.

Pin Zuweisung Beispiel

Hochladen

Jetzt kopieren wir den Code in die Arduino IDE und laden ihn hoch wie beschrieben unter Erste Schritte. Wenn du die LED richtig angeschlossen hast sollte sie jetzt blinken. Du hast erfolgreich deinen Arduino programmiert!

Vollständiges Beispiel

2 - Konzepte

Was sind eigentlich endliche Automaten und wie hängen sie mit Automaduino zusammen?

Die folgenden Seiten erklären die Konzepte auf denen Automaduino basiert. Du musst sie nicht gelesen haben um die Software zu benutzen, aber sie helfen bei dem Verständnis von Automaten.

2.1 - Automaten

Endliche Automaten veranschaulichen ein Verhalten. Die Darstellung in Automaduino basiert auf ihnen.

Endliche Automaten

Ein endlicher Automat ist ein Berechnungsmodel. Die dargestellte Maschine befindet sich immer in einem Zustand. Je nach der Eingabe führt sie eine bestimmte Reihenfolge an Aktionen aus. Die einzelnen Zustände sind verbunden mit Übergängen. Der unten dargestellte Automat ist ein Beispiel für einen Getränkeautomat.

Beispiel von Highbrow CC-by-SA.

Bedeutung in der Informatik

Endliche Automaten spielen eine wichtige Rolle in der Informatik. Sie werden dazu verwendet um Sprachen zu definieren. Beispielsweise Parser werden häufig als Automatne dargestellt.

Sie werden außerdem verwendet in UML Statecharts um Softwareabhängigkeiten zu modelieren. Das ist die bekannteste Anwendung.

Verwendung in Automaduino

Die grafische Darstellung in Automaduino basiert auf endlichen Automaten. Wir skizzieren unseren Automaten zuerst auf Papier und übertragen anschließend sein Verhalten in die visuelle Programmiersprache.

Beispiel für eine Skizze basierend auf einem Automaten

2.2 - Zustände

Ein Zustand beinhaltet den Arduino Code für eine Komponente. Es gibt mehrere Funktionen pro Komponente.

Zustände sind ein wichtiger Teil der endlichen Automaten. In Automaduino werden Zustände verwendet um die dargestellte Funktion auf dem Arduino auszuführen.

Überblick

Überblick Zustand

Komponente
Die angesprochene Komponente.
Link
Dieser Button öffnet die Dokumentation. Hier findet man weitere Informationen über den Code, Steckpläne und vieles mehr.
Name
Dieses Feld kann verwendet werden um einem Zustand einen spezifischen Namen zu geben. Der Name wird verwendet in der Funktionsgeneration und in der Pinzuweisung.
Funktion
Die von diesem Zustand ausgeführte Funktion. Es kann mehrere Funktionen pro Komponente geben.Die Funktionen sind untereinander im Auswahlmenü aufgeführt.
Pin
Wenn ein Pin zugewiesen wurde wird die Nummer hier angezeigt. Falls dies nicht der Fall ist erscheint ein Warnhinweis im Code Editor.

Hervorheben

Beispiel hervorgehobener Code

Automaduino bietet die Möglichkeit den von einem Zustand generierten Code hervorzuheben. Klicke mit rechts auf einen Zustand und wähle aus welchen Teil du hervorheben möchtest. Das funktioniert auch für Übergänge.

2.3 - Übergänge

Übergänge beschreiben wie wir von einem Zustand zum nächsten kommen. Hierfür gibt es verschiedene Möglichkeiten.

Überblick

Beispiel für einen Übergang im Blink Programm.

Übergänge verbinden Zustände. Nachdem der Code aus einem Zustand ausgeführt wurde beschreibt der Übergang welcher Zustand als nächstes aufgeführt wird. D dann und nach Übergang steht allen Komponenten zur Verfügung, während der falls, oder und wenn Übergang nur Benutzereingabe Komponenten und Sensoren zur Verfügung steht, da diese von der von der Komponente erzeugten Eingabe abhängen.

Übergänge

Dann

dann Beispiel

Ein dann Übergang führt sofort im Anschluss den nächsten Zustand aus.

Nach

nach Beispiel

Ein nach Übergang pausiert für eine bestimmte Anzahl an Millisekunden und führt dann den nächsten Zustand aus.

Falls

falls Beispiel

Ein falls Übergang geht erst zum nächsten Zustand über wenn eine bestimmte Bedingung erfüllt wurde, sonst führt er weiterhin den aktuellen Zustand aus. Das ist sinnvoll für Benutzereingaben.

Oder

oder Beispiel

Ein oder Übgergang geht erst zum nächsten Zustand über wenn eine bestimmte Bedingung erfüllt wurde, sonst führt er einen anderen Zustand aus. Das ist sinnvoll für Sensoren.

Wenn

wenn Beispiel

Ein wenn Übergang führt verschiedene Zustände aus, abhängig von der Eingabe. Es wird immer nur die erste zutreffende Bedingung ausgeführt. Das macht Sinn für analoge Sensoren, da wir hier unterschiedliche Bereiche für die Eingabe definieren können.

2.4 - Code Stil

Verschiedene Code Stile bieten erfahrnenen Benutzern die Möglichkeit auszuwählen wie der von Automaduino generierte Code aussehen soll.

Der Code Stil ermgöglicht es dir verschiedenen Code zu generieren. Das ist für Anfänger weniger interessant, aber erfahrene Programmierer können so beispielsweise kürzeren Code erstellen. Der voreingestellte Stil ist der Funktionsmodus.

Funktionsmodus

Die Standardeinstellung für den Editor. Dieser Code ist einfach zu lesen und zu bearbeiten. Er ist allerdings länger als im Kurzmodus.

  • Alle Zustände erzeugen eine Funktion basierend auf ihrem Namen.
  • Um von einem Zustand zum nächsten zu gehen wird die Funktion des nächsten Zustands aufgerufen.

Kurzmodus

Der Kurzmodus erzeugt den kürzesten Code aller Stile. Hier wird aller Code innerhalb der Loop Funktion erzeugt. Dieser Stil wird häufig in Tutorials verwendet. Für komplexere Projekte ist dieser Code aber schwerer zu verstehen.

  • Alle Zustände erzeugen nur den notwendigen Arduino Code in der Loop Funktion.
  • Es gibt keine explizite Übergänge - Der Code für den nachfolgenden Zustand folgt direkt.

Schaltermodus

Der Schaltermodus kommt einem endlichen Automaten am nächsten. Hier verwenden wir eine Schaltermaschine in der Loop Funktion und setzen eine Zustandsvariable in den Funktionen für die Übergänge. Nach Beendigung der Funktion übernimmt die Loop wieder, wodurch der nächste Zustand ausgeführt wird. Im Vergleich zu den anderen Stilen ist dieser gut zu warten, aber auch schwieriger zu verstehen als der Funktionsmodus.

  • Alle Zustände erzeugen eine Funktion basierend auf ihrem Namen.
  • Eine Zustandsvariable ist hinzugefügt die den aktuellen Zustand darstellt.
  • Um von einem Zustand zum nächsten zu kommen wird die Zustandsvariable geändert.
  • Nach dem Ausführen einer Funktion übernimmt die Loop Funktion wieder und leitet zum nächsten Zustand über.

Hier ist der Code für die verschiedenen Stile anhand des Blink Beispiel.

//Imports:

//Pins:
int pin_0_led = 7;

void setup() { 
pinMode(pin_0_led, OUTPUT);
}

void loop() {
function_0_led();
}

void function_0_led(){
digitalWrite(pin_0_led, HIGH);
delay(1000);
function_1_led();
}

void function_1_led(){
digitalWrite(pin_0_led, LOW);
delay(1000);
function_0_led();
}

  
//Imports:

//Pins:
int pin_0_led = 7;

void setup() { 
pinMode(pin_0_led, OUTPUT);
}

void loop() {
while(true){
digitalWrite(pin_0_led, HIGH);
delay(1000);
digitalWrite(pin_0_led, LOW);
}
}

  
//Imports:

//Pins:
int pin_0_led = 7;

int state = 0;
void setup() { 
pinMode(pin_0_led, OUTPUT);
}

void loop() {
switch(state){
case 0:
function_0_led();
break;
case 1:
function_1_led();
break;
default:
break;
}
}

void function_0_led(){
digitalWrite(pin_0_led, HIGH);
delay(1000);
state = 1;
}

void function_1_led(){
digitalWrite(pin_0_led, LOW);
delay(1000);
state = 0;
}

  

3 - Komponenten

Welche Komponenten werden aktuell unterstützt?

Die folgenden Seiten beschreiben die verfügbaren Komponenten in Automaduino. Sie sind wie im Editor gruppiert: Ausgabe, Benutzereingabe und Sensoren.

3.1 - Ausgabe

Ausgabe Komponenten wie LEDs oder Summer erhalten keine Eingabe, sondern beeinflussen stattdessen ihre Umgebung.

3.1.1 - LED

Eine LED, überlicherweise verwendet mit einem Widerstand, leuchtet.
Information

Typ : Ausgabe

Modus : Digital

Pins : 0-14

Tutorial : funduino

Anmerkung: Benutz die LED mit einem Widerstand!

Bild von funduino, CC-BY-SA.

Steckplan

Erstellt mit Fritzing.

Funktionen

An

An Zustand

Schaltet die Komponente an.

void function_0_led(){
digitalWrite(pin_0_led, HIGH);
function_0_led();
}
  
digitalWrite(pin_0_led, HIGH);
  
void function_0_led(){
digitalWrite(pin_0_led, HIGH);
state = 1;
}
  

Aus

Aus Zustand

Schaltet die Komponente aus.

void function_0_led(){
digitalWrite(pin_0_led, LOW);
function_0_led();
}
  
digitalWrite(pin_0_led, LOW);
  
void function_0_led(){
digitalWrite(pin_0_led, LOW);
state = 1;
}
  

3.1.2 - Summer

Ein Summer macht ein Geräusch.
Information

Typ : Ausgabe

Modus : Digital

Pins : 0-14

Tutorial : funduino

Anmerkung: Nutz den Befehl tone(buzzer, 1000) um eine Tonhöhe festzulegen.

Bild von funduino, CC-BY-SA.

Steckplan

Erstellt mit Fritzing.

Funktionen

An

An Zustand

Schaltet die Komponente an.

void function_0_buzzer(){
digitalWrite(pin_0_buzzer, HIGH);
function_0_buzzer();
}
  
digitalWrite(pin_0_buzzer, HIGH);
  
void function_0_buzzer(){
digitalWrite(pin_0_buzzer, HIGH);
state = 1;
}
  

Aus

Aus Zustand

Schaltet die Komponente aus.

void function_0_buzzer(){
digitalWrite(pin_0_buzzer, LOW);
function_0_buzzer();
}
  
digitalWrite(pin_0_buzzer, LOW);
  
void function_0_buzzer(){
digitalWrite(pin_0_buzzer, LOW);
state = 1;
}
  

3.1.3 - Vibrationsmotor

Ein Vibrationsmotor vibriert. Er ist beispielsweise in einem Smartphone verbaut.
Information

Typ : Ausgabe

Modus : Digital

Pins : 0-14

Tutorial : elektro.turanis.de

Bild von funduino, CC-BY-SA.

Steckplan

Erstellt mit Fritzing.

Funktionen

An

An Zustand

Schaltet die Komponente an.

void function_0_vibrationMotor(){
digitalWrite(pin_0_vibrationMotor, HIGH);
function_0_vibrationMotor();
}
  
digitalWrite(pin_0_vibrationMotor, HIGH);
  
void function_0_vibrationMotor(){
digitalWrite(pin_0_vibrationMotor, HIGH);
state = 1;
}
  

Aus

Aus Zustand

Schaltet die Komponente aus.

void function_0_vibrationMotor(){
digitalWrite(pin_0_vibrationMotor, LOW);
function_0_vibrationMotor();
}
  
digitalWrite(pin_0_vibrationMotor, LOW);
  
void function_0_vibrationMotor(){
digitalWrite(pin_0_vibrationMotor, LOW);
state = 1;
}
  

3.1.4 - Relais

Ein Relais wird verwendet um eine weitere elektrische Komponente ein- und auszuschalten.
Information

Typ : Ausgabe

Modus : Digital

Pins : 0-14

Tutorial : funduino

Anmerkung: Bei der Verwendung von elektrischen Bauteilen ist Vorsicht geboten!

Bild von funduino, CC-BY-SA.

Steckplan

Erstellt mit Fritzing.

Funktionen

An

An Zustand

Schaltet die Komponente an.

void function_0_relay(){
digitalWrite(pin_0_relay, HIGH);
function_0_relay();
}
  
digitalWrite(pin_0_relay, HIGH);
  
void function_0_relay(){
digitalWrite(pin_0_relay, HIGH);
state = 1;
}
  

Aus

Aus Zustand

Schaltet die Komponente aus

void function_0_relay(){
digitalWrite(pin_0_relay, LOW);
function_0_relay();
}
  
digitalWrite(pin_0_relay, LOW);
  
void function_0_relay(){
digitalWrite(pin_0_relay, LOW);
state = 1;
}
  

3.1.5 - Servo

Ein Servo ist ein kleiner Motor, der gedreht werden kann.
Information

Typ : Ausgabe

Modus : Servo Bibilothek

Pins : 0-14

Tutorial : funduino

Bibliothek: Du musst die Servo Bibliothek importieren um diese Komponente zu verwenden!

Anmerkung: Verwende die Zustände immer mit einer kurzen Verzögerung, da die Drehung Zeit braucht.

Bild von funduino, CC-BY-SA.

Steckplan

Erstellt mit Fritzing.

Funktionen

Grad

Dreht den Servo auf 0 Grad

Dreht den Servo auf 180 Grad

Diese Funktion dreht den Servo auf die angegebene Gradzahl.

void function_1_servo(){
servo_0.write(0);
function_1_servo();
}
  
servo_0.write(0);
  
void function_0_servo(){
servo_0.write(0);
state = 1;
}
  

3.2 - Sensoren

Sensoren messen verschiedene Werte aus ihrer Umgebung.

3.2.1 - Bewegungssensor

Ein Bewegungssensor reagiert auf Bewegungen in seiner Nähe.
Information

Typ : Sensor

Modus : Digital

Pins : 0-14

Ausgabewerte : 0-1

Tutorial : funduino

Bild von funduino, CC-BY-SA.

Steckplan

Erstellt mit Fritzing.

Funktionen

Digital Messen

Digital Messen Zustand

Misst einen Wert digital.

void function_0_motionSensor(){
int value = digitalRead(pin_0_motionSensor);
function_0_motionSensor();
}
  
int value = digitalRead(pin_0_motionSensor);
  
void function_0_motionSensor(){
int value = digitalRead(pin_0_motionSensor);
state = 1;
}
  

3.2.2 - Temperatursensor

Ein Temperatursensor misst die aktuelle Lufttemperatur.
Information

Typ : Sensor

Modus : Analog

Pins : 0-7 (analog)

Ausgabewerte : Wert in Celsius (0-40)

Tutorial : funduino

Anmerkung: Der Messwert muss noch in Celsius umgerechnet werden! Siehe Beispielcode unten.

Bild von funduino, CC-BY-SA.

Steckplan

Erstellt mit Fritzing.

Funktionen

Analog Messen

Analog Messen Zustand

Misst einen Wert analog und gibt ihn in Celsius aus.

void function_0_temperatureSensor(){
int value = map(analogRead(pin_0_temperatureSensor), 0, 410, -50, 150);
function_0_temperatureSensor();
}
  
int value = map(analogRead(pin_1_temperatureSensor), 0, 410, -50, 150);
  
void function_0_temperatureSensor(){
int value = map(analogRead(pin_1_temperatureSensor), 0, 410, -50, 150);
state = 1;
}
  

3.2.3 - Nässesensor

Ein Nässesensor misst die Feuchtigkeit in Erde oder in einem Glas.
Information

Typ : Sensor

Modus : Analog

Pins : 0-7 (analog)

Ausgabewerte : 0-1023

Tutorial : funduino

Anmerkung: Nur die unteren Teile des Sensors dürfen nass werden!

Bild von funduino, CC-BY-SA.

Steckplan

Erstellt mit Fritzing.

Funktionen

Analog Messen

Analog Messen Zustand

Misst einen Wert analog.

void function_0_humiditySensor(){
int value = analogRead(pin_0_humiditySensor);
function_0_humiditySensor();
}
  
int value = analogRead(pin_0_humiditySensor);
  
void function_0_humiditySensor(){
int value = analogRead(pin_0_humiditySensor);
state = 1;
}
  

3.2.4 - Vibrationsensor

Ein Vibrationssensor reagiert auf Vibrationen oder Schütteln.
Information

Typ : Sensor

Modus : Digital

Pins : 0-14

Ausgabewerte : 0-1

Tutorial : funduino

Bild von funduino, CC-BY-SA.

Steckplan

Erstellt mit Fritzing.

Funktionen

Digital Messen

Digital Messen Zustand

Misst einen Wert digital.

void function_0_vibrationSensor(){
int value = digitalRead(pin_0_vibrationSensor);
function_0_vibrationSensor();
}
  
int value = digitalRead(pin_0_vibrationSensor);
  
void function_0_vibrationSensor(){
int value = digitalRead(pin_0_vibrationSensor);
state = 1;
}
  

3.2.5 - Lautstärkesensor

Ein Lautstärkesensor misst Geräusche in seiner Umgebung.
Information

Typ : Sensor

Modus : Analog

Pins : 0-7 (analog)

Ausgabewerte : 0-1023

Tutorial : polluxlabs

Bild von funduino, CC-BY-SA.

Steckplan

Erstellt mit Fritzing.

Funktionen

Analog Messen

Analog Messen Zustand

Misst einen Wert analog.

void function_0_Lautst_rke_sensor(){
int value = analogRead(pin_0_loudnessSensor);
function_0_Lautst_rke_sensor();
}
  
int value = analogRead(pin_0_loudnessSensor);
  
void function_0_Lautst_rke_sensor(){
int value = analogRead(pin_0_loudnessSensor);
state = 1;
}
  

3.2.6 - Ultraschallmesser

Ein Ultraschallmesser sendet eine Ultraschallwelle aus um eine Distanz zu messen.
Information

Typ : Sensor

Modus : Digital

Pins : 0-14

Ausgabewerte : Distanz in cm (2-300)

Tutorial : funduino

Anmerkung: Um diese Komponente zu verwenden musst du beide Zustände nacheinander verwenden!

Anmerkung: Der gemessene Wert muss noch umgewandelt werden! Siehe Code unten.

Bild von funduino, CC-BY-SA.

Steckplan

Erstellt mit Fritzing.

Funktionen

Welle senden

Welle senden Zustand

Sendet eine Ultraschallwelle aus.

void function_0_Ultraschall_messer(){
digitalWrite(pin_2_ultrasonicRanger, LOW);
delay(5);
digitalWrite(pin_2_ultrasonicRanger, HIGH);
delay(10);
digitalWrite(pin_2_ultrasonicRanger, LOW);
function_1_Ultraschall_messer();
}
  
digitalWrite(pin_2_ultrasonicRanger, LOW);
delay(5);
digitalWrite(pin_2_ultrasonicRanger, HIGH);
delay(10);
digitalWrite(pin_2_ultrasonicRanger, LOW);
  
void function_0_Ultraschall_messer(){
digitalWrite(pin_2_ultrasonicRanger, LOW);
delay(5);
digitalWrite(pin_2_ultrasonicRanger, HIGH);
delay(10);
digitalWrite(pin_2_ultrasonicRanger, LOW);
state = 1;
}
  

Welle lesen

Welle lesen Zustand

Liest eine Ultraschallwelle aus.

void function_1_Ultraschall_messer(){
long pulseValueFromWave = pulseIn(pin_2_ultrasonicRanger, HIGH);
long value = (pulseValueFromWave/2) * 0.03432;
function_1_Ultraschall_messer();
}
  
long pulseValueFromWave = pulseIn(pin_2_ultrasonicRanger, HIGH);
long value = (pulseValueFromWave/2) * 0.03432;
  
void function_1_Ultraschall_messer(){
long pulseValueFromWave = pulseIn(pin_2_ultrasonicRanger, HIGH);
long value = (pulseValueFromWave/2) * 0.03432;
state = 1; 
}
  

3.3 - Benutzereingabe

Komponenten aus der Kategorie Benutzereingabe warten darauf, dass ein Nutzer sie verwendet.

3.3.1 - Taster

Ein Taster reagiert darauf wenn ein Nutzer ihn drückt.
Information

Typ : Nutzereingabe

Modus : Digital

Pins : 0-14

Ausgabewerte : 0-1

Tutorial : funduino

Bild von funduino, CC-BY-SA.

Steckplan

Erstellt mit Fritzing.

Funktionen

Erwarte Eingabe

Erwarte Eingabe Zustand

Erwartet einen digitalen Wert.

void function_0_button(){
int value = digitalRead(pin_0_button);
delay(200);
function_0_button();
}
  
int value = digitalRead(pin_0_button);
delay(200);
  
void function_0_button(){
int value = digitalRead(pin_0_button);
delay(200);
state = 1;
}
  

3.3.2 - Schalter

Ein Schalter ähnelt einem Taster, behält seinen Zustand aber bei.
Information

Typ : Nutzereingabe

Modus : Digital

Pins : 0-14

Ausgabewerte : 0-1

Tutorial : funduino

Anmerkung: Ein Schalter funktioniert wie ein Taster, behält seinen Zustand aber bei.

Bild von funduino, CC-BY-SA.

Steckplan

Erstellt mit Fritzing.

Funktionen

Erwarte Eingabe

Erwarte Eingabe Zustand

Erwartet einen digitalen Wert.

void function_0_Schalter(){
int value = digitalRead(pin_0_switch);
function_0_Schalter();
}
  
int value = digitalRead(pin_0_switch);
  
void function_0_Schalter(){
int value = digitalRead(pin_0_switch);
state = 1;
}
  

3.3.3 - Schieberegler

Der Wert eines Schiebereglers basiert auf seiner Position.
Information

Typ : Nutzereingabe

Modus : Analog

Pins : 0-7 (analog)

Ausgabewerte : 0-1023

Tutorial : funduino

Bild von funduino, CC-BY-SA.

Steckplan

Erstellt mit Fritzing.

Funktionen

Erwarte Eingabe

Erwarte Eingabe Zustand

Erwartet einen analogen Wert.

void function_0_Schieberegler(){
int value = analogRead(pin_0_slider);
function_0_Schieberegler();
}
  
int value = analogRead(pin_0_slider);
  
void function_0_Schieberegler(){
int value = analogRead(pin_0_slider);
state = 1;
}
  

3.3.4 - Potentiometer

A potentiometer returns a dynamic value based on the rotation.
Information

Typ : Nutzereingabe

Modus : Analog

Pins : 0-7 (analog)

Ausgabewerte : 0-1023

Tutorial : funduino

Bild von funduino, CC-BY-SA.

Steckplan

Erstellt mit Fritzing.

Funktionen

Erwarte Eingabe

Erwarte Eingabe Zustand

Erwartet einen analogen Wert.

void function_0_Potentiometer(){
int value = analogRead(pin_0_potentiometer);
function_0_Potentiometer();
}
  
int value = analogRead(pin_0_potentiometer);
  
void function_0_Potentiometer(){
int value = analogRead(pin_0_potentiometer);
state = 1;
}
  

4 - Workshop

Hier befinden sich die Materialien für den Workshop.

Autmaduino wurd in einem dreitägigen Workshop im April 2022 getestet. Hierfür wurden Präsentationen, Merkblätte rund Arbeitsblätter erstellt. Alles Material ist für Beginner ausgelegt. Tag 1 beschäftigt sich mit den wichtigsten Arduino Funktionen. Tag 2 beschäftigt sich mit Benutzereingaben und Sensoren und erklärt die komplexeren Übergänge. Tag 3 dreht sich um den Übergang von der visuellen zur textbasierten Programmiersprache. Im Quiz kannst du testen was du gelernt hast!

4.1 - Tag 1

Tag 1 beginnt mit einer Einführung für den Arduino. Wird verwenden nur Ausgabe Komponenten wird LEDs und Summer. Zudem wird die Verwendung von Automaten vorgestellt. Die Merkblätter erklären wie die Arduino IDE zum Hochladen von Sketchen verwendet wird.

Präsentation

Merkblätter

Arbeitsblätter

4.2 - Tag 2

Tag 2 beschäftigt sich mit Eingabe Komponenten wie Taster und Sensoren. Die Schüler lernen Übergänge und Konzepte wie if-else kennen.

Präsentation

Merkblätter

Arbeitsblätter

4.3 - Tag 3

Der letzte Tag dreht sich um den Übergang zum textbasierten Programmieren. Wir schauen uns den Arduino Code an und versuchen ihn selbst zu schreiben. Wir schauen uns außerdem Tutorials für weitere Komponenten an.

Präsentation

Merkblätter

Arbeitsblätter

4.4 - Quiz

Teste dein Wissen über Arduino und das Programmieren mit Automaduino mit diesem Quiz!

Dieses Quiz sollte erst ausgefüllt werden nachdem das Workshopmaterial bearbeitet wurde. Kannst du die 10 Fragen ohne die Merkblätter beantworten?

Hier geht es zum Quiz.