Inhaltsverzeichnis:

Lichtsensor (Fotowiderstand) mit Arduino in Tinkercad - Gunook
Lichtsensor (Fotowiderstand) mit Arduino in Tinkercad - Gunook

Video: Lichtsensor (Fotowiderstand) mit Arduino in Tinkercad - Gunook

Video: Lichtsensor (Fotowiderstand) mit Arduino in Tinkercad - Gunook
Video: Arduino Sensor Tutorial - PhotoResistor 2024, November
Anonim
Lichtsensor (Fotowiderstand) mit Arduino in Tinkercad
Lichtsensor (Fotowiderstand) mit Arduino in Tinkercad

Tinkercad-Projekte »

Lassen Sie uns lernen, wie man einen Fotowiderstand, einen lichtempfindlichen Typ eines variablen Widerstands, mit dem Analogeingang von Arduino liest. Er wird auch als LDR (lichtabhängiger Widerstand) bezeichnet.

Bisher haben Sie bereits gelernt, LEDs mit dem analogen Ausgang von Arduino zu steuern und ein Potentiometer abzulesen, das eine andere Art von variablen Widerständen ist, also werden wir in dieser Lektion auf diesen Fähigkeiten aufbauen. Denken Sie daran, dass die analogen Eingänge von Arduino (Pins mit der Bezeichnung A0-A6) ein sich allmählich änderndes elektrisches Signal erkennen und dieses Signal in eine Zahl zwischen 0 und 1023 umwandeln können.

Bild
Bild

Erkunden Sie die hier in die Arbeitsebene eingebettete Beispielschaltung, indem Sie auf Simulation starten und auf den Fotowiderstand (braunes Oval mit verschnörkelter Linie in der Mitte) klicken und dann den Helligkeitsschieberegler ziehen, um den simulierten Lichteingang anzupassen.

In dieser Lektion bauen Sie diese simulierte Schaltung selbst zusammen mit dem Beispiel. Um optional die physische Schaltung aufzubauen, sammeln Sie Ihr Arduino Uno-Board, das USB-Kabel, das lötfreie Steckbrett, eine LED, Widerstände (220 Ohm und 4,7 k Ohm), Fotowiderstand und Steckbrettdrähte.

Sie können mit Tinkercad Circuits virtuell mitverfolgen. Sie können diese Lektion sogar in Tinkercad ansehen (kostenlose Anmeldung erforderlich)! Erkunden Sie die Beispielschaltung und bauen Sie Ihre eigene direkt daneben. Tinkercad Circuits ist ein kostenloses browserbasiertes Programm, mit dem Sie Schaltungen erstellen und simulieren können. Es ist perfekt zum Lernen, Lehren und Prototyping.

Schritt 1: Bauen Sie die Schaltung auf

Baue die Schaltung
Baue die Schaltung
Baue die Schaltung
Baue die Schaltung

Schauen Sie sich die abgebildete Steckplatinenschaltung an. Es kann nützlich sein, sich zum Vergleich eine frei verdrahtete Version dieser Beispielschaltung anzusehen, die abgebildet ist. In diesem Schritt erstellen Sie neben dem Beispiel in der Arbeitsebene Ihre eigene Version dieser Schaltung.

Um mitzumachen, laden Sie ein neues Tinkercad Circuits-Fenster und bauen Sie Ihre eigene Version dieser Schaltung neben dem Beispiel.

Identifizieren Sie den Fotowiderstand, die LED, die Widerstände und die Drähte, die mit dem Arduino in der Tinkercad Circuits-Arbeitsebene verbunden sind.

Ziehen Sie ein Arduino Uno und ein Steckbrett aus dem Komponentenpanel auf die Arbeitsebene, neben der vorhandenen Schaltung.

Verbinden Sie die Strom- (+) und Erdungsschienen (-) des Steckbretts mit Arduino 5V bzw. Masse (GND), indem Sie darauf klicken, um Drähte zu erstellen.

Erweitern Sie die Strom- und Erdungsschienen zu ihren jeweiligen Bussen an der gegenüberliegenden Kante des Steckbretts (optional für diese Schaltung, aber gute gängige Praxis).

Stecken Sie die LED in zwei verschiedene Steckbrettreihen, so dass die Kathode (negativer, kürzerer Schenkel) mit einem Schenkel eines Widerstands verbunden ist (überall von 100-1K Ohm ist in Ordnung). Der Widerstand kann in beide Richtungen gehen, da Widerstände nicht polarisiert sind, im Gegensatz zu LEDs, die auf eine bestimmte Weise angeschlossen werden müssen, um zu funktionieren.

Verbinden Sie den anderen Widerstandsschenkel mit Masse.

Verdrahten Sie die LED-Anode (positiv, längeres Bein) mit Arduino-Pin 9.

Ziehen Sie einen Fotowiderstand von der Komponententafel auf Ihr Steckbrett, sodass seine Beine in zwei verschiedene Reihen stecken.

