Kategorien: Mikrocontroller-Schaltungen
Anzahl der Ansichten: 18998
Kommentare zum Artikel: 0

Analoge Sensoren an Arduino anschließen, Sensoren lesen

 

Sensoren werden verwendet, um Mengen, Umgebungsbedingungen und Reaktionen auf Zustands- und Positionsänderungen zu messen. An ihrem Ausgang können sowohl digitale Signale bestehen, die aus Einsen und Nullen bestehen, als auch analoge Signale, die aus einer unendlichen Anzahl von Spannungen in einem bestimmten Intervall bestehen.


Über Sensoren

Dementsprechend sind die Sensoren in zwei Gruppen unterteilt:

1. Digital.

2. Analog.

In unserem Fall können zum Lesen digitaler Werte sowohl digitale als auch analoge Eingänge des Mikrocontrollers verwendet werden Avr auf dem Arduino-Board. Analoge Sensoren müssen über einen Analog-Digital-Wandler (ADC) angeschlossen werden. ATMEGA328 ist es, das in den meisten ARDUINO-Karten installiert ist (mehr dazu Es gibt einen Artikel auf der Website), enthält in seiner Schaltung eingebauten ADC. Es stehen bis zu 6 analoge Eingänge zur Auswahl.

Wenn dies für Sie nicht ausreicht, können Sie einen zusätzlichen externen ADC verwenden, um eine Verbindung zu digitalen Eingängen herzustellen. Dies erschwert jedoch den Code und erhöht seine Lautstärke, da Verarbeitungsalgorithmen und ADC-Steuerung hinzugefügt wurden. Das Thema Analog-Digital-Wandler ist breit genug, dass Sie einen separaten Artikel erstellen oder einen Zyklus darüber erstellen können. Es ist einfacher, eine Karte mit einer großen Anzahl von ihnen oder Multiplexer zu verwenden. Schauen wir uns an, wie analoge Sensoren an das Arduino angeschlossen werden.

Analoge Sensoren an Arduino anschließen, Sensorwerte ablesen

Allgemeines Schema der analogen Sensoren und deren Anschluss

Der Sensor kann sogar ein herkömmliches Potentiometer sein. Tatsächlich handelt es sich hierbei um einen Widerstandspositionssensor. Nach diesem Prinzip steuern sie den Flüssigkeitsstand, den Neigungswinkel und die Öffnung von etwas. Es kann auf zwei Arten mit Arduino verbunden werden.

Allgemeines Schema der analogen Sensoren und deren Anschluss

Mit der obigen Schaltung können Sie Werte von 0 bis 1023 ablesen, da die gesamte Spannung am Potentiometer abfällt. Hier funktioniert das Prinzip des Spannungsteilers. In jeder Position des Motors wird die Spannung linear auf der Oberfläche der Widerstandsschicht oder auf einer logarithmischen Skala (abhängig vom Potentiometer) verteilt. Der Teil der Spannung, der zwischen dem Ausgang des Schiebers (Gleitkontakt) und Masse (gnd) verbleibt, gelangt zum Eingang. Auf dem Steckbrett sieht diese Verbindung folgendermaßen aus:

Schaltplan für analoge Sensoren

Die zweite Option wird gemäß der klassischen Widerstandsteilerschaltung angeschlossen. Hier hängt die Spannung am Punkt des maximalen Widerstands des Potentiometers vom Widerstand des oberen Widerstands ab (in Abbildung R2).

Klassischer Widerstandsteiler

Im Allgemeinen ist der Widerstandsteiler nicht nur im Bereich der Arbeit mit Mikrocontrollern, sondern auch in der Elektronik im Allgemeinen sehr wichtig. Unten sehen Sie das allgemeine Schema sowie die berechneten Verhältnisse zur Bestimmung des Spannungswertes am Unterarm.

Schema- und Entwurfsbeziehungen zur Bestimmung des Spannungswertes am Unterarm

Eine solche Verbindung ist nicht nur für ein Potentiometer, sondern für alle analogen Sensoren charakteristisch, da die meisten von ihnen nach dem Prinzip der Widerstandsänderung (Leitfähigkeit) unter dem Einfluss externer Quellen arbeiten - Temperatur, Licht, Strahlung verschiedener Art usw.

Das Folgende ist das einfachste Verbindungsdiagramm ThermistorGrundsätzlich kann ein Thermometer auf seiner Basis hergestellt werden. Die Genauigkeit der Messwerte hängt jedoch von der Genauigkeit der Tabelle zur Umwandlung des Widerstands in die Temperatur, der Stabilität der Stromquelle und den Widerstandsänderungskoeffizienten (einschließlich des Oberarmwiderstands) bei derselben Temperatur ab. Dies kann minimiert werden, indem die optimalen Widerstände, ihre Leistung und Betriebsströme ausgewählt werden.

