Meine geute is dat spaet geworden. Aufgaben alle soweit fertig, Bilder gehn auch jetzt alle... JPG war von imagemagick nicht so geil. UUUUnnnd loesungen

This commit is contained in:
interfisch 2016-01-13 01:19:34 +01:00
parent c6e0d81139
commit fdc77ee517
23 changed files with 304 additions and 83 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@ -5,10 +5,10 @@
\begin{columns}
\column{0.6\linewidth}
\begin{itemize}
\item Ein Mikrocontroller kann nicht nur digitale, sondern auch analoge Werte lesen
\item Dabei wird die Spannung am Pin gemessen
\item Analoge Pins sind mit A0 bis A5 gekennzeichnet
\item Die Funktion \texttt{analogRead(PIN)} gibt einen Wert zwischen 0 und 1023 (10 bit) zurück
\item ein Mikrocontroller kann nicht nur digitale, sondern auch analoge Werte lesen
\item dabei wird die Spannung am Pin gemessen
\item analoge Pins sind mit A0 bis A5 gekennzeichnet
\item die Funktion \texttt{analogRead(PIN)} gibt einen Wert zwischen 0 und 1023 (10 bit) zurück
\begin{itemize}
\item 0 $\hat{=}$ 0V
\item 1023 $\hat{=}$ 5V
@ -24,35 +24,53 @@ a = analogRead(PIN);
\end{frame}
\begin{frame}
\frametitle{Hardware: Photowiderstand}
\begin{itemize}
\item Light Dependent Resistor (LDR)
\item Ändert seinen Widerstand je nach Lichteinfall
\item Kann zur Beleuchtungsmessung benutzt werden
\end{itemize}
\begin{center}
\includegraphics[width=.6\textwidth]{bilder/ldr_board.png}
\end{center}
\frametitle{Hardware: Photowiderstand}
\begin{itemize}
\item Light Dependent Resistor (LDR)
\item ändert seinen Widerstand je nach Lichteinfall
\item kann zur Beleuchtungsmessung benutzt werden
\end{itemize}
\begin{center}
\includegraphics[width=.6\textwidth]{bilder/fotos/IMG_0726.JPG}
\end{center}
\end{frame}
\begin{frame}
\frametitle{Hardware: Photowiderstand}
\begin{center}
\includegraphics[width=.9\textwidth]{bilder/ldr_board.png}
\end{center}
\end{frame}
\begin{frame}
\frametitle{Hardware: Photowiderstand}
\begin{center}
\includegraphics[width=.9\textwidth]{bilder/fotos/IMG_0753.jpg}
\end{center}
\end{frame}
\begin{frame}[fragile]
\frametitle{Aufgabe 7: Beleuchtung messen}
\begin{columns}
\column{.5\linewidth}
\column{.6\linewidth}
\begin{block}{Aufgabe}
Speichere die alte Aufgabe unter dem Namen \texttt{Workshop\_Teil\_1}.
Erstelle ein neues Projekt (Datei $\rightarrow$ Neu)
\\
Miss die Helligkeit im Raum mit Hilfe des Photowiderstands und gib sie über die UART-Schnittstelle aus.
Nutze dazu einen der analogen Eingänge des Arduinos.
\begin{itemize}
\item speichere die alte Aufgabe unter dem Namen \texttt{Workshop\_Teil\_1}.
\item erstelle ein neues Projekt (Datei $\rightarrow$ Neu)
\item miss die Helligkeit im Raum mit Hilfe des Photowiderstands und gib sie über die UART-Schnittstelle aus.
\item nutze dazu einen der analogen Eingänge des Arduinos.
\end{itemize}
\end{block}
\column{.4\linewidth}
\column{.37\linewidth}
\begin{exampleblock}{Tipps}
\begin{lstlisting}
a = analogRead(PIN);
a=analogRead(PIN);
\end{lstlisting}
Liefert Werte zwischen 0 und 1023
\end{exampleblock}
\end{columns}
\end{frame}

View File

