Arduino

1. Allgemeines

Arduino ist der Markenname für ein quelloffenes Entwicklerboard mit ebenfalls quelloffener Entwicklungsumgebung. Diese Mikrocontrollerboards ermöglichen einen leichten Einstieg in die Themen Elektronik und Programmierung. Die Möglichkeiten der Anwendung sind vielfältig. Vom Modellbau über Messwert Aufnahme bis hin zu Kunstprojekten kann fast alles mit einem Arduino umgesetzt werden. Hier zeigen wir euch einige Projekte zum nachmachen.

Schaut auch gerne bei der offiziellen Website von Arduino vorbei.

2. Was benötige ich um anzufangen?

  • Arduino oder Alternative
  • Breadboard/ Steckplatine
  • Bauteile nach Bedarf wie bspw. LEDs, Widerstände, Motoren oder Sensoren
  • Computer oder Laptop mit der Software Arduino IDE (gibt es kostenlos hier)

3. Welche Bauteile gibt es?

Die Auswahl an zusätzlichen Bauteilen ist riesig. Wir wollen dir hier einige vorstellen. In den Beispielen wirst du weitere kennenlernen. Wir unterscheiden grob zwischen Aktoren und Sensoren. Aktoren sind bspw. Motoren oder LEDs, sie führen eine Aktion aus (Bewegung, Licht). Sensoren hingegen fühlen und nehmen Informationen auf. Das könnte beispielsweise ein Taster oder ein Temperatursensor sein.

3.1 Aktoren

Motor
LED
LCD Modul

3.2. Sensoren

Taster
Temperatursensor
Neigungssensor
Feuchtigkeitssensor
Ultraschallsensor

3.3. weitere Bauteile

Widerstände
Kabel
IC´s

4. Arduino IDE

Die Software zum Programmieren könnt ihr euch auf der Website von Arduino kostenfrei herunterladen. Seit einer Weile ist es auch möglich mit einem Account direkt online ohne Installation im Browser zu programmieren. Die Programmiersprache ist ähnlich zu C bzw. C++.
Es ist ebenfalls möglich den Arduino über ein Plugin in Visual Studio zu programmieren. Diese Möglichkeit bietet viele weitere Vorteile.

5. Workshops

Arduino Workshop Teil 1

Bauteile

· Arduino Uno oder Alternative
· Breadboard/ Steckplatine
· 2 LEDs
· 2 Widerstände (…Ohm)
· 1 Widerstand (…Ohm)
· 1 Taster
· 1 Piezoelement

// the setup function runs once when you press reset or power the board
void setup() {
  pinMode(3, OUTPUT); //LED 1
  pinMode(4, OUTPUT); //LED 2
  pinMode (5, OUTPUT); //Piezo Element
  pinMode(2, INPUT); // Taster
}

// the loop function runs over and over again forever
void loop() {
  if(digitalRead (2)==HIGH){ //Abfrage: wenn Taster aktiviert ist...
  digitalWrite(3, HIGH);   // Schalte LED 1 an
  digitalWrite(4,LOW);    // Schalte LED 2 aus
  tone (5,4000,100);      // Spiele Ton ab (Pinnummer, Frequenz, Dauer)
  }else {                  // ...und was wenn der Taster nicht aktiviert ist?          
  digitalWrite(3, LOW);// Schalte die LED 1 aus
  digitalWrite(4,LOW);     //Schalte LED 2 aus
  delay(1000); // warte eine Sekunde
  digitalWrite(4, HIGH);    //schalte LED 2 an
  delay(1000);  //warte eine Sekunde
}
}

Arduino Workshop Teil 2

Code Temperatursensor

const int sensorPin=A3;

const float BasisTemp=28.0; 

void setup() {
  // put your setup code here, to run once:

Serial.begin (9600); 

}

void loop() {
  // put your main code here, to run repeatedly:
int SensorVal=analogRead(sensorPin);
Serial.print(SensorVal);
Serial.println("");

float Voltage=(SensorVal/1024.0)*5.0;

Serial.print(Voltage);
Serial.println("");

float temperature= (Voltage-0.5)*100; 
Serial.print(temperature);
Serial.println("");

delay(1000);
}

Code Servo

#include <Servo.h>

Servo myservo;

void setup() {
  // put your setup code here, to run once:
myservo.attach(13);
}

void loop() {
  // put your main code here, to run repeatedly:
myservo.write(0);
delay(2000);
myservo.write(90);
delay (2000);
myservo.write(180);
delay(2000);

}

Code für das gesamte Projekt

const int sensorPin= A3;          //Konstante definieren in der der Sensor seinen Ausgabewert speichert, es ist eine Ganzzahl
const float BasisTemp= 28.0;      //Konstante definieren für die Basistemperatur, dies ist eine Fließkommazahl

#include <Servo.h>
Servo myServo;

void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);             //Serielle Verbindung wird geöffnet, Verbindung von Arduino zu Computer, 9600 ist die Geschwindigkeit der Datenübertragung, 9600 Bits pro SEkunde
pinMode(12, OUTPUT);            // grüne LED
pinMode (11, OUTPUT);           //rote LED
pinMode (8, OUTPUT);            //Piezo
pinMode (2, INPUT);

myServo.attach (13);

}

void loop() {
  // put your main code here, to run repeatedly:
int SensorVal= analogRead(sensorPin);     //lokale Variable um den Wert zu speichern, wir geben unseren definierten Pin an, Ergebnis ist ein Wert zwischen 0 und 1023

Serial.print("Sensor Value:  ");        // Übergabe eines Textes an den Seriellen Monitor
Serial.print(SensorVal);                // Übergabe einer Variable an den Seriellen Monitor
Serial.println("");                     // neue ZEile

//In Spannung umrechnen
//Werte von 0-1023 möglich und Spannung von 0-5V wird abgebildet
//(Wert durch 1024)*5

float Voltage=(SensorVal/1024.0)*5.0;

Serial.print(", Volts: ");
Serial.print(Voltage);
Serial.println("");

Serial.print(" degrees C: ");
float temperature= (Voltage- 0.5)*100;
Serial.print(temperature);
Serial.println("");
delay(2000);
if(digitalRead (2)==HIGH){
  digitalWrite(12,HIGH);
  delay (1500);
  digitalWrite (12, LOW);
}
else if(temperature<BasisTemp){
  digitalWrite(11, HIGH);
}
else if (temperature>=BasisTemp && temperature <BasisTemp+5){
tone(8,4000,100);
digitalWrite(11,LOW);
}
else if (temperature >=BasisTemp+5){
  digitalWrite(11,LOW);
  myServo.write(90);
  delay (2000);
  myServo.write(180);
  }
}

Kommentar abgeben: