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 Deko 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.
Für den Einstieg empfehlen wir euch natürlich unseren Arduino Basic Workshop den ihr hier findet und dieses kurze Video von Make your School.
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.
Motor
LED
LCD Modul
Taster
Temperatursensor
Neigungssensor
Feuchtigkeitssensor
Ultraschallsensor
Widerstand
Kabel
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++. Sie
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 } }
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); } }