Wie verwende ich 3,3V- und 5V-Ausgabesensoren mit Arduino?

13

Um bei Verwendung von 3,3-V-Sensoren die volle Auflösung von Arduino ADC zu erhalten, müssen Sie zwei Schritte ausführen.

  1. Verbinden Sie die 3,3-V-Spannungsversorgung mit dem AREF-Pin.
  2. Rufen Sie analogReference (EXTERNAL) im Code auf.

Aber was ist, wenn ich 3,3V- und 5V-Ausgangssensoren mischen muss? Welche Möglichkeiten habe ich?

Tuupola
quelle

Antworten:

10

Eine einfache Lösung besteht darin, einen Widerstandsteiler (Verhältnis ca. 1: 1,94) zu verwenden und das 5-V-Signal auf einen Spitzenwert von 3,3 V zu reduzieren. Auf diese Weise würden Sie die volle Auflösung beibehalten, ohne die Referenz wechseln zu müssen. Ein geeigneter Teiler wäre, 18 k vom Sensor zum analogen Eingang und 33 k vom analogen Eingang zur Erde zu verwenden. Dies würde den 5-V-Eingang in einen 3,23-V-Eingang umwandeln. Die Verwendung von Widerständen mit höherer Präzision würde dies bei Bedarf näher an 3,3 V bringen. Sie müssen sicherstellen, dass der Sensor den für einen bestimmten Wert erforderlichen Strom liefern kann - in diesem Fall ca. 0,1 mA. Der Eingangswiderstand der analogen ATMega-Eingänge beträgt ca. 100 MΩ. Sie können diese Werte also deutlich erhöhen (wodurch der Sensor entlastet wird), bevor Sie sich Gedanken über die Auswirkung des Eingangswiderstands machen.

JohnC
quelle
3

Zwei Dinge, leben Sie mit der reduzierten Auflösung der 3,3 V-Sensoren und halten Sie Ihre Referenz bei 5 V. Das ist was ich normalerweise mache und es ist gut genug.

Sie können Ihre analogReference auch im laufenden Betrieb umschalten, wenn Sie den jeweiligen Sensor auslesen. Ich erinnere mich, dass ich gelesen habe, wie externe Referenzen und interne Referenzen gemischt wurden und ein Serienbegrenzungswiderstand in Ihrem AREF vorhanden war. Lesen Sie daher diesen Teil der Arduino-Referenz sorgfältig durch.

ka1kjz
quelle
2

Sie können auch nach neueren Versionen Ihrer Sensoren suchen. Möglicherweise können Sie Sensoren erwerben, die beide mit denselben Spannungsgrenzwerten arbeiten, oder Sie stellen fest, dass neuere Versionen der Sensoren verfügbar sind, die Ihnen digitale Ausgänge bieten und mit I2C oder anderen einfachen seriellen Kommunikationsprotokollen abgefragt werden können. Es würde natürlich den Kauf eines neuen Chips erfordern, aber sie sind nicht besonders teuer und würden nicht nur das Problem beseitigen, sondern Ihr Projekt auch präziser gestalten, da Sie sich keine Sorgen um Rauschen machen müssen in Ihrer Schaltung.

John C und der Schinken müssen nicht nur Ihr gesamtes Projekt umgestalten, sondern bieten auch hervorragende, einfache Lösungen. Nach meiner Erfahrung habe ich einen 3v3-Sensor mit einer 5v-Versorgung und Referenz betrieben und hatte größere Probleme mit dem Rauschen als mit der verlorenen Auflösung für gelegentliche Projekte. Dies ist der einfachste Ausweg, aber Sie müssen ein wenig rechnen, und ich habe den Beitrag von ka1kjz entsprechend abgestimmt (siehe die Referenzblätter).

Was die Spannungsteilerlösung betrifft, haben Sie den Vorteil, dass alle Ihre Messungen im gleichen Spannungsbereich liegen und Sie den Vorteil der ratiometrischen Korrektur erhalten, wenn Sie AREF verwenden, um jeder Spannungswelligkeit zu folgen. In der Praxis habe ich jedoch festgestellt, dass Rauschen und fehlende Kalibrierungstechniken in meinen Projekten mehr Fehler verursacht haben, als eine kleine Spannungswelligkeit oder 10% Widerstände vernünftigerweise verursachen könnten. Aus diesem Grund habe ich auch für die Lösung von JohnC gestimmt, da er dies alles ausführlicher behandelt.

Lou
quelle