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
- Ändert den Code so, dass der Alarm angeht, wenn das Umgebungslicht sehr hell wird
- Ä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!