Das einfachste Anschlussdiagramm für einen Thermistor

Auf die gleiche Weise können Sie Fotodioden, Fototransistoren als Lichtsensor anschließen. Die Photoelektronik hat Anwendung in Sensoren gefunden, die die Entfernung und das Vorhandensein eines Objekts bestimmen, von denen wir später einen betrachten werden.

Fotowiderstand

Die Abbildung zeigt den Anschluss des Fotowiderstands an das Arduino.

Verbindungsschema des Fotowiderstands zu Arduino

Software-Teil

Bevor ich über das Anschließen bestimmter Sensoren spreche, habe ich mich entschlossen, Software für deren Verarbeitung in Betracht zu ziehen. Alle analogen Signale werden mit dem Befehl analogRead () von denselben Ports gelesen.Es ist erwähnenswert, dass Arduino UNO und andere Modelle mit 168 und 328 atmega einen 10-Bit-ADC haben. Dies bedeutet, dass der Mikrocontroller das Eingangssignal als eine Zahl von 0 bis 1023 sieht - insgesamt 1024 Werte. Wenn Sie davon ausgehen, dass die Versorgungsspannung 5 Volt beträgt, ist die Eingangsempfindlichkeit:

5/1024 = 0,0048 V oder 4,8 mV

Das heißt, mit einem Wert von 0 am Eingang ist die Spannung 0 und mit einem Wert von 10 am Eingang - 48 mV.

In einigen Fällen wird 1024 durch eine Zahl geteilt, um Werte auf den gewünschten Pegel umzuwandeln (z. B. um auf den PWM-Ausgang zu übertragen), und als Ergebnis der Division sollte das erforderliche Maximum erhalten werden. Die Kartenfunktion (Quelle, niedrig, hoch, hoch, hoch, niedrig) funktioniert klarer, wobei:

  • niedrig - niedrigere Zahl vor Umwandlung nach Funktion;

  • vch - oben;

  • VCh - die niedrigere Zahl nach der Verarbeitung durch die Funktion (am Ausgang);

  • VHV - oben.

Praktische Anwendung zum Konvertieren einer Funktion eines Eingangswerts zur Übertragung in eine PWM (Maximalwert 255, zum Konvertieren von Daten von einem ADC in eine Ausgangs-PWM 1024 geteilt durch 4):

Option 1 - Teilung.

int x;

x = analogRead (Topf) / 4;

// Eine Zahl von 0 bis 1023 wird empfangen

// dividiere es durch 4, wir erhalten eine ganze Zahl von 0 bis 255 analogWrite (led, x);

Option 2 - die MAP-Funktion - eröffnet mehr Möglichkeiten, aber dazu später mehr.

void loop ()

{int val = analogRead (0);

val = map (val, 0, 1023, 0, 255);

analogWrite (led, val); }}

Oder noch kürzer:

analogWrite (LED, Karte (val, 0, 1023, 0, 255))

Nicht alle Sensoren haben 5 Volt am Ausgang, d.h. Die Zahl 1024 ist nicht immer bequem zu teilen, um die gleiche 256 für die PWM (oder eine andere) zu erhalten. Dies können 2 und 2,5 Volt und andere Werte sein, wenn das maximale Signal beispielsweise 500 beträgt.


Beliebte analoge Sensoren

Eine allgemeine Ansicht des Sensors für Arduino und seiner Verbindung ist unten gezeigt:

So schließen Sie einen analogen Sensor an

Normalerweise gibt es drei Ausgänge, vielleicht einen vierten - digital, aber dies sind Funktionen.

Erläuterung der Bezeichnung der Ausgänge des Analogsensors:

  • G - Minusstrom, gemeinsamer Bus, Masse. Kann als GND bezeichnet werden, "-";

  • V - plus Leistung. Kann als Vcc, Vtg, "+" bezeichnet werden;

  • S - Ausgangssignal, mögliche Notation - Out, SGN, Vout, Vorzeichen.

Anfänger, die lernen möchten, wie man die Werte von Sensoren liest, wählen Projekte aller Arten von Thermometern. Solche Sensoren sind digital aufgebaut, zum Beispiel DS18B20, und analog - dies sind alle Arten von Mikroschaltungen wie LM35, TMP35, TMP36 und andere. Hier ist ein Beispiel für den modularen Aufbau eines solchen Sensors auf der Platine.

Analogsensor am TMP36

Die Genauigkeit des Sensors liegt zwischen 0,5 und 2 Grad. Wie viele seiner Analoga auf einem TMP36-Chip aufgebaut, betragen seine Ausgangswerte 10 mV / ° C. Bei 0 ° beträgt das Ausgangssignal 0 V, und dann werden 10 mV pro 1 Grad hinzugefügt. Das heißt, bei 25,5 Grad beträgt die Spannung 0,255 V, eine Abweichung innerhalb des Fehlers und der Eigenerwärmung des IC-Kristalls (bis zu 0,1 ° C) ist möglich.


