Startseite Skripte für das Wintersemester 2018/19 Projekt „Citizen Science“ Arduino Grundlagen Photo-Resistor & LED & Piezo


Photo-Resistor & LED & Piezo

Verwendet einen 10kΩ Widerstand bei der Fotozelle und einen 220Ω Widerstand bei der LED.

Das Piezo-Element braucht keinen Widerstand und es spielt auch keine Rolle, wierum Ihr es auf das Breadboard steckt.

Arduino

int fotozelle = A0; // Pin Zuweisung bei A0; Widerstand 10 kOhm
int led = 6; // An Pin D6 ist eine LED mit Widerstand 220 Ohm angeschlossen.
int piezo = 3; // Piezo bei D3 angeschlossen

void setup() {
  pinMode(fotozelle, INPUT);
  pinMode(led, OUTPUT);
  pinMode(piezo, OUTPUT);
  Serial.begin(9600);
}

void loop() {

  int hell = analogRead(fotozelle); // Wert, den Fotozelle ausgibt, wird gelesen

  Serial.print("Helligkeitswertes der Foto-Zelle: ");
  Serial.println(hell); // Ausgabe des Helligkeitswertes der Foto-Zelle

  analogWrite(led, 255 - hell / 4);

  // wenn es zu dunkel wird, geht der Alarm an
  if (hell < 550) {
    playTone(300, 160); // externe Funktion, siehe unten!
  }

  delay(300);
}

// duration in mSecs, frequency in hertz
void playTone(long duration, int freq) {
  duration *= 1000;
  int period = (1.0 / freq) * 1000000;
  long elapsed_time = 0;
  while (elapsed_time < duration) {
    digitalWrite(piezo, HIGH);
    delayMicroseconds(period / 2);
    digitalWrite(piezo, LOW);
    delayMicroseconds(period / 2);
    elapsed_time += (period);
  }
}

Übungen

  1. Ändert den Code so, dass der Alarm angeht, wenn das Umgebungslicht sehr hell wird
  2. Ändert den Code so, dass der Alarm angeht, wenn das Umgebungslicht entweder sehr hell oder sehr dunkel wird – der Alarm also nur aus ist, wenn das Umgebungslicht „mittelhell“ ist…

Foto Hardware-Aufbau

Da kommt einiges zusammen!