Skip to content

Latest commit

 

History

History
134 lines (94 loc) · 3.34 KB

Course_02b.md

File metadata and controls

134 lines (94 loc) · 3.34 KB

LiaScript

Mikrocontroller Einführung III

Prof. Dr. Sebastian Zug, Technische Universität Bergakademie Freiberg


Welcome

Herzlich Willkommen!

Die interaktive Ansicht dieses Kurses ist unter folgendem Link verfügbar.

Der Quellcode der Materialien ist unter https://github.com/liaScript/ArduinoEinstieg/blob/master/Course_02b.md zu finden.

Einstiegs-/Auffrischungsübung

Aufgabe: Ihr Programmierer hat Ihnen einen Code geschrieben, der das SOS Morsesignal über die Led ausgibt!

Probieren Sie den Code aus und erklären Sie die verwendeten Programmierkonstrukte. Hat er alles richtig gemacht?

const int ledPin = 13;
const int shortDelay = 1000;
const int longDelay = 1000;

const sos char [] = "ssslllsss";

void setup() {
  // initialize digital pin ledPin as an output.
  pinMode(ledPin, OUTPUT);
}

void blink(int duration){
  digitalWrite(ledPin, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(duration);              // wait for a second
  digitalWrite(ledPin, LOW);    // turn the LED off by making the voltage LOW
}

void short(){
  blink(shortDelay);
}

void long(){
  blink(longDelay)  
}

void loop() {
  for(int i = 0; sos[i] != '\0'; ++i) {
      if sos[i] == 's' long();
      else short();
  }
}

Aufgaben A

Integration einer Mehrfarben LED als Erweiterung der Ausgabe

RGB

Diode

// Methoden aus dem Lösungsvorschlag der MangoLabs
const int redPin = 11;
const int greenPin = 10;
const int bluePin = 9;

void setColourRgb(unsigned int red, unsigned int green, unsigned int blue) {
  analogWrite(redPin, red);
  analogWrite(greenPin, green);
  analogWrite(bluePin, blue);
}

void setup() {
  // Start off with the LED off.
  setColourRgb(0,0,0);
}

void loop() {
  setColourRgb(255, 0, 0);
  delay(1000);
}

Aufgabe: Nutzen Sie die Kodierung von aus dem vorherigen Beispiel und erweitern Sie diese um die Ansteuerung einer RGB-LED.

Aufgabe B

Wir wollen mit dem Arduino einen LED Ring ansteuern.

!?

#include <Adafruit_NeoPixel.h>
#define PIN        6
#define NUMPIXELS 24

Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
#define DELAYVAL 500

void setup() {
  pixels.begin();
}

void loop() {
  pixels.clear();

  for(int i=0; i<NUMPIXELS; i++) {

    pixels.setPixelColor(i, pixels.Color(0, 150, 0));
    pixels.show();
    delay(DELAYVAL);
  }
}

Lassen Sie Ihrer Kreativität freien Lauf und erweitern Sie das Beispiel um eine Animation. Integrieren Sie den Distanzsensor aus einer vorangegangenen Aufgabe oder senden Sie Steuersignale über die Serielle Schnittstelle.