@ -103,8 +103,7 @@
\begin{itemize}
\item die Arduino-Platine hat ein eingebautes Programmiergerät
\item es empfängt den von der Arduino-Umgebung übersetzten Sketch über
den USB-Anschluss
\item und schreibt ihn in den Flash-Speicher des Mikrocontrollers
den USB-Anschluss und schreibt ihn in den Flash-Speicher des Mikrocontrollers
\item fast wie ein USB-Stick, kann aber nur ein Programm aufnehmen
\item das Programm läuft nach dem Einschalten sofort los
\end{itemize}

View File

@ -1,5 +1,15 @@
\section{Ende}
%TODO: ende komplett
\begin{frame}
\frametitle{Ende}
\begin{flushright}
\includegraphics[width=0.3\textwidth,height=\textheight,keepaspectratio]
{bilder/logo_ctdo_200.png} %bild von dem taster
\end{flushright}
%TODO: Werbung fürn ctdo
\end{frame}
% vim: ts=4:sts=4:sw=4:et

View File

@ -61,13 +61,7 @@
\end{frame}
\begin{frame}
\frametitle{Das Shield -- Verkabelung}
\begin{center}
\includegraphics[width=\textwidth,height=0.8\textheight,keepaspectratio]
{bilder/a2_breadboard_led_unknownresistor.png} %grafik schematisch von brotbrett
\end{center}
\end{frame}
\begin{frame}
\frametitle{Grundlagen -- Wichtige Grundbegriffe}
@ -90,6 +84,14 @@
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Das Shield -- Verkabelung}
\begin{center}
\includegraphics[width=\textwidth,height=0.8\textheight,keepaspectratio]
{bilder/a2_breadboard_led_unknownresistor.png} %grafik schematisch von brotbrett
\end{center}
\end{frame}
\begin{frame}
\frametitle{Grundlagen -- Aufteilung der Spannung an den Widerständen}
\begin{itemize}
@ -153,5 +155,22 @@
\end{center}
\end{frame}
\begin{frame}
\frametitle{Aufgabe 2: Das Shield, Verkabelung}
\begin{center}
\includegraphics[width=\textwidth,height=0.8\textheight,keepaspectratio]
{bilder/fotos/IMG_0750.jpg} %foto
\end{center}
\end{frame}
\begin{frame}
\frametitle{Aufgabe 2: Das Shield, LED Ansteuern}
\begin{block}{Aufgabe}
\begin{itemize}
\item Passe den Code an, sodass die neue LED blinkt
\end{itemize}
\end{block}
\end{frame}
% vim: ts=4:sts=4:sw=4:et

View File

@ -1,26 +1,27 @@
\section{PWM}
\section{LED Dimmen}
\begin{frame}
\frametitle{Aufgabe 7: LED Dimmen}
\frametitle{LED Dimmen}
\begin{itemize}
\item Ein Mikrocontroller kann einen Ausgang nur ein oder ausschalten
\item ein Mikrocontroller kann einen Ausgang nur ein oder ausschalten
\item Dimmen durch schnelles Ein-und Ausschalten
\item Helligkeit durch Ein- und Auszeit variieren = \textbf{P}uls\textbf{W}eiten\textbf{M}odulation
\item Die PWM ist in der Hardware fest eingebaut und kann an den Pins 3, 5, 6, 9, 10, und 11 verwendet werden
\item die PWM ist in der Hardware fest eingebaut und kann an den Pins 3, 5, 6, 9, 10, und 11 verwendet werden
\end{itemize}
%Hier PWM bild, zb von mikrocontroller.net. copyright?? http://www.mikrocontroller.net/articles/Pulsweitenmodulation
\end{frame}
\begin{frame}
\frametitle{Aufgabe 7: LED Dimmen}
\textbf{Aufgabe:} Ersetze das Ausschalten der LED durch eine Dimmung
\begin{block}{Aufgabe}
\textbf{Ziel:} Dimme die LED, statt sie auszuschalten
\begin{itemize}
\item Stelle sicher, dass die LED an Pin 3, 5, 6, 9, 10, oder 11 angeschlossen ist. Ansonsten anpassen
\item Ersetze das \texttt{digitalWrite(PIN,LOW)} durch ein \texttt{analogWrite(PIN,\textcolor{blue}{Wert})}
\item Der zweite parameter \textcolor{blue}{\texttt{Wert}} gibt die Helligkeit an und kann zwischen 0 und 255 liegen. 0=Aus, 255=An
\item Teste das Programm mit verschiedenen Werten
\item stelle sicher, dass die LED an einen PWM-fähigen Pin 3, 5, 6, 9, 10, oder 11 angeschlossen ist. Falls nicht, anpassen!
\item ersetze das \texttt{digitalWrite(PIN,LOW)} durch ein \texttt{analogWrite(PIN,\textcolor{blue}{Wert})}
\item der zweite parameter \textcolor{blue}{\texttt{Wert}} gibt die Helligkeit an und kann zwischen 0 und 255 liegen. 0=Aus, 255=An
\item teste das Programm
\end{itemize}
\end{block}
\end{frame}