Abhängig von der verwendeten Mikroschaltung können die Messbereiche und Ausgangsspannungen unterschiedlich sein, siehe Tabelle.

Temperaturbereiche und Sensorausgangsspannungen

Für ein hochwertiges Thermometer können Sie die Werte jedoch nicht nur lesen und auf der LCD-Anzeige oder der seriellen Schnittstelle für die Kommunikation mit einem PC anzeigen. Um das Ausgangssignal des gesamten Systems zu stabilisieren, müssen Sie die Werte der analogen und digitalen Sensoren innerhalb bestimmter Grenzen mitteln ohne ihre Geschwindigkeit und Genauigkeit zu beeinträchtigen (es gibt eine Grenze für alles). Dies ist auf das Vorhandensein von Geräuschen, Störungen und instabilen Kontakten zurückzuführen (für Widerstandssensoren, die auf einem Potentiometer basieren, siehe Fehlfunktionen des Wasser- oder Kraftstoffstandsensors im Autotank).

Die Codes für die Arbeit mit den meisten Sensoren sind ziemlich umfangreich, daher werde ich nicht alle angeben. Sie können über die Anfrage "Sensor + Arduino-Name" leicht im Netzwerk gefunden werden.

Der nächste Sensor, den Arduino-Roboteringenieure häufig verwenden, ist der Liniensensor. Es basiert auf photoelektronischen Geräten, Art der Fototransistoren.

Leitungssensor

Mit ihrer Hilfe bestimmt ein Roboter, der sich entlang der Linie bewegt (in der automatisierten Produktion zur Lieferung von Teilen verwendet), das Vorhandensein eines weißen oder schwarzen Streifens. Auf der rechten Seite der Abbildung sind zwei LED-ähnliche Geräte sichtbar. Eine davon ist die LED, die im unsichtbaren Spektrum emittieren kann, und die zweite ist ein Fototransistor.

Licht wird von der Oberfläche reflektiert, wenn es dunkel ist - der Fototransistor empfängt keinen reflektierten Strom, aber wenn Licht empfängt und sich öffnet. Die Algorithmen, die Sie in den Mikrocontroller eingeben, verarbeiten das Signal und bestimmen die Richtigkeit und Bewegungsrichtung und korrigieren sie. Die optische Maus, die Sie beim Lesen dieser Zeilen höchstwahrscheinlich in der Hand halten, ist ähnlich angeordnet.

Ich werde mit einem benachbarten Sensor ergänzen - ein Abstandssensor von Sharp, der auch in der Robotik sowie bei der Überwachung der Position von Objekten im Raum (mit dem entsprechenden TX-Fehler) verwendet wird.

Scharfer Abstandssensor

Es funktioniert nach dem gleichen Prinzip. Bibliotheken und Beispiele für Skizzen und Projekte mit ihnen sind in großer Anzahl auf Websites verfügbar, die Arduino gewidmet sind.


Fazit

Die Verwendung von analogen Sensoren ist sehr einfach und mit der leicht zu erlernenden Programmiersprache Arduino lernen Sie schnell einfache Geräte. Dieser Ansatz weist im Vergleich zu digitalen Gegenstücken erhebliche Nachteile auf. Dies ist auf die großen Unterschiede in den Parametern zurückzuführen, die beim Austausch des Sensors zu Problemen führen. Möglicherweise müssen Sie den Quellcode des Programms bearbeiten.

Zwar enthalten einzelne analoge Geräte Referenzspannungsquellen und Stromstabilisatoren, was sich positiv auf die Wiederholbarkeit des Endprodukts und des Geräts in der Massenproduktion auswirkt. Alle Probleme können durch die Verwendung digitaler Geräte vermieden werden.

Die digitale Schaltung als solche reduziert die Notwendigkeit, die Schaltung nach dem Zusammenbau abzustimmen und einzustellen. Dies gibt Ihnen die Möglichkeit, mehrere identische Geräte auf demselben Quellcode zusammenzubauen, dessen Details dieselben Signale liefern. Bei Widerstandssensoren ist dies selten.

Siehe auch auf unserer Website:Anschließen externer Geräte an Arduino

Siehe auch auf i.electricianexp.com:

  • Was ist der Unterschied zwischen analogen und digitalen Sensoren?
  • Messung von Temperatur und Luftfeuchtigkeit auf Arduino - eine Auswahl von Methoden
  • Wie erfolgt die Umwandlung des analogen in ein digitales Signal?
  • Beliebteste Sensoren für Arduino
  • Wie der Leitungssensor angeordnet ist und funktioniert

  •