Klicken Sie hier, um einen Draht zu erstellen, der einen Fotowiderstandsschenkel mit der Stromversorgung verbindet.

Verbinden Sie das andere Bein mit dem analogen Arduino-Pin A0.

Ziehen Sie einen Widerstand aus der Komponententafel, um den an A0 angeschlossenen Fotowiderstandsschenkel mit Masse zu verbinden, und stellen Sie seinen Wert auf 4,7 kOhm ein.

Schritt 2: Code mit Blöcken

Code mit Blöcken
Code mit Blöcken

Lassen Sie uns den Codeblock-Editor verwenden, um den Zustand des Fotowiderstands abzuhören, und stellen Sie dann eine LED auf eine relative Helligkeit ein, basierend darauf, wie viel Licht der Sensor sieht. Vielleicht möchten Sie Ihre Erinnerung an den LED-Analogausgang in der Lektion Fading LED auffrischen.

Klicken Sie auf die Schaltfläche "Code", um den Code-Editor zu öffnen. Die grauen Notation-Blöcke sind Kommentare, um zu notieren, was Sie mit Ihrem Code tun möchten, aber dieser Text wird nicht als Teil des Programms ausgeführt.

Klicken Sie im Code-Editor auf die Kategorie Variablen.

Um den Widerstandswert des Fotowiderstands zu speichern, erstellen Sie eine Variable namens "sensorValue".

Ziehen Sie einen "gesetzten" Block heraus. Wir speichern den Zustand unseres Fotowiderstands in der Variablen

sensorWert

Klicken Sie auf die Kategorie Input und ziehen Sie einen Block "analog read pin" heraus und platzieren Sie ihn in dem Block "set" nach dem Wort "to".

Da unser Potentiometer an Pin A0 mit dem Arduino verbunden ist, ändern Sie das Dropdown-Menü auf A0.

Klicken Sie auf die Kategorie Ausgabe und ziehen Sie einen Block "Auf seriellen Monitor drucken" heraus.

Navigieren Sie zur Kategorie Variablen und ziehen Sie Ihre Variable sensorValue auf den Block "Auf seriellen Monitor drucken" und stellen Sie sicher, dass die Dropdown-Liste so eingestellt ist, dass sie mit einer neuen Zeile gedruckt wird. Starten Sie optional die Simulation und öffnen Sie den seriellen Monitor, um zu überprüfen, ob Messwerte eingehen und sich ändern, wenn Sie den Sensor justieren. Analoge Eingangswerte reichen von 0-1023.

Da wir mit einer Zahl zwischen 0 (aus) und 255 (volle Helligkeit) in die LED schreiben möchten, verwenden wir den Block "map", um eine Kreuzmultiplikation für uns durchzuführen. Navigieren Sie zur Kategorie Mathematik und ziehen Sie einen "Map" -Block heraus.

Ziehen Sie im ersten Slot einen sensorValue-Variablenblock hinein und legen Sie dann den Bereich von 0 bis 255 fest.

Ziehen Sie zurück in der Kategorie Ausgabe einen analogen "Set Pin"-Block heraus, der standardmäßig "Set Pin 3 to 0" lautet. Passen Sie ihn an, um Pin 9 einzustellen.

Ziehen Sie den zuvor erstellten Map-Block in das "to"-Feld des "set pin"-Blocks, um die angepasste Zahl per PWM auf den LED-Pin zu schreiben.

Klicken Sie auf die Kategorie Steuerung, ziehen Sie einen Warteblock heraus und passen Sie ihn an, um das Programm um 0,1 Sekunden zu verzögern.

Schritt 3: Arduino-Code des Photowiderstands erklärt

Wenn der Code-Editor geöffnet ist, können Sie auf das Dropdown-Menü auf der linken Seite klicken und "Blöcke + Text" auswählen, um den von den Codeblöcken generierten Arduino-Code anzuzeigen. Folgen Sie uns, während wir den Code genauer untersuchen.

int sensorValue = 0;

Vor dem

erstellen()

erstellen wir eine Variable, um den vom Potentiometer gelesenen aktuellen Wert zu speichern. Es heißt

int

weil es eine ganze Zahl oder eine ganze Zahl ist.

Void-Setup ()

{ PinMode (A0, EINGANG); pinMode(9, AUSGANG); Serial.begin (9600); }

Innerhalb des Setups werden die Pins mit dem konfiguriert

pinMode()

Funktion. Pin A0 ist als Eingang konfiguriert, damit wir den elektrischen Zustand des Potentiometers "mithören" können. Pin 9 ist als Ausgang zur Ansteuerung der LED konfiguriert. Um Nachrichten senden zu können, öffnet der Arduino einen neuen seriellen Kommunikationskanal mit

Serial.begin()

die ein Baudratenargument (welche Geschwindigkeit zu kommunizieren) verwendet, in diesem Fall 9600 Bits pro Sekunde.

Leere Schleife ()