View File

@ -4,21 +4,22 @@
\frametitle{Taster}
\begin{center}
\includegraphics[width=\textwidth,height=0.8\textheight,keepaspectratio]
{bilder/fotos/IMG_0721.JPG} %bild von dem taster
\includegraphics[width=0.5\textwidth,height=\textheight,keepaspectratio]
{bilder/fotos/IMG_0752.jpg} %bild von dem taster
\end{center}
\end{frame}
\begin{frame}
\frametitle{Taster, Hardware}
\frametitle{Aufgabe 3: Taster, Hardware}
\begin{block}{Aufgabe 3: Taster, Hardware}
\begin{block}{Aufgabe}
\begin{itemize}
\item Erweitere das Projekt:
\begin{enumerate}
\item Stecke den Taster auf das Breadboard
\item Verbinde einen Kontakt mit Masse (GND)
\item Verbinde den anderen Kontakt mit einem freien Pin vom Arduino
\item stecke den Taster auf das Breadboard
\item verbinde einen Kontakt mit Masse (GND)
\item verbinde den anderen Kontakt mit einem freien Pin vom Arduino
\end{enumerate}
\end{itemize}
\end{block}
@ -28,18 +29,18 @@
\frametitle{Aufgabe 3: Taster, Hardware Lösung}
\begin{center}
%\includegraphics[width=\textwidth,height=0.8\textheight,keepaspectratio]
% {bilder/a3_taster_loesung.png} %bild von dem taster aufm brotbrett fertig
\includegraphics[width=\textwidth,height=0.8\textheight,keepaspectratio]
{bilder/fotos/IMG_0751.jpg} %bild von dem taster aufm brotbrett fertig
\end{center}
\end{frame}
\begin{frame}[fragile]
\frametitle{Aufgabe 3: Fallunterscheidung}
\frametitle{Fallunterscheidung}
\begin{columns}
\column{.6\linewidth}
\begin{itemize}
\item Wenn die Bedingung erfüllt ist, führe den Code in den ersten geschweiften Klammern aus.
\item Ist die Bedinung nicht erfüllt, führe den Code im \texttt{else}-Teil aus
\item wenn die Bedingung erfüllt ist, führe den Code in den ersten geschweiften Klammern aus.
\item ist die Bedinung nicht erfüllt, führe den Code im \texttt{else}-Teil aus
\item Bedinungen können sein:
\begin{itemize}
\item 1<2
@ -69,7 +70,7 @@ if ( BEDINGUNG ) {
\column{.6\linewidth}
\begin{itemize}
\item Variablen sind "Platzhalter" für Werte, wie z.B. Zahlen
\item Es gibt verschiedene Datentypen, darunter:
\item es gibt verschiedene Datentypen, darunter:
\begin{itemize}
\item \texttt{int}: Ganzzahl
\item \texttt{float}: Fließkommazahl
@ -99,12 +100,12 @@ bool x=true;
\begin{block}{Aufgabe}
\begin{enumerate}
\item setze den Modus des Tasterpins auf \texttt{INPUT\_PULLUP}
\item Lösche alle Pausen / Delays
\item Lies den Wert am Eingang in eine \texttt{bool}-Variable mit \texttt{digitalRead(PIN)}
\item Nutze die Variable für eine Fallunterscheidung
\item Im Wahr-Fall schalte die LED ein
\item Ansonsten schalte die LED aus
\item Compiliere den Code
\item lösche alle Pausen / Delays
\item lies den Wert am Eingang in eine \texttt{bool}-Variable mit \texttt{digitalRead(PIN)}
\item nutze die Variable für eine Fallunterscheidung
\item im Wahr-Fall schalte die LED ein
\item ansonsten schalte die LED aus
\item compiliere den Code
\end{enumerate}
\end{block}
\column{.35\linewidth}

View File

@ -3,17 +3,18 @@
\begin{frame}
\frametitle{Aufgabe 6: Ein/Aus Taster}
\begin{block}{Aufgabe}
\textbf{Ziel}: LED bei Tasterdruck ein bzw ausschalten
\begin{itemize}
\item Statt die LED bei gedrücktem Taster einzuschalten, soll ihr Zustand geändert werden
\item Der aktuelle Zustand der LED kann wie beim Taster mit \texttt{digitalRead(PIN)} gelesen werden
\item Wenn LED An, schalte sie Aus. Wenn LED aus, schalte die An.
\item statt die LED bei gedrücktem Taster auszuschalten, soll ihr Zustand geändert werden
\item der aktuelle Zustand der LED muss nun in einer Variable gespeichert werden. \textbf{Tipp:} Variable noch vor \texttt{setup()} deklarieren
\item wenn LED an, schalte sie aus. Wenn LED aus, schalte sie an.
\item gib bei jedem Schaltvorgang einen Hinweis aus
\item was fällt auf?
\textit{Tipp}: if-Anweisung
%Hier dann Livecoden
\pause Einfaches ''Entprellen'' durch delay mit z.B. 500 Millisekunden
\end{itemize}
\pause Einfaches ''Entprellen'' durch delay mit z.B. 500 Millisekunden
\end{block}
\end{frame}

View File

@ -3,10 +3,10 @@
\begin{frame}
\frametitle{Kommunikation mit dem PC}
\begin{itemize}
\item Wir beschreiben unseren Mikrocontroller über seine serielle Schnittstelle
\item Der Arduino Uno besitzt einen USB-Seriell Wandler
\item Auf dieselbe Weise können wir mit ihm im Betrieb kommunizieren
\item Darunter zählt z.B. das Senden von Text
\item wir beschreiben unseren Mikrocontroller über seine serielle Schnittstelle
\item der Arduino Uno besitzt einen USB-Seriell Wandler
\item auf dieselbe Weise können wir mit ihm im Betrieb kommunizieren
\item darunter zählt z.B. das Senden von Text
\end{itemize}
\end{frame}
@ -14,10 +14,10 @@
\begin{frame}
\frametitle{Kommunikation mit dem PC}
\begin{itemize}
\item Initialisierung mittels \texttt{Serial.begin(9600)} in der \texttt{setup()}-Funktion
\item Senden von Text durch \texttt{Serial.print("Hello World!")}, z.B. beim Einschalten der LED
\item Nach dem Compilieren und Upload den ''Seriellen Monitor'' öffnen \includegraphics[height=3ex]{bilder/a4_icon_serialmonitor.png}
\item Die Zahl ''9600'' in der Funktion Serial.begin() beschreibt die Geschwindigkeit und muss im \textit{Serial Monitor} ausgewählt werden
\item initialisierung mittels \texttt{Serial.begin(9600)} in der \texttt{setup()}-Funktion
\item senden von Text durch \texttt{Serial.println("Hello World!")}, z.B. beim Ausschalten der LED
\item nach dem Compilieren und Upload den ''Seriellen Monitor'' öffnen \includegraphics[height=3ex]{bilder/a4_icon_serialmonitor.png}
\item die Zahl ''9600'' in der Funktion Serial.begin() beschreibt die Geschwindigkeit und muss im \textit{Serial Monitor} ausgewählt werden
\end{itemize}
\end{frame}
@ -26,13 +26,13 @@
\begin{columns}
\column{.5\linewidth}
\begin{block}{Aufgabe}
Erweitere das Programm, sodass beim Einschalten der LED eine Nachricht gesendet wird.
Erweitere das Programm, sodass beim Ausschalten der LED eine Nachricht gesendet wird.
\end{block}
\column{.4\linewidth}
\column{.45\linewidth}
\begin{exampleblock}{Tipps}
\begin{itemize}
\item Initialisierung: \texttt{Serial.begin(9600)}
\item Text senden: \texttt{Serial.print("bla")}
\item text senden: \texttt{Serial.println("bla")}
\item ''Serieller Monitor'' \includegraphics[height=3ex]{bilder/a4_icon_serialmonitor.png}
\item Geschwindigkeit ''9600''
\end{itemize}
@ -40,13 +40,19 @@
\end{columns}
\end{frame}
\section{Schleifen}
\begin{frame}[fragile]
\frametitle{Schleifen}
\begin{columns}
\column{.5\linewidth}
\begin{itemize}
\item Schleifen ermöglichen ein wiederholtes Ausführen von Befehlen
\item Bei Erfüllung einer Abbruchbedingung wird die Schleife verlassen
\item schleifen ermöglichen ein wiederholtes Ausführen von Befehlen
\item bei Erfüllung einer Abbruchbedingung wird die Schleife verlassen
\end{itemize}
\column{.4\linewidth}
@ -69,7 +75,7 @@ while( BEDINGUNG ){
\begin{columns}
\column{.5\linewidth}
\begin{block}{Aufgabe}
Beim Start soll eine Variable mit der Zahl \textbf{10} initialisiert werden.
erweitere das Programm so, dass beim Start (\texttt{setup}) eine Variable mit der Zahl \textbf{10} initialisiert wird.
Diese soll jeweils ausgegeben und um 1 verringert werden, solange sie größer als 0 ist.
\end{block}
@ -84,6 +90,7 @@ while( BEDINGUNG ){
tuDas();
}
\end{lstlisting}
Der Arduino kann mit dem \textit{Reset}-Knopf neu gestartet werden
\end{exampleblock}
\end{columns}
\end{frame}

View File

@ -1,12 +1,19 @@
\section{Fragen}
\begin{frame}
\centering
\huge Noch Fragen?
\end{frame}
\section{Weitere Aufgaben}
\begin{frame}
\frametitle{Weitere Aufgaben}
\begin{block}{}
\begin{enumerate}
\item Zählen von Tastendrücken
\item zählen von Tastendrücken
\item LED Zustand/Helligkeit oder Blinkgeschwindigkeit abhängig von dem Photowiderstand (Bsp. Nachtlicht)
\item Oder ein Projekt deiner Wahl
\item oder ein Projekt deiner Wahl
\end{enumerate}
\end{block}
\end{frame}

View File

@ -0,0 +1,29 @@
bool ledstatus=false; // globale variable
void setup(){
pinMode(6, OUTPUT); // LED-Pin als Ausgang
pinMode(10, INPUT_PULLUP); // Taster-Pin als Eingang
Serial.begin(9600); // Serielle Kommunikation starten
int zahl=10; // Ganzzahl mit 10 initialisieren
while(zahl>0) {
Serial.println(zahl);
zahl=zahl-1; // Zahl um 1 verringern
}
}
void loop(){
bool taster=digitalRead(10);
if ( taster==false ) {
if ( ledstatus==true ) { // LED war an
analogWrite(6,50); // LED dimmen
ledstatus=false;
Serial.println("Gedimmt"); //Text senden
} else { // LED war aus
digitalWrite(6,HIGH); // LED einschalten
ledstatus=true;
Serial.println("Eingeschaltet"); //Text senden
}
delay(500);
}
}

View File

@ -0,0 +1,9 @@
void setup(){
pinMode(13, OUTPUT); // LED-Pin als Ausgang
}
void loop(){
digitalWrite(13, HIGH); // LED einschalten
delay(1000); // 1000ms warten
digitalWrite(13,LOW); // LED ausschalten
delay(1000);
}

View File

@ -0,0 +1,9 @@
void setup(){
pinMode(7, OUTPUT); // LED-Pin als Ausgang
}
void loop(){
digitalWrite(7, HIGH); // LED einschalten
delay(1000); // 1000ms warten
digitalWrite(7,LOW); // LED ausschalten
delay(1000);
}

View File

@ -0,0 +1,12 @@
void setup(){
pinMode(7, OUTPUT); // LED-Pin als Ausgang
pinMode(10, INPUT_PULLUP); // Taster-Pin als Eingang
}
void loop(){
bool taster=digitalRead(10);
if ( taster==true ){
digitalWrite(7, HIGH); // LED einschalten
} else {
digitalWrite(7,LOW); // LED ausschalten
}
}

View File

@ -0,0 +1,14 @@
void setup(){
pinMode(7, OUTPUT); // LED-Pin als Ausgang
pinMode(10, INPUT_PULLUP); // Taster-Pin als Eingang
Serial.begin(9600); // Serielle Kommunikation starten
}
void loop(){
bool taster=digitalRead(10);
if ( taster==true ){
digitalWrite(7, HIGH); // LED einschalten
} else {
digitalWrite(7,LOW); // LED ausschalten
Serial.println("Ausgeschaltet"); //Text senden
}
}

View File

@ -0,0 +1,20 @@
void setup(){
pinMode(7, OUTPUT); // LED-Pin als Ausgang
pinMode(10, INPUT_PULLUP); // Taster-Pin als Eingang
Serial.begin(9600); // Serielle Kommunikation starten
int zahl=10; // Ganzzahl mit 10 initialisieren
while(zahl>0) {
Serial.println(zahl);
zahl=zahl-1; // Zahl um 1 verringern
}
}
void loop(){
bool taster=digitalRead(10);
if ( taster==true ){
digitalWrite(7, HIGH); // LED einschalten
} else {
digitalWrite(7,LOW); // LED ausschalten
Serial.println("Ausgeschaltet"); //Text senden
}
}

View File

@ -0,0 +1,28 @@
bool ledstatus=false; // globale variable
void setup(){
pinMode(7, OUTPUT); // LED-Pin als Ausgang
pinMode(10, INPUT_PULLUP); // Taster-Pin als Eingang
Serial.begin(9600); // Serielle Kommunikation starten
int zahl=10; // Ganzzahl mit 10 initialisieren
while(zahl>0) {
Serial.println(zahl);
zahl=zahl-1; // Zahl um 1 verringern
}
}
void loop(){
bool taster=digitalRead(10);
if ( taster==false ) {
if ( ledstatus==true ) { // LED war an
digitalWrite(7,LOW); // LED ausschalten
ledstatus=false;
Serial.println("Ausgeschaltet"); //Text senden
} else { // LED war aus
digitalWrite(7,HIGH); // LED einschalten
ledstatus=true;
Serial.println("Eingeschaltet"); //Text senden
}
}
}

View File

@ -0,0 +1,29 @@
bool ledstatus=false; // globale variable
void setup(){
pinMode(6, OUTPUT); // LED-Pin als Ausgang
pinMode(10, INPUT_PULLUP); // Taster-Pin als Eingang
Serial.begin(9600); // Serielle Kommunikation starten
int zahl=10; // Ganzzahl mit 10 initialisieren
while(zahl>0) {
Serial.println(zahl);
zahl=zahl-1; // Zahl um 1 verringern
}
}
void loop(){
bool taster=digitalRead(10);
if ( taster==false ) {
if ( ledstatus==true ) { // LED war an
analogWrite(6,50); // LED dimmen
ledstatus=false;
Serial.println("Gedimmt"); //Text senden
} else { // LED war aus
digitalWrite(6,HIGH); // LED einschalten
ledstatus=true;
Serial.println("Eingeschaltet"); //Text senden
}
delay(500);
}
}

View File

@ -0,0 +1,8 @@
void setup() {
Serial.begin(9600);
}
void loop() {
int helligkeit=analogRead(0);
Serial.println(helligkeit);
}