1 deutscher amateur-radio-club e.v. arduino mikrocontrollerkurs axel tüner (df9vi)
TRANSCRIPT
![Page 1: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/1.jpg)
1
Deutscher Amateur-Radio-Club e.V.
Arduino Mikrocontrollerkurs
Axel Tüner (DF9VI)
![Page 2: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/2.jpg)
Arduino MikrocontrollerEine Einführung speziell für Jugendliche
Der hier vorgeschllagene Kurs richtet sich an Einsteiger und vor allem an Jugendliche ab ca. 13 Jahre. Die Teilnehmer erhalten zu Beginn als Einzelteile:
- einen Arduino (fertig oder besser von den Teilnehmern selber löten lassen)- ein Steckbrett- ein LC-Display- einige Verbindungskabel (wire-jumpers) unterschiedlicher Länge(ca. 20 Stück )- 8 LED´s mit Vorwiderstand (330 Ohm)-1 Minilautsprecher-1 Holzbrett
weitere Bauteile kommen dann bei Bedarf hinzu.Die Kosten für die Erstausstattung liegen bei ca. 35€.
Wir beginnen mit einfachen Übungen an einem Steckbrett. Als Stromversorgung dient zunächst eine 9V-Blockbatterie. Die Teilnehmer lernen die wichtigstenelektronischen Bauteile kennen. Sinnvoll sind jetzt auch einige Lötübungen, bei Jüngeren mit Reisszwecken, Ältere mit kleinen elektronischen Schaltungen
In der nächsten Phase werden Arduino und Steckbrett auf dem Holz montiert.Das ist wichtig, um ein sauberes Arbeiten zu ermöglichen.
Es folgen erste Programmierübungen. Je nach Aufgabe erhalten die Teilnehmer dann weitere Bauteile.
Anfangs sollen die Jugendlichen die Programme einfach abschreiben und anschließendmodifizieren. Nach und nach werden alle wichtigen Kommandos erklärt. Später ist einselbstständiges Arbeiten anzustreben, wobei natürlich Teamarbeit immer wünschenswertist. Die Übungen werden in der Folge immer anspruchsvoller. Zum Abschluss eines jeden Abends sollten „Hausaufgaben“ gegeben werden, um die Teilnehmer zumWeiterarbeiten zu Hause zu motivieren.
Diese Unterlagen bieten Material für sicher mehr als ein halbes Jahr (>20 Abende).Vorsicht beim Umgang mit externen Spannungsquellen (bei Aufbauten mit Motoren)!Alle Schaltungen und Programme wurden getestet. Diese Unterlage darf beliebig an Teilnehmer und DARC-Mitglieder weiter gegeben werden. Aber bitte nicht im Internet veröffentlichen und bitte keine Weitergabe außerhalb der Gruppe oder des Vereins, da die Bilder u.U, nicht frei von Urheberrechten sind.
![Page 3: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/3.jpg)
3
Tutorials
http://www.arduino.cc/http://www.arduino-tutorial.de/Youtube: Arduino Tutorial http://www.arduino.cc/playground/Deutsch/HomePage
Händlerwww.komputer.de/http://jeelabs.net/projects/hardware/wiki/http://www.watterott.com/http://elmicro.com/
Interessante Seiten
http://wiring.org.co/learning/tutorials/http://www.freeduino.de/http://fff2.at/drupal/content/arduino-projekte
![Page 4: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/4.jpg)
4
Leuchtdioden
Das Steckboard
Übungen mit dem Steckboard
![Page 5: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/5.jpg)
5
Leuchtdioden
Übungen mit dem Steckboard
![Page 6: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/6.jpg)
6
Leuchtdioden
U=
I=
Übungen mit dem Steckboard
![Page 7: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/7.jpg)
7
Schaltungsvarianten
Übungen mit dem Steckboard
![Page 8: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/8.jpg)
8
Diode
Übungen mit dem Steckboard
![Page 9: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/9.jpg)
9
Transistor
Messen mit dem Ohmmeter:Farben vertauschen! Plus wird zu Minus und Minus zu Plus!
Übungen mit dem Steckboard
![Page 10: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/10.jpg)
10
Transistor
Übungen mit dem Steckboard
![Page 11: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/11.jpg)
11
Kondensator
Übungen mit dem Steckboard
![Page 12: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/12.jpg)
12
Wechselblinker
Übungen mit dem Steckboard
![Page 13: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/13.jpg)
13
Lautsprecher
Übungen mit dem Steckboard
![Page 14: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/14.jpg)
Der Arduino
![Page 15: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/15.jpg)
15
void setup() { pinMode(2, OUTPUT); }
void loop() { digitalWrite(2, HIGH); delay(1000); digitalWrite(2, LOW); delay(1000); }
LED-blinken
![Page 16: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/16.jpg)
16
void setup() { pinMode(2, OUTPUT); pinMode(3, OUTPUT); usw. }
void loop() { digitalWrite(2, HIGH); delay(1000); digitalWrite(2, LOW); delay(1000); digitalWrite(3, HIGH); delay(1000); usw. }
Lauflicht
![Page 17: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/17.jpg)
17
void setup() { pinMode(2, OUTPUT); pinMode(3, INPUT); }
void loop() {
if (digitalRead(3) == LOW { digitalWrite(2, HIGH); }}
Taster
Auf den Widerstand kann verzichtet werden:mit:digitalWrite(3, HIGH);
![Page 18: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/18.jpg)
18
int a = 5; int b = 10; int c = 20; void setup() { Serial.begin(9600); Serial.print("a = ");Serial.println(a); Serial.print("b = "); Serial.println(b); Serial.print("c = "); Serial.println(c);
} void loop() {}
Monitor
Über den Monitor kann man mit dem Arduino sprechen
Serial.begin(9600);Serial.println(„Guten Tag!“);
if (Serial.available() > 0) { Eingabe = Serial.read();}
![Page 19: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/19.jpg)
19
Blinklicht
Nach einmaligem Betätigen des Tasters sollen die LED´s abwechselnd blinken
![Page 20: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/20.jpg)
20
Lautsprecher
Nach einmaligem Betätigen des Tasters soll die LED leuchten und der Lautsprecher einen Ton von sich geben.Wird die Taste nochmals betätigt, soll wieder Ruhe herrschen und die LED ausgehen.
![Page 21: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/21.jpg)
21
void setup() { Serial.begin(9600);}
void loop() { int sensorValue = analogRead(A0); Serial.println(sensorValue, DEC);}
Analog-Eingang
![Page 22: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/22.jpg)
22
int sensorPin = A0; int ledPin = 13; int sensorValue = 0;
void setup() { pinMode(ledPin, OUTPUT); }
void loop() { sensorValue = analogRead(sensorPin); digitalWrite(ledPin, HIGH); delay(sensorValue); digitalWrite(ledPin, LOW); delay(sensorValue); }
Blinkgeschwindigkeit
![Page 23: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/23.jpg)
23
const int analogPin = A0; const int ledCount = 10;
int ledPins [ ] = { 2, 3, 4, 5, 6, 7,8,9,10,11 }; void setup() { for (int thisLed = 0; thisLed < ledCount; thisLed++) { pinMode(ledPins[thisLed], OUTPUT); }}void loop() { int sensorReading = analogRead(analogPin); int ledLevel = map(sensorReading, 0, 1023, 0, ledCount);
for (int thisLed = 0; thisLed < ledCount; thisLed++) { if (thisLed < ledLevel) { digitalWrite(ledPins[thisLed], HIGH); } else { digitalWrite(ledPins[thisLed], LOW); } }}
Bar-Graph
![Page 24: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/24.jpg)
24
void setup() { }
void loop() { int sensorReading = analogRead(A0); int ton = map(sensorReading, 400, 1000, 100, 1000);
tone(9, ton, 10);
}
Töne
![Page 25: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/25.jpg)
25
//dit dit dit
void setup() { pinMode(9, OUTPUT);}void loop() { tone (9,800,100); //pin, frequenz (hz), dauer (ms) delay (200); tone (9,800,100); //pin, frequenz (hz), dauer (ms) delay (200); tone (9,800,100); //pin, frequenz (hz), dauer (ms) delay (1000); }
//space-Ton
void setup() { pinMode(9, OUTPUT);}void loop() { int i; for (i=0; i<=2000; i=i+20){ tone (9,i,100); //pin, frequenz (hz), dauer (ms) delay (20); } }
Beispielprogramme
Töne
![Page 26: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/26.jpg)
26
Töne
Vorschläge für Variationen
- Sirenenton erzeugen- Tonhöhe mit Potentiometer variieren- Tonhöhe in Abhöngigkeit vom Lichteinfall (LDR)- Tonhöhe in Abhöngigkeit von der Temperatur (NTC)- CQ-Ruf programmieren- Orgel mit 8 Tastern (Pin 2-9)- Musikprogramm aus dem Internet laden und ausprobieren
![Page 27: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/27.jpg)
27
void setup() {Serial.begin(9600); }
void loop() { int sensorReading = analogRead(A0); int range = map(sensorReading, sensorMin, sensorMax, 0, 3);
switch (range) { case 0: Serial.println("dunkel"); break; case 1: Serial.println(„dunkler"); break; case 2: Serial.println(„Mittel"); break; case 3: Serial.println(„Hell"); break; }
}
Helligkeit in Stufen anzeigen
sensorMin= Ergebnis bei kleinster HelligkeitsensorMax = Ergebnis bei größter Helligkeit
![Page 28: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/28.jpg)
28
* LCD RS pin to digital pin 12 * LCD Enable pin to digital pin 11 * LCD D4 pin to digital pin 5 * LCD D5 pin to digital pin 4 * LCD D6 pin to digital pin 3 * LCD D7 pin to digital pin 2 * LCD R/W pin to ground
//Format is RS, Enable, DB4, DB5, DB6, DB7 LiquidCrystal lcd(12, 11, 5, 4, 3, 2);lcd.begin(16, 2);lcd.print("hello, world!");lcd.clear(); lcd.setCursor(0,0); //Spalte, Zeile
LCD anschließen (2x16 Zeichen)
![Page 29: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/29.jpg)
29
![Page 30: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/30.jpg)
30
LC-Display Typ „Batron“ BT240052x40 Zeichen
#include <LiquidCrystal.h> //Format is RS, Enable, DB4, DB5, DB6, DB7 LiquidCrystal lcd(7,6,2,3,4,5);void setup(){lcd.begin(40, 2);}void loop(){lcd.clear(); lcd.setCursor(0,0); //Zeile, Spalte (X,Y) lcd.print(„Hallo!");}
LCD Arduino1 GND2 +5V 3 1KO nach GND4 (RS) 75 GND 6 (E) 6
LCD Arduino11 212 313 414 5A 5,0 Ohm nach +5VK GND
Arduino
7 6 5 4 3 2
![Page 31: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/31.jpg)
31
![Page 32: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/32.jpg)
32
LC-Display Typ 16022x16 Zeichen
LCD Arduino1 +5V2 GND 3 GND4 55 GND 6 4
LCD Arduino11 012 113 214 315 (A) 5,0 Ohm nach +5V16 (K) GND
1
#include <LiquidCrystal.h> //Format is RS, Enable, DB4, DB5, DB6, DB7 LiquidCrystal lcd(7,6,2,3,4,5);void setup(){lcd.begin(16, 2);}void loop(){lcd.clear(); lcd.setCursor(0,0); //Zeile, Spalte (X,Y) lcd.print(„Hallo!");}
16
15
![Page 33: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/33.jpg)
33
![Page 34: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/34.jpg)
34
lcd.begin(Spalte, Zeile) lcd.print(„Halloele“!)lcd.clear() lcd.setCursor(0, 0); // top left lcd.setCursor(15, 0); // top right lcd.setCursor(0, 1); // bottom left lcd.setCursor(15, 1); // bottom right
Weitere Kommandos:LiquidCrystal() begin() clear() home() setCursor() write() print() cursor() noCursor() blink() noBlink() display() noDisplay() scrollDisplayLeft() scrollDisplayRight() autoscroll() noAutoscroll() leftToRight() rightToLeft() createChar()
Anzeige der Zeit seit Einschalten des Arduinolcd.setCursor(0, 0);lcd.print(millis()/1000);
Vom Terminal auf das LCD schreiben:#include <LiquidCrystal.h> LiquidCrystal lcd(7,6, 2, 3, 4, 5);
void setup(){ lcd.begin(40, 2); Serial.begin(9600);}
void loop(){ if (Serial.available()) { lcd.write(Serial.read()); }}
LCD-Befehle
![Page 35: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/35.jpg)
35
//Taster LCD EIN AUS#include <LiquidCrystal.h>LiquidCrystal lcd(7,6,2,3,4,5);
int taster = 0;void setup() { lcd.begin(16, 2); pinMode(9, INPUT); digitalWrite(9,HIGH); lcd.clear();}void loop() { taster = digitalRead(9); if (taster == LOW) { lcd.home(); lcd.print ("EIN"); } else { lcd.home(); lcd.print ("AUS"); }}
// taster lcd zähler #include <LiquidCrystal.h>LiquidCrystal lcd(7,6,2,3,4,5);int i = 0;int taster = 0;void setup() { lcd.begin(16, 2); pinMode(9, INPUT); digitalWrite(9,HIGH); lcd.clear();}void loop() { taster = digitalRead(9); if (taster == LOW) { lcd.home(); i=i+1; lcd.print (i); }}
LCD - Beispielprogramme
Taster an Pin 9Mit dem Taster zwischen Anzeige „Ein“ und „Aus“ umschalten
Mit dem Taster höherzählenund auf dem LCD anzeigen
![Page 36: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/36.jpg)
36
#include <LiquidCrystal.h>LiquidCrystal lcd(7,6,2,3,4,5);int sensorPin = A0; int sensorValue;
void setup() { lcd.begin(40, 2); lcd.clear();}
void loop() { sensorValue = analogRead(sensorPin); lcd.home(); lcd.print (sensorValue); delay(500); }
Programme mit dem LDR
#include <LiquidCrystal.h>LiquidCrystal lcd(7,6,2,3,4,5);int sensorPin = A0; int sensorValue;int lautsprecher = 13;
void setup() { lcd.begin(40, 2); lcd.clear();}
void loop() { sensorValue = analogRead(sensorPin); int tonhoehe = map (sensorValue,0,1023,700,4000); lcd.home(); lcd.print ("Stufe: "); lcd.print(tonhoehe); tone (lautsprecher, tonhoehe); }
int sensorPin = A0; int sensorValue;Serial.begin(9600);
void setup() { }
void loop() {
sensorValue = analogRead(sensorPin); Serial.println (sensorValue);
delay(500); }
„Gemessene“ Werte im Monitor und auf demLCD ausgeben, oder in Töne umsetzen
![Page 37: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/37.jpg)
37
#include <LiquidCrystal.h>LiquidCrystal lcd(7,6,2,3,4,5);
void setup() { lcd.begin(16, 2); lcd.clear(); }
void loop(){ int x=0; int y = 1; int ldr = analogRead(A0); lcd.print("Lichteinfall:"); int bar = map(ldr,300,0,0,16); for (x=0; x<=bar; x++) { lcd.setCursor(x,y); lcd.write(255); } delay(30);lcd.clear();}
Programme mit dem LDR
Balkenanzeige: Je mehr Licht, desto weiter läuft der Balken auf dem LCD. Das gefüllte Kästchen wird mit lcd.write(255) erzeugt. Die Zeile mit dem „map“ muss dem LDR angepasst werden (kalibrieren!).
![Page 38: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/38.jpg)
38
#define wert1 108#define temp1 0 //Grad Celsius/10#define wert2 99#define temp2 230 //Grad Celsius/10
void setup() {Serial.begin(9600); }
void loop() {// lese Wert vom Analogpin in Variableint analogValue = analogRead(0);analogValue=map(analogValue,wert1,wert2,temp1,temp2);// gebe das Ergebnis mit einer Nachkommastelle aus:Serial.print("Temperatur: ");Serial.println((analogValue/10.0),1);// Warte 1 Sekunde bevor der nächste Wert gelesen wirddelay(1000);}
„Messen“ von Temperaturen
![Page 39: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/39.jpg)
39
Programme mit dem NTC
#include <LiquidCrystal.h>LiquidCrystal lcd(7,6,2,3,4,5);int sensorPin = A0; int sensorValue;
void setup() { Serial.begin(9600); lcd.begin(40, 2); lcd.clear();}
void loop() { sensorValue = analogRead(sensorPin); int ntctemp = map (sensorValue,110,170,30,20); lcd.home(); lcd.print ("Temp:"); lcd.print(ntctemp);lcd.print (" Grad"); delay(500); }
#include <LiquidCrystal.h>LiquidCrystal lcd(7,6,2,3,4,5);int sensorPin = A0; int lautsprecher = 13;int sensorValue;
void setup() { Serial.begin(9600); lcd.begin(40, 2); lcd.clear();}
void loop() { sensorValue = analogRead(sensorPin); int ntctemp = map (sensorValue,110,170,30,20); lcd.home(); lcd.print ("Temp:"); lcd.print(ntctemp);lcd.print (" Grad"); int frequenz = ntctemp * 50; tone(lautsprecher,frequenz); }
Temperatur auf dem LCD anzeigen
Temperatur als Ton ausgeben
![Page 40: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/40.jpg)
float tempC;int tempPin = 0;
void setup(){Serial.begin(9600);}
void loop(){tempC = analogRead(tempPin); tempC = (5.0 * tempC * 100.0)/1024.0; Serial.print((byte)tempC); delay(1000);
Temperaturen messen mit dem LM35
2 Typen: LM35CZ teurer und genauer LM35DZ billiger, etwas ungenauerTemperaturbereich: -55 bis + 150 °CMesskurve: 10mV/°CGenauigkeit: +/ -0,25 Grad im Raumtemperaturbereich +/- 0,75 Grad über den gesamten Messbereich
![Page 41: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/41.jpg)
41
float Quellspannung=5.0;int AnalogPin=5;int R1=1500.0; //Wert des bekannten Widerstands (der mitgelieferte 1,5k-Widerstand)long Messwert;float SpannungR2; //Spannung über dem zu messenden Widerstandfloat Widerstand;
void setup(){Serial.begin(9600);Serial.println("Widerstand ausmessen");Serial.println();}
void loop(){//5 Messungen machen und Mittelwert bildenMesswert=0;for(int i=0;i<5;i++){Messwert+=analogRead(AnalogPin);}Messwert=trunc(Messwert/5);
//Spannung berechnenSpannungR2=(Quellspannung/1023.0)*Messwert;Serial.print("Spannung ueber R2 betraegt ");Serial.print(SpannungR2,2);Serial.println(" Volt!");//Berechnung: (R2 = R1 * (U2/U1))Widerstand=R1*(SpannungR2/(Quellspannung-SpannungR2));Serial.print("Der Widerstand hat ");Serial.print(Widerstand,2);Serial.println(" Ohm.");Serial.println();delay(1000);}
Widerstände messen
![Page 42: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/42.jpg)
42
Schalten von Last
Das Relais wird über den Transistor geschaltet. In einem Programm soll das Relais abwechselnd ein – und ausgeschaltet werden.Variationen: Relais durch externen Taster schalten Taster schaltet beim 1. Mal das Relais ein, beim 2. Mal aus Relais schaltet erst ein, wenn der Taste länger gedrückt wird.
![Page 43: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/43.jpg)
43
Schalten von Last
void setup() { pinMode (3, OUTPUT);
void loop() { for (int i = 1; i<=20; i++) { digitalWrite (3, HIGH); delay (1000); digitalWrite (3, LOW); delay (1000); } delay (2000); }
Relais ein und ausschalten
![Page 44: 1 Deutscher Amateur-Radio-Club e.V. Arduino Mikrocontrollerkurs Axel Tüner (DF9VI)](https://reader036.vdokument.com/reader036/viewer/2022062818/570491c31a28ab14218d997c/html5/thumbnails/44.jpg)
44
Ausgabe von analogen Werten
int ledPin = 9; pinMode(ledPin, OUTPUT);Output von 0 - 255
PWM-Ausgänge: 3, 5, 6, 9, 10, and 11..
Schreibe ein Programm, in dem die Helligkeit der LED sich kontinuierlich verändert