+ All Categories
Home > Documents > Arduino 1/10 - teckids.org · Arduino 2/10 Zweites Programm- Wechselblinker In unserem zweiten...

Arduino 1/10 - teckids.org · Arduino 2/10 Zweites Programm- Wechselblinker In unserem zweiten...

Date post: 05-Jun-2018
Category:
Upload: phamminh
View: 219 times
Download: 0 times
Share this document with a friend
10
Arduino 1/10 Das erste Programm: LED-Blinklicht In diesem Projekt geht es um eine blinkende LED. Dazu benötigen wir: Arduino Uno LED, einfarbig — mit zwei Anschlussen Widerstand zur Strombegrenzung Steckbrett (Breadboard) vier Leitungen In der Grafik siehst du den Aufbau der Schaltung auf dem Steckbrett. Baue ihn genau nach. Achte darauf, dass du die LED genau so einsteckst wie in der Grafik. Einzelheiten der Schaltung Arduino Uno: führt Befehle aus und steuert die Pins LED: leuchtet, wenn am Arduino-Pin eine Spannung anliegt Widerstand: begrenzt den Strom, damit die LED nicht durchbrennt Steckbrett:ist zum Einstecken von LEDs, Pieper, Sensoren, usw., aber auch zum Leiten von Strom Leitungen: verbinden die Arduino-Pins mit dem Steckbrett Programm für das Blinklicht void setup() { pinMode(13, OUTPUT); // Pin 13 soll ein Ausgang sein } void loop() // Wird vom Arduino immer wiederholt { digitalWrite(13, HIGH); // Schaltet Pin 13 und damit die LED ein delay(2 0 0 ); // Wartet fuer 2 0 0 Millisekunden digitalWrite(13, LOW); // Schaltet Pin 13 und damit die LED aus delay(2 0 0 ); // Wartet fuer 2 0 0 Millisekunden } © 2014 Lydia Suthe, Daniel Bauer, Matthis Bickel, Klaus Suthe, Robin Woll, Teckids e.V. Lizenziert unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz.
Transcript
Page 1: Arduino 1/10 - teckids.org · Arduino 2/10 Zweites Programm- Wechselblinker In unserem zweiten Programm wollen wir zwei LEDs abwechselnd blinken lassen. Dafür benötigen wir folgende

Arduino 1/10

Das erste Programm: LED-Blinklicht

In diesem Projekt geht es um eine blinkende LED. Dazu

benötigen wir:

• Arduino Uno

• LED, einfarbig — mit zwei Anschlussen

• Widerstand zur Strombegrenzung

• Steckbrett (Breadboard)

• vier Leitungen

In der Grafik siehst du den Aufbau der Schaltung auf dem

Steckbrett. Baue ihn genau nach. Achte darauf, dass du

die LED genau so einsteckst wie in der Grafik.

Einzelheiten der Schaltung

Arduino Uno: führt Befehle aus und steuert die Pins

LED: leuchtet, wenn am Arduino-Pin eine Spannung anliegt

Widerstand: begrenzt den Strom, damit die LED nicht durchbrennt

Steckbrett:ist zum Einstecken von LEDs, Pieper, Sensoren, usw., aber auch zum Leiten von Strom

Leitungen: verbinden die Arduino-Pins mit dem Steckbrett

Programm für das Blinklicht

void setup()

{

pinMode(13, OUTPUT); // Pin 13 soll ein Ausgang sein

}

void loop() // Wird vom Arduino immer wiederholt

{

digitalWrite(13, HIGH); // Schaltet Pin 13 und damit die LED ein

delay(2 00); // Wartet fuer 2 00 Millisekunden

digitalWrite(13, LOW); // Schaltet Pin 13 und damit die LED aus

delay(2 00); // Wartet fuer 2 00 Millisekunden

}

© 2014 Lydia Suthe, Daniel Bauer, Matthis Bickel, Klaus Suthe, Robin Woll, Teckids e.V.

Lizenziert unter einer Creative Commons Namensnennung -

Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz.

Page 2: Arduino 1/10 - teckids.org · Arduino 2/10 Zweites Programm- Wechselblinker In unserem zweiten Programm wollen wir zwei LEDs abwechselnd blinken lassen. Dafür benötigen wir folgende

Arduino 2/10

Zweites Programm- Wechselblinker

In unserem zweiten Programm wollen wir zwei LEDs abwechselnd blinken lassen. Dafür benötigen

wir folgende Bauteile:

• 1 Arduino UNO

• 2 LEDs, einfarbig mit zwei Anschlusspins

• 1 Widerstand

• 1 Breadboard

• 5 Kabel

Bei der Schaltung kann man einen Widerstand für beide LEDs verwenden, wenn man diesen an den

gemeinsammen Minus-Pol anschließt. Die Schaltung wird folgendermaßen aufgebaut:

11

55

10

10

15

15

20

20

25

25

30

30

35

35

AB

CD

EF

GH

IJ

13

12

11

10 9 8 7 6 5 4 3 2

L

5V

A0

ANALOG IN

AR

EF

1

GN

D

TX

RX

RESET

3V

3

A1

A2

A3

A4

A5

VIN

GN

D

GN

D

DIGITAL (PWM= )

ArduinoTM

IOR

EF

ICSP

ICSP2

ON

POWER

01TX

0

RX

0RESET

Das Programm ist von den Befehlen nicht viel schwieriger,

als unser Blinkprogramm.

int led1 = 12;

int led2 = 13;

int pause = 5 00;

void setup(){

pinMode (led1, OUTPUT);

pinMode (led2, OUTPUT);

}

void loop(){

digitalWrite (led1, HIGH);

digitalWrite (led2, LOW);

delay(pause);

digitalWrite (led1, LOW);

digitalWrite (led2, HIGH);

delay(pause);

}

Drittes Programm - Lauflicht

In unserem dritten Programm basteln wir uns ein Lauflicht

mit 5 Leds.

Dafür benötigen wir diesmal folgende Bauteile:

• 5 LEDs (Hole dir diese Vorne ab)

© 2014 Lydia Suthe, Daniel Bauer, Matthis Bickel, Klaus Suthe, Robin Woll, Teckids e.V.

Lizenziert unter einer Creative Commons Namensnennung -

Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz.

Page 3: Arduino 1/10 - teckids.org · Arduino 2/10 Zweites Programm- Wechselblinker In unserem zweiten Programm wollen wir zwei LEDs abwechselnd blinken lassen. Dafür benötigen wir folgende

Arduino 3/10

• 1 Arduino UNO

• 1 Widerstand

• 11 Kabel

• 1 Breadboard

Wieder verwenden wir nur einen Widerstand an dem gemeinsammen Minuspol. Verdrahtet wird wie-

der wie auf der Zeichnung:

11

55

10

10

15

15

20

20

AB

CD

EF

GH

IJ

13

12

11

10 9 8 7 6 5 4 3 2

L

5V

A0

ANALOG IN

AR

EF

GN

D

TX

RX

RESET

3V

3

A1

A2

A3

VIN

GN

D

GN

D

DIGITAL (PWM= )

ArduinoTM

IOR

EF

ICSP2

POWER

RESET

In diesem Programm werden wir mit relativ vielen Varia-

blen arbeiten, lass dich aber nicht davon abschrecken. Die

ganzen Befehle kennst du nämlich schon.

int led1 = 9;

int led2 = 1 0;

int led3 = 11;

int led4 = 12;

int led5 = 13;

int zeit = 2 00;

void setup(){

pinMode (led1, OUTPUT);

pinMode (led2, OUTPUT);

pinMode (led3, OUTPUT);

pinMode (led4, OUTPUT);

pinMode (led5, OUTPUT);

}

void loop(){

digitalWrite (led5, LOW);

digitalWrite (led1, HIGH);

delay (zeit);

digitalWrite (led1, LOW);

digitalWrite (led2, HIGH);

delay (zeit);

digitalWrite (led2, LOW);

digitalWrite (led3, HIGH);

delay (zeit);

digitalWrite (led3, LOW);

digitalWrite (led4, HIGH);

delay (zeit);

digitalWrite (led4, LOW);

digitalWrite (led5, HIGH);

delay (zeit);

}

© 2014 Lydia Suthe, Daniel Bauer, Matthis Bickel, Klaus Suthe, Robin Woll, Teckids e.V.

Lizenziert unter einer Creative Commons Namensnennung -

Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz.

Page 4: Arduino 1/10 - teckids.org · Arduino 2/10 Zweites Programm- Wechselblinker In unserem zweiten Programm wollen wir zwei LEDs abwechselnd blinken lassen. Dafür benötigen wir folgende

Arduino 4/10

Viertes Programm - Taster auslesen

Nun möchten wir auch auf äußere Einflüsse reagieren

können. Um damit ganz einfach anfangen zu können, nut-

zen wir eine einfache LED, um diese bei Tastendruck an-

zuschalten.

Dafür benötigen wir folgendes:

• 1 Arduino UNO

• 1 Taster

• 1 LED

• 1 Widerstand 220Ohm

• 1 Widerstand 1kOhm

• 7 Kabel

• 1 Breadboard

Nun müssen wir das ganze nur noch wie auf der Skizze beschrieben aufbauen:

11

55

10

10

15

15

20

20

25

25

30

30

A A

B B

C C

D D

E E

F F

G G

H H

I I

J J

13

12

11

10 9 8 7 6 5 4 3 2

L

5V

A0

ANALOG IN

AR

EF

1

GN

D

TX

RX

RESET

3V

3

A1

A2

A3

A4

A5

VIN

GN

D

GN

D

DIGITAL (PWM= )

ArduinoTM

IOR

EF

ICSP

ICSP2

ON

POWER

01TX

0

RX

0RESET

Für dieses Projekt benötigen wir zwei oder drei neue Befehle.

Den Ersten benutzen wir um den Zustand des Tasters abzufragen, er heißt digitalRead().

Der zweite Befehl heißt if und ist eine Bedingung. Er wird z.B. eingesetzt, wenn der Button gedrückt

© 2014 Lydia Suthe, Daniel Bauer, Matthis Bickel, Klaus Suthe, Robin Woll, Teckids e.V.

Lizenziert unter einer Creative Commons Namensnennung -

Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz.

Page 5: Arduino 1/10 - teckids.org · Arduino 2/10 Zweites Programm- Wechselblinker In unserem zweiten Programm wollen wir zwei LEDs abwechselnd blinken lassen. Dafür benötigen wir folgende

Arduino 5/10

wird. Wenn diese Bedingung erfüllt ist, wird der dazugehörige Code ausgeführt.

Der letzte und dritte Befehl lautet else und hat sehr viel mit dem zweiten Befehl zu tun. Wenn nämlich

die Bedingung nicht erfüllt wird, wird(wenn vorhanden) das ansonsten also else ausgeführt.

Nun muss nur noch der Code mit den drei neuen Befehlen geschrieben werden:

// LED wird an Pin 8 angeschlossen.

int led = 8;

// Der Taster wird an Pin 7 angeschlossen.

int taster = 7;

// Wird einmalig ausgefuehrt.

void setup()

{

// Pin 8 wird als Ausgang deklariert.

pinMode(led, OUTPUT);

// Pin 7 wird als Eingang deklariert.

pinMode(taster, INPUT);

}

// Endlosschleife

void loop()

{

// Wenn der Taster gedrueckt wird:

if(digitalRead(taster) == HIGH)

{

// Schalte die LED an.

digitalWrite(led, HIGH);

}

// Ansonsten:

else

{

// Schalte die LED aus.

digitalWrite(led, LOW);

}

}

Fünftes Programm - Flip Flop mit einem Taster

Nun möchten wir die LED mit einem Tastendruck dauerhaft ein- und ausschalten. Der Schaltungs-

aufbau ist der Gleiche wie im vierten Projekt. Ein Flip Flop funktioniert folgendermaßen:

Wenn du auf den Taster drückst, geht die LED an.

Wenn du dann loslässt bleibt die LED an.

Durch weiteren Tastendruck kannst du die LED dann wieder ausschalten.

Nur das Programm ist anders als beim vierten Projekt.

© 2014 Lydia Suthe, Daniel Bauer, Matthis Bickel, Klaus Suthe, Robin Woll, Teckids e.V.

Lizenziert unter einer Creative Commons Namensnennung -

Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz.

Page 6: Arduino 1/10 - teckids.org · Arduino 2/10 Zweites Programm- Wechselblinker In unserem zweiten Programm wollen wir zwei LEDs abwechselnd blinken lassen. Dafür benötigen wir folgende

Arduino 6/10

// LED wird an Pin 8 angeschlossen.

int led = 8;

// Taster wird an Pin 7 angeschlossen.

int taster = 7;

// Gibt den Zustand der LED an.

boolean ledstatus = HIGH;

// Wird einmalig ausgefuert.

void setup(){

// Die LED ist ein Ausgang.

pinMode(led, OUTPUT);

// Der Taster ist ein Eingang.

pinMode(taster, INPUT);

}

// Endlosschleife

void loop(){

// Wenn der Taster gedrueckt wird UND die LED aus ist:

if((digitalRead(taster) == HIGH) && (ledstatus == LOW)){

// Schalte die LED an.

digitalWrite(led, HIGH);

// Setze den LED Status auf HIGH.

ledstatus = HIGH;

}

// Wenn der Taster gedrueckt wird UND die LED an ist:

if((digitalRead(taster) == HIGH) && (ledstatus == HIGH)){

// Schalte die LED aus.

digitalWrite(led, LOW);

// Setze den LED Status auf LOW

ledstatus = LOW;

}

}

Sechstes Projekt - Wie weit ist es noch?

Nun möchten wir wissen, wie weit der Abstand vom Arduino zu einem Hinderniss ist. Dafür ver-

wenden wir einen Infrarot-Abstandssensor. Ziel ist es den Abstand zu ermitteln und Daten an den

Comuter zu übertragen.

© 2014 Lydia Suthe, Daniel Bauer, Matthis Bickel, Klaus Suthe, Robin Woll, Teckids e.V.

Lizenziert unter einer Creative Commons Namensnennung -

Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz.

Page 7: Arduino 1/10 - teckids.org · Arduino 2/10 Zweites Programm- Wechselblinker In unserem zweiten Programm wollen wir zwei LEDs abwechselnd blinken lassen. Dafür benötigen wir folgende

Arduino 7/10

Die Verdrahtung ist wie immer in der Abbildung zu sehen.

11

55

10

10

15

15

20

20

25

25

30

30

A A

B B

C C

D D

E E

F F

G G

H H

I I

J J

13

12

11

10 9 8 7 6 5 4 3 2

L

5V

A0

ANALOG IN

AR

EF

1

GN

D

TX

RX

RESET

3V

3

A1

A2

A3

A4

A5

VIN

GN

D

GN

D

DIGITAL (PWM= )

ArduinoTM

IOR

EF

ICSP

ICSP2

ON

POWER

01TX

0

RX

0RESET

//

Der Abstandsensor funktioniert folgendermaßen:

Abhängig vom Abstand liegtam Ausgang des Abstandsensors(Weiß) eine unterschliedlich hohe Span-

nung an. den wir am Aduino mit dem Befehl analogRead() auslesen kann. Die Spannung am ana-

logen Eingangspin wandelt der Arduino in einen Zahlenwert zwischen 0 und 1023 um. Um die ge-

messenen Daten an den Computer zu senden, nutzen wir die Serielle Schnitttstelle, die wir mit dem

Kommando Serial.begin(96 00) eröffnen und der wir mit dem Befehl Serial.println() Daten sen-

den können. Der Code ist diesmal folgender:

// Datenpin wird an Pin 0 angeschlossen.

int sensorpin = 0;

// Die Variable ,wo die Sensordaten gespeichert werden.

int sensordaten;

// Wird einmalig ausgefuehrt.

void setup(){

// Sensorpin ist ein Eingang.

pinMode(sensorpin , INPUT);

// Startet die Serielle Verbindung.

Serial.begin(96 00);

}

// Endlosschleife

void loop(){

// Schreibt die gemessenen Daten in die Variable sensordaten.

sensordaten = analogRead(sensorpin);

// Schickt den Inhalt von sensordaten an den Computer.

Serial.println(sensordaten);

}

© 2014 Lydia Suthe, Daniel Bauer, Matthis Bickel, Klaus Suthe, Robin Woll, Teckids e.V.

Lizenziert unter einer Creative Commons Namensnennung -

Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz.

Page 8: Arduino 1/10 - teckids.org · Arduino 2/10 Zweites Programm- Wechselblinker In unserem zweiten Programm wollen wir zwei LEDs abwechselnd blinken lassen. Dafür benötigen wir folgende

Arduino 8/10

Siebtes Projekt-Bei dir piepts wohl

Sicher kennt ihr doch vom Auto Abstandswarner, die euren Eltern über gepiepse sagen, ob sie gleich

gegen in einen Baum fahren. Dies werden wir nun auch bauen und programmieren. Ihr habt ja schon

gelernt wie man analoge Daten ausließt und Bedingungen verknüpft. Diese Befehle brauchen wir

nun wieder. Also wir brauchen analogRead und if. Der Piepser, der jetzt neu dazu kommt, ist ganz

einfach anzuschließen und anzusteuern. Der Piepser wird genau so angeschlossen und angesteuert

wie eine LED, also ist das längere Beinchen wieder die Kathode(+) und das kürzere die Anode(GND).

11

55

10

10

15

15

20

20

25

25

30

30

35

35

40

40

45

45

50

50

55

55

60

60

AA

BB

CC

DD

EE

FF

GG

HH

II

JJ

13

12

11

1098765432

L

5V

A0

ANALOG IN

AR

EF

1

GN

D

TX

RX

RESET

3V

3

A1

A2

A3

A4

A5

VIN

GN

D

GN

D

DIGITAL (PWM=)

ArduinoTM

IOR

EF

ICSP

ICSP2

ON

POWER

0 1TX

0

RX

0 RESET

Nun müsst ihr nur noch das Programm schreiben, in diesem müsst ihr die Werte des Abstandssensor

auslesen (analogRead) und in einer Bedingung (if) schreiben, dass der Piepser ab einem bestimmten

Wert piepst.

// Den Datenpin des Abstandssensors in eine Variable schreiben

int sensorpin = 0;

// Den Ausgangspin des Piepers in eine Variable schreiben

int piepser = 12;

// Eine Variable fuer die spaeteren Sensordaten anlegen

int sensordaten = 0;

// Wenn dieser Wert ueberschritten wird, geht der Piepser los

int schwellwert = 255;

// Wird einmal ausgefuehrt

void setup(){

// Den Sensor als Eingang definieren

pinMode(sensorpin , INPUT);

// Den Piepser als Ausgang definieren

pinMode(piepser, OUTPUT);

}

// Die Endlosscheife

void loop(){

// Die Daten messen und in die Variable schreiben

sensordaten = analogRead(sensorpin);

// Wenn die Daten groesser als der schwellwert sind,

if (sensordaten >= 255){

© 2014 Lydia Suthe, Daniel Bauer, Matthis Bickel, Klaus Suthe, Robin Woll, Teckids e.V.

Lizenziert unter einer Creative Commons Namensnennung -

Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz.

Page 9: Arduino 1/10 - teckids.org · Arduino 2/10 Zweites Programm- Wechselblinker In unserem zweiten Programm wollen wir zwei LEDs abwechselnd blinken lassen. Dafür benötigen wir folgende

Arduino 9/10

// Schalte den Piepser an

digitalWrite(piepser, HIGH);

}

// Wenn der Wert aber kleiner ist,

else{

// schalte den Piepser aus

digitalWrite(piepser, LOW);

}

}

Achtes Projekt-Farbenwechsel

Als nächstes schauen wir uns die RGB-LED an. Diese kann man sich vorstellen, wie drei normal

LED´s in einem Gehäuse. Es gibt drei Beinchen die man bei Plus anschließt und eins das man bei

Minus (GND) anschließt. Nun kann man die "drei LED´s" getrent ansteuen, und durch anschalten der

roten und der blauen LED lila erzeugen. Man kann die drei LED´s auch dimmen und so noch mehr

Farbmischungen erzeugen. Das wird der Befehl sein, den wir in diesem Aufbau lernen. Dieser Befehl

heißt analogWrite(). Du benutzt ihn mit folgenden Argumenten analogWrite(Pinname, Wert der

helligkeit von 0-255). Den Versuchsaufbau kannst du der Abbildung entnehmen.

11

55

10

10

15

15

20

20

25

25

30

30

35

35

40

40

45

45

50

50

55

55

60

60

A A

B B

C C

D D

E E

F F

G G

H H

I I

J J

13

12

11

1098765432

L

5V

A0

ANALOG IN

AR

EF

1

GN

D

TX

RX

RESET

3V

3

A1

A2

A3

A4

A5

VIN

GN

D

GN

D

DIGITAL (PWM=)

ArduinoTM

IOR

EF

ICSP

ICSP2

ON

POWER

0 1TX

0

RX

0 RESET

So nun geht es an den Code. Wir wollen zunächst die Farbwerte der drei Farben erst einmal in jeweils

einer Variable speichern. Und dann möchten wir jeden Pin der LED/Farbe mit dem neu erlernten

Befehl einzeln ansteuern.

// Die ganzen werte der drei Variablen knn man sich selbst zwischen←֓

0und 255 aussuchen

//Den Roten Teil der LED auf volle Leistung schalten

int rotWert = 255;

//Den Gruenen Teil der LED auf aus schalten

int gruenWert = 0;

© 2014 Lydia Suthe, Daniel Bauer, Matthis Bickel, Klaus Suthe, Robin Woll, Teckids e.V.

Lizenziert unter einer Creative Commons Namensnennung -

Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz.

Page 10: Arduino 1/10 - teckids.org · Arduino 2/10 Zweites Programm- Wechselblinker In unserem zweiten Programm wollen wir zwei LEDs abwechselnd blinken lassen. Dafür benötigen wir folgende

Arduino 10/10

//Den Blauen Teil der LED auf volle Leistung schalten

int blauWert = 255;

//Die Anschlusspins der Drei LED-anschluesse definieren

//Welche Belegung welche Farbe ist, muesst ihr selbst ausprobieren

int rot = 9;

int gruen = 1 0;

int blau = 11;

void setup(){

//Die drei Pins als Output schalten

pinMode(rot, OUTPUT);

pinMode(gruen, OUTPUT);

pinMode(blau, OUTPUT);

}

void loop(){

//Den drei LEDs den wert zuweisen und entsprechend schalten

analogWrite(rot, rotWert);

analogWrite(gruen, gruenWert);

analogWrite(blau, blauWert);

}

So nun könnt ihr nun coole Muster oder eine Diskoleuchte bauen.

© 2014 Lydia Suthe, Daniel Bauer, Matthis Bickel, Klaus Suthe, Robin Woll, Teckids e.V.

Lizenziert unter einer Creative Commons Namensnennung -

Weitergabe unter gleichen Bedingungen 3.0 Deutschland Lizenz.


Recommended