lehrkraefte:blc:informatik:ffprg2017:l1:l1

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:blc:informatik:ffprg2017:l1:l1 [2017/08/11 15:20]
Ivo Blöchliger
lehrkraefte:blc:informatik:ffprg2017:l1:l1 [2017/08/11 16:03] (current)
Ivo Blöchliger [Aufgaben]
Line 10: Line 10:
   * Drücken Sie "Upload" (oder Ctrl-u).   * Drücken Sie "Upload" (oder Ctrl-u).
   * Die Onboard-LED sollte jetzt blinken.   * Die Onboard-LED sollte jetzt blinken.
-  * Speichern Sie den Code unter anderem Namen an einem geeigneten Ort (wo Sie Ihre Codes liegen haben).+  * Legen Sie einen Ordner an, worin Sie ihre Sketches (Arduino-Programme) speichern werden. 
 +  * Speichern Sie den Code unter anderem Namen in Ihrem Ordner.
   * Verändern Sie den Code so, dass die LED schneller blinkt.   * Verändern Sie den Code so, dass die LED schneller blinkt.
  
Line 18: Line 19:
  
 ===== Serial: Kommunikation mit dem Computer ===== ===== Serial: Kommunikation mit dem Computer =====
 +  * Legen Sie einen neuen Sketch an und speichern Sie diesen unter dem Namen "SerialBeispiel".
  
 +Beispiel-Sketch live.
 +
 +===== Coding Conventions =====
 +  * Es wird eingerückt
 +    * für jede öffnende geschweifte Klammer
 +    * die entsprechende schliessende geschweifte Klammer steht unter dem ersten Buchstenben der Zeile mit der öffnenden Klammer.
 +  * Nach if werden grundsätzlich geschweifte Klammern gesetzt.
 +  * Die öffnende geschweifte Klammer kommt als letztes Zeichen hinter das öffnende Statement.
 +  * Variablen beginnen mit Kleinbuchstaben.
 +  * Klassen beginnen mit einem Grossbuchstaben.
 +  * Globale Variablen haben einleuchtende Name (besser 'state' als nur 's')
 +  * #define Konstanten werden vollständig mit Grossbuchstaben geschrieben.
 +
 +<code c++>
 +// Port auf dem die LED hängt
 +#define LED 2
 +
 +void setup() {
 +  pinMode(LED, OUTPUT);
 +}
 +
 +// globale Variable
 +int counter=0; 
 +
 +void loop() {
 +  counter++;
 +  if (counter>100) {
 +    digitalWrite(LED, HIGH);
 +  } else  if (counter>300) {
 +    digitalWrite(LED, LOW);
 +    counter=0;
 +  }
 +}
 +</code>
 +
 +===== Zusammenfassung =====
 +Übersicht: https://www.arduino.cc/en/Reference/HomePage
 +
 +  * void setup() { ... }  Programmstart, wird einmal ausgeführt.
 +  * void loop() { ... } Wird danach wiederholt.
 +  * pinMode(//nummer//, //was//) OUTPUT, INPUT, INPUT_PULLUP, siehe https://www.arduino.cc/en/Reference/PinMode
 +  * digitalWrite(//nummer//, //was//) HIGH, LOW, 1, 0, true, false, siehe https://www.arduino.cc/en/Reference/DigitalWrite
 +  * Serial, siehe https://www.arduino.cc/en/Reference/Serial
 +    * Serial.begin(//speed//) normalerweise 115200 oder 9600
 +    * Serial.print(//was//) Siehe https://www.arduino.cc/en/Serial/Print
 +    * Serial.println(//was//) Wie print, aber mit Zeilenumbruch "\r\n".
 +  * for(//initialisierung//; //Bedingung davor//; //Aktion danach//) { ... } Siehe https://www.arduino.cc/en/Reference/For
 +  * if (//bedingung//) { ... } Siehe https://www.arduino.cc/en/Reference/If und https://www.arduino.cc/en/Reference/Else
 +    * if (//bedingung//) { ... } else { ... }
 +    * if (//bedingung//) { ... } else if (//bedingung2//) { ... } ... else { ... }
 +  * int (Ganzzahlen, ca. -32'000 bis 32'000)
 +  * long (Ganzzahlen, ca. -2'000'000'000 bis 2'000'000'000)
 +
 +===== Aufgaben =====
 +=== Primzahlen ===
 +Schreiben Sie einen Sketch, der Primzahlen ausgibt (ohne obere Grenze). 
 +
 +Studieren Sie dazu die Arduino-Dokumentation zum for-loop, der if-Schleife und dem Modulo-Operator %.
 +=== LED dimmen ===
 +Eine LED kann gedimmt werden, indem man diese ganz schnell ein- und ausschaltet. Je nach Anteil der Zeit, während der die LED angeschaltet ist, erscheint diese heller oder dunkler.
 +
 +Schreiben Sie ein Programm, das die LED schön "an- und ausdimmt".
 +
 +Beachten Sie, dass unser Helligkeitsempfinden nicht linear ist. Eine gute Variante besteht darin, den Anteil der "An-Zeit" quadratisch ansteigen zu lassen.
  • lehrkraefte/blc/informatik/ffprg2017/l1/l1.1502457645.txt.gz
  • Last modified: 2017/08/11 15:20
  • by Ivo Blöchliger