{ // den Wert vom Sensor lesen sensorValue = analogRead (A0); // Drucken Sie den Sensormesswert, damit Sie seinen Bereich kennen Serial.println (sensorValue);

Alles nach einer Reihe von Schrägstrichen

//

ist ein Kommentar, der den Leuten hilft, in einfacher Sprache zu verstehen, was das Programm tun soll, aber nicht in dem Programm enthalten ist, das Ihr Arduino ausführt. In der Hauptschleife wird eine Funktion namens

analogRead();

überprüft den Zustand von Pin A0 (der eine ganze Zahl von 0-1023 sein wird) und speichert diesen Wert in der Variablen

sensorWert

// Ordnen Sie den Sensormesswert einem Bereich für die LED zu

analogWrite(9, map(sensorValue, 0, 1023, 0, 255)); Verzögerung (100); // Warte 100 Millisekunde(n) }

Die Zeile nach dem nächsten Kommentar macht viel auf einmal. Erinnern

analogWrite()

nimmt zwei Argumente, die Pin-Nummer (in unserem Fall 9), und den zu schreibenden Wert, der zwischen 0 und 255 liegen sollte. Die Inline-Funktion

Karte()

nimmt fünf Argumente an: die auszuwertende Zahl (die sich ständig ändernde Sensorvariable), das erwartete Minimum und das erwartete Maximum und das gewünschte Minimum und Maximum. Also die

Karte()

In unserem Fall wertet die Funktion den eingehenden sensorValue aus und führt eine Kreuzmultiplikation durch, um die Ausgabe von 0-1023 auf 0-255 herunterzuskalieren. Das Ergebnis wird in das zweite Argument von zurückgegeben

analogWrite();

Einstellen der Helligkeit der an Pin 9 angeschlossenen LED.

Schritt 4: Erstellen Sie eine physische Arduino-Schaltung (optional)

Bauen Sie eine physische Arduino-Schaltung (optional)
Bauen Sie eine physische Arduino-Schaltung (optional)

Um Ihren physischen Arduino Uno zu programmieren, müssen Sie die kostenlose Software (oder das Plugin für den Webeditor) installieren und dann öffnen. Verschiedene Fotozellen haben unterschiedliche Werte. Wenn Ihr physikalischer Stromkreis nicht funktioniert, müssen Sie möglicherweise den damit gekoppelten Widerstand ändern. Erfahren Sie mehr über Spannungsteiler in der Instructables Electronics Class-Lektion zu Widerständen.

Verdrahten Sie die Arduino Uno-Schaltung, indem Sie Komponenten und Drähte anschließen, um den hier in Tinkercad Circuits gezeigten Verbindungen zu entsprechen. Für eine ausführlichere Anleitung zur Arbeit mit Ihrem physischen Arduino Uno-Board besuchen Sie die kostenlose Instructables Arduino-Klasse.

Kopieren Sie den Code aus dem Codefenster von Tinkercad Circuits und fügen Sie ihn in eine leere Skizze in Ihrer Arduino-Software ein oder klicken Sie auf die Download-Schaltfläche (nach unten gerichteter Pfeil) und öffnen Sie

die resultierende Datei mit Arduino. Sie können dieses Beispiel auch in der Arduino-Software finden, indem Sie zu Datei -> Beispiele -> 03. Analog -> AnalogInOutSerial navigieren.

Stecken Sie Ihr USB-Kabel ein und wählen Sie Ihr Board und Ihren Port im Tools-Menü der Software aus.

Laden Sie den Code hoch und verwenden Sie Ihre Hand, um den Sensor vor dem Empfang von Licht zu schützen, und / oder leuchten Sie Ihren Sensor mit Licht!

Öffnen Sie den seriellen Monitor, um Ihre Sensorwerte zu beobachten. Es ist wahrscheinlich, dass die realen Werte je nach Lichtverhältnissen nicht bis 0 oder bis 1023 reichen. Fühlen Sie sich frei, den Bereich 0-1023 auf Ihr beobachtetes Minimum und beobachtetes Maximum einzustellen, um den maximalen Helligkeitsausdrucksbereich der LED zu erhalten.

Schritt 5: Als nächstes versuchen Sie…

Nachdem Sie nun gelernt haben, einen Fotowiderstand zu lesen und seinen Ausgang zuzuordnen, um die Helligkeit einer LED zu steuern, können Sie diese und andere Fähigkeiten, die Sie bisher erlernt haben, anwenden.

Können Sie die LED gegen eine andere Art von Ausgang austauschen, z. B. einen Servomotor, und einen Code erstellen, der die aktuelle Lichtstärke des Sensors als eine bestimmte Position entlang einer Anzeige widerspiegelt?

Versuchen Sie, Ihren Fotowiderstand gegen andere analoge Eingänge wie einen Ultraschall-Abstandssensor oder ein Potentiometer auszutauschen.

Erfahren Sie mehr darüber, wie Sie die digitalen und analogen Eingänge Ihres Arduino über den Computer mit dem Serial Monitor überwachen.

Empfohlen: