LED-Dimmschleife mit LDR / Fotowiderstand

Hey ihr Lieben,
Ich habe Probleme mit einem Uni-Project und hoffe, ihr könnt mir etwas helfen…
Die Aufgabe ist folgende:
Idealerweise möchte man mit linearen Detektoren, bzw. Sensoren, arbeiten. Hier wird dies über einen begrenzten Bereich geprüft. Dafür muss einen passenden Schaltkreis gebaut werden, in dem eine LED (suchen Sie sich eine Farbe aus) direkt vor dem Lichtstärkesensor positioniert wird (sie sollten sehr eng zusammen stehen). Die Intensität der LED wird mittels PWM geregelt und währenddessen der Widerstand (bzw. Spannung) des Lichtstärkesensors gemessen.
Wenn Ihr Schaltkreis fertig aufgebaut ist, können Sie anfangen, Ihren Sketch zu schreiben/modifizieren. Nutzen Sie dafür die zuvor bestimmte Anzahl von Mittelungen.
Dieser Sketch kann etwas kompliziert zu programmieren sein. Daher hier ein kleiner Tipp: Ersetzen Sie jeden Kommentar hier unten mit den passenden Befehlen:
for (LEDIntensity=0;LEDIntensity <= 255; LEDIntensity++) {

  • //Setzen der LED Lichtstärke als PWM*
  • //Kurzer Delay, um sicher zu stellen, dass die LED stabil läuft*
  • //Messen der Lichtstärke durch Mitteln (FOR LOOP)*
  • //Ausgabe des PWM-wertes und der gemessenen Lichtstärke*
    }
    Plotten Sie die gemessene Lichtstärke. Kommentieren Sie Ihre Ergebnisse und beantworten Sie die Frage „Ist der Widerstand des Lichtsensors eine lineare Funktion der Lichtintensität?“.

Ich soll also für eine Schleife verschiedene Mittelwerte plotten… wie stelle ich das an? Ich habe meinen bisherigen Sketch angehängt und wäre über Hilfe sehr dankbar!

Klaus_Einheit2_Aufgabe5b.ino (1.42 KB)

Setze Deinen Code bitte direkt ins Forum. Benutze dazu Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *).
Dann ist er auch auf mobilen Geräten besser lesbar.
Das kannst Du auch noch nachträglich ändern.

Arduino-IDE → Werkzeuge → Serieller Plotter

Gruß Tommy

Hi

Als Erstes - Deine Kommentare zeigen bisher nur, was man eh sieht.
Zumindest etwas hilfreich wäre Es, wenn statt 'long ist long', daß Das eine 32bit Variable wird (auf Standard-Arduino).

Dann fällt mir auf, daß Du 'magic numbers' in Deinem Sketch benutzt - da steht eine 10, eine A0 (mehr noch nicht gefunden).
DIESE magischen Nummern sollten verschwinden.
erstelle dafür Variablen, Die SAGEN, was Sie machen.
const byte pin_led=10; //das braucht nun auch keinen Kommentar, daß Das wohl der Pin der LED ist - byte wurde gewählt, weil's dicke ausreicht und const, weil sich der Pin NIE ändern wird (während der Laufzeit)

Wenn Ihr die Arduino-IDE benutzt, kann man den dort enthaltenen 'Serial Plotter' (unter Werkzeuge) als Empfänger der Kommunikation des Arduino starten.
Selber noch nicht mit gespielt, meine aber gelesen zu haben, daß die anzuzeigenden Werte per Komma getrennt zu übertragen sind - pro Y eine Ausgabe.
Also die X der verschiedenen Graphen per Komma trennen und abschicken.
Denke, auf dem Plotter sollen sowohl die PWM-Werte, wie die LDR-Werte ausgegeben werden.

MfG

dariaup:
//Messen der Lichtstärke durch Mitteln (FOR LOOP)

Das ist sicher auch anders gemeint, als Du das umgesetzt hast. Ich denke, da soll für jede PWM-Stufe in Mittelwert bestimmt werden.

Hallo

ja wie stellst Du das an ? Wenn Du deine Aufgabe gelesen und verstanden hättest wärst Du ja schon etwas weiter. Nein hast Du aber nicht, Du hast es lediglich kopiert. Was erwartest Du bei deinem Sketch denn. Er gibt Dir einen Wert für die Intensität an und einen Mittelwert aus. Insofern klappt das doch. Wie du zwei Werte Plotten kannst wurde dir schon beantwortet.

Einen Tip habe ich dennoch , schau dir mal an wo die Forschleife in der Aufgabenstellung geschlossen ist und wo du sie geschlossen fast.

Heinz