Kostenlose technische Bibliothek ENZYKLOPÄDIE DER FUNKELEKTRONIK UND ELEKTROTECHNIK Arduino. Einfache Sensoren anschließen. Enzyklopädie der Funkelektronik und Elektrotechnik Lexikon der Funkelektronik und Elektrotechnik / Funkamateur-Designer Der im vorherigen Teil des Tests besprochene integrierte ADC des Mikrocontrollers ermöglicht den einfachen Anschluss verschiedener analoger Sensoren an die Arduino-Platine, die die gemessenen physikalischen Parameter in elektrische Spannung umwandeln. Ein Beispiel für einen einfachen analogen Sensor ist ein variabler Widerstand, der an die Platine angeschlossen ist, wie in Abb. 1. Es kann ein beliebiger Typ sein, zum Beispiel SP3-33-32 (Abb. 2). Der Widerstandswert im Diagramm ist ein ungefährer Wert und kann kleiner oder größer sein. Es ist jedoch zu beachten, dass je niedriger der Widerstandswert des variablen Widerstands ist, desto mehr Strom verbraucht er aus der Stromversorgung des Mikrocontrollers. Und wenn der Widerstand der Signalquelle (in diesem Fall ein variabler Widerstand) mehr als 10 kOhm beträgt, arbeitet der ADC des Mikrocontrollers mit großen Fehlern. Bitte beachten Sie, dass der Widerstandswert eines variablen Widerstands als Signalquelle von der Position seines Schiebereglers abhängt. In den äußersten Positionen ist er Null und in der mittleren Position maximal (entspricht einem Viertel des Nennwiderstands).
Es ist praktisch, einen variablen Widerstand zu verwenden, wenn Sie einen Parameter sanft und nicht schrittweise (diskret) ändern möchten. Betrachten Sie als Beispiel die in der Tabelle aufgeführte Arbeit. 1 Programm, das die Helligkeit der LED abhängig von der Position des variablen Widerstandsschiebers ändert. Die Zeile U = U/4 wird im Programm benötigt, um die vom ADC zurückgegebene Zehn-Bit-Binärzahl in eine Acht-Bit-Zahl umzuwandeln, die von der Funktion analogWrite() als zweiter Operand akzeptiert wird. In diesem Fall erfolgt dies durch Division der ursprünglichen Zahl durch vier, was dem Verwerfen der beiden niedrigstwertigen Binärziffern gleichkommt. Tabelle 1 Ein entsprechend ausgelegter variabler Widerstand kann als Drehwinkel- oder Linearwegsensor dienen. Ebenso können Sie viele Funkelemente anschließen: Fotowiderstände, Thermistoren, Fotodioden, Fototransistoren. Kurz gesagt, Geräte, deren elektrischer Widerstand von bestimmten Umweltfaktoren abhängt. In Abb. Abbildung 3 zeigt ein Diagramm zum Anschluss eines Fotowiderstands an Arduino. Wenn sich die Beleuchtung ändert, ändert sich ihr elektrischer Widerstand und dementsprechend ändert sich auch die Spannung am Analogeingang des Arduino-Boards. Der im Diagramm angegebene FSK-1-Fotowiderstand kann durch einen beliebigen anderen ersetzt werden, beispielsweise durch SF2-1.
In der Tabelle Abbildung 2 zeigt ein Programm, das ein Arduino-Board mit angeschlossenem Fotowiderstand in einen einfachen Lichtmesser verwandelt. Während des Betriebs misst es regelmäßig den Spannungsabfall an einem mit dem Fotowiderstand in Reihe geschalteten Widerstand und überträgt das Ergebnis in willkürlichen Einheiten über die serielle Schnittstelle an den Computer. Sie werden auf dem Bildschirm des Arduino-Debugging-Terminals angezeigt, wie in Abb. 4. Wie wir sehen können, nahm die gemessene Spannung zu einem bestimmten Zeitpunkt stark ab. Dies geschah, als eine hell leuchtende Fotodiode durch einen undurchsichtigen Schirm verdeckt wurde. Tabelle 2
Um Beleuchtungswerte in Lux (Standard-SI-Einheiten) zu erhalten, müssen Sie die Ergebnisse mit einem Korrekturfaktor multiplizieren, diesen jedoch experimentell und für jeden Fotowiderstand individuell auswählen. Hierzu benötigen Sie ein handelsübliches Luxmeter. Der Fototransistor [1] bzw. die Fotodiode (Abb. 5) wird auf ähnliche Weise mit dem Arduino verbunden. Mit mehreren lichtempfindlichen Geräten ist es möglich, ein einfaches Vision-System für einen Roboter zu konstruieren [2]. Es ist möglich, viele klassische Designs, die einem breiten Spektrum von Funkamateuren bekannt sind, auf einem neuen technischen Niveau umzusetzen – das kybernetische Modell einer Motte [3, S. 134-151] oder ein Modell eines Panzers, der sich dem Licht entgegen bewegt [4, S. 331, 332].
Ähnlich wie ein Fotowiderstand wird am Arduino ein Thermistor angeschlossen (Abb. 6), der seinen elektrischen Widerstand abhängig von der Temperatur ändert. Anstelle des im Diagramm angegebenen MMT-4-Thermistors, dessen Hauptvorteil sein abgedichtetes Gehäuse ist, können Sie fast jeden anderen verwenden, beispielsweise MMT-1 oder einen importierten.
Nach entsprechender Kalibrierung [5, S. 231-255] kann ein ähnliches Gerät zur Temperaturmessung in allen Arten von Heimwetterstationen, Thermostaten und ähnlichen Strukturen verwendet werden [6]. Es ist bekannt, dass fast alle LEDs nicht nur als Lichtquellen, sondern auch als Lichtempfänger – Fotodioden – dienen können. Tatsache ist, dass sich der LED-Kristall in einem transparenten Gehäuse befindet und daher sein pn-Übergang für Licht von externen Quellen zugänglich ist. Darüber hinaus hat das LED-Gehäuse meist die Form einer Linse, die die externe Strahlung auf diese Verbindungsstelle fokussiert. Unter seinem Einfluss verändert sich beispielsweise der Sperrwiderstand des pn-Übergangs. Durch den Anschluss der LED an die Arduino-Platine gemäß der in Abb. gezeigten Schaltung. 7 können Sie dieselbe LED sowohl bestimmungsgemäß als auch als Fotosensor verwenden [7]. Ein Programm zur Veranschaulichung dieses Modus ist in der Tabelle angegeben. 3. Die Idee besteht darin, zunächst eine Sperrspannung an den pn-Übergang der LED anzulegen und so deren Kapazität aufzuladen. Die LED-Kathode wird dann isoliert, indem der Arduino-Pin, mit dem sie verbunden ist, als Eingang konfiguriert wird. Danach misst das Programm die Dauer der Entladung der Kapazität des pn-Übergangs der LED durch ihren eigenen Rückstrom bis zum Niveau der logischen Null, abhängig von der externen Beleuchtung.
Tabelle 3 Im obigen Programm wird die Variable t als unsigned int beschrieben – eine vorzeichenlose Ganzzahl. Eine Variable dieses Typs verwendet im Gegensatz zu einem regulären int, das Werte von -32768 bis +32767 annimmt, nicht ihre höchstwertige Binärziffer zum Speichern des Vorzeichens und kann Werte von 0 bis 65535 annehmen. Das Programm berechnet die Entladezeit in der while(digitalRead (K)!=0)t++-Schleife. Diese Schleife wird ausgeführt, wobei der Wert von t jedes Mal um eins erhöht wird, bis die in Klammern gesetzte Bedingung wahr ist, d. h. bis die Spannung an der Kathode der LED auf einen niedrigen logischen Pegel abfällt. Manchmal ist es erforderlich, dass der Roboter nicht nur Informationen über die Beleuchtung der Oberfläche, auf der er sich bewegt, erhält, sondern auch deren Farbe bestimmen kann. Ein Farbsensor für die darunter liegende Oberfläche wird implementiert, indem diese abwechselnd mit LEDs unterschiedlicher Lumineszenzfarben beleuchtet wird und mithilfe einer Fotodiode die Stärke der von ihr reflektierten Signale bei unterschiedlicher Beleuchtung verglichen wird [8]. Das Anschlussdiagramm der Farbsensorelemente mit der Arduino-Platine ist in Abb. dargestellt. 8, und das Programm, das es bedient, ist in der Tabelle. 4.
Tabelle 4 Das Verfahren zur Messung der von einer Fotodiode bei unterschiedlicher Beleuchtung der Oberfläche empfangenen Signale wird viele Male wiederholt und die erhaltenen Ergebnisse werden akkumuliert, um zufällige Fehler zu eliminieren. Das Programm wählt dann den größten der akkumulierten Werte aus. Dadurch können Sie die Farbe der Oberfläche grob beurteilen. Um die Farbe genauer zu bestimmen, ist es notwendig, die Verarbeitung der Ergebnisse zu erschweren und dabei nicht nur den größten von ihnen, sondern auch seine Beziehung zu den kleineren zu berücksichtigen. Es ist auch notwendig, die tatsächliche Helligkeit von LEDs unterschiedlicher Farbe sowie die spektralen Eigenschaften der verwendeten Fotodiode zu berücksichtigen. Ein Beispiel für einen Farbsensoraufbau bestehend aus vier LEDs und einer Fotodiode ist in Abb. dargestellt. 9. Die optischen Achsen der LEDs und der Fotodiode müssen an einem Punkt der untersuchten Oberfläche zusammenlaufen und die Geräte selbst möglichst nahe daran platziert werden, um den Einfluss von Fremdbeleuchtung zu minimieren.
Der zusammengebaute Sensor erfordert eine sorgfältige individuelle Kalibrierung auf Oberflächen unterschiedlicher Farbe. Es kommt auf die Auswahl von Koeffizienten an, mit denen die unter verschiedenen Lichtverhältnissen erhaltenen Messergebnisse vor dem Vergleich multipliziert werden sollen. Einem Roboter, der mit einem solchen Sensor ausgestattet ist, können interessante Bewegungsalgorithmen beigebracht werden. Er kann sich beispielsweise im Arbeitsfeld einer Farbe bewegen, ohne die Grenzen „verbotener“ Zonen zu verletzen, die in einer anderen Farbe gestrichen sind. Die im Artikel besprochenen Programme finden Sie unter ftp://ftp.radio.ru/pub/2016/10/asensors.zip. Literatur
Autor: D. Lekomtsev Siehe andere Artikel Abschnitt Funkamateur-Designer. Lesen und Schreiben nützlich Kommentare zu diesem Artikel. Neueste Nachrichten aus Wissenschaft und Technik, neue Elektronik: Energie aus dem Weltraum für Raumschiff
08.05.2024 Neue Methode zur Herstellung leistungsstarker Batterien
08.05.2024 Alkoholgehalt von warmem Bier
07.05.2024
Weitere interessante Neuigkeiten: ▪ Die Rotation des Mars beschleunigt sich jedes Jahr ▪ Wasser wird in zwei verschiedene Flüssigkeiten unterteilt ▪ Intrinsyc-Entwicklergeräte mit SoC Snapdragon 820 ▪ Schwimmen verbessert den Wortschatz der Kinder News-Feed von Wissenschaft und Technologie, neue Elektronik
Interessante Materialien der Freien Technischen Bibliothek: ▪ Abschnitt der Website Medizin. Artikelauswahl ▪ Artikel Jet Car TRUST SSC. Geschichte der Erfindung und Produktion ▪ Artikel Warum wurde für die Marathondistanz eine unrunde Zahl gewählt? Ausführliche Antwort ▪ Artikel Imprägnieren und Waschen von Luftfiltern. Standardanweisung zum Arbeitsschutz ▪ Artikel Großer Sieben-Elemente-Indikator. Enzyklopädie der Funkelektronik und Elektrotechnik
Hinterlasse deinen Kommentar zu diesem Artikel: Alle Sprachen dieser Seite Startseite | Bibliothek | Artikel | Sitemap | Site-Überprüfungen www.diagramm.com.ua |