Analoge Spannungen verstärken mit dem LM358
05.03.2025
:
:
:
:
Elektronik | Funk | Software
Der Technik-Blog
05.03.2025
25.02.2025
25.02.2025
12.02.2025
Lüfter, wie sie in der Industrie und in Computern verbaut sind, besitzen einen Drehzahlsensor. Über diesen Sensor wird ein sogenanntes Tachosignal erzeugt, mit dem die Drehzahl und Funktionalität des Lüfters überwacht werden kann. In diesem Artikel geht es um das Auswerten des Tachosignals mit dem Arduino.
Wie funktionieren Interrupts am Arduino
Funktion von PullUp und PullDown Widerständen
Funktion von Spannungsteilern
Der Drehzahlsensor besteht meist aus einem Hall-Sensor und einem Transistor, der das Ausgangssignal schaltet. Bei den meisten Lüftern wird der Sensor pro Umdrehung zweimal ausgelöst und gibt daher zwei Impulse auf die Signalleitung. Damit das Signal von einem Mikrocontroller oder vom Oszilloskop ausgewertet werden kann, muss auf der Signalleitung eine positive Spannung anliegen. Sobald der Sensor schaltet, wird dann die Spannung hinuntergezogen und es kommt zu einem Low-Signal. Wenn der Sensor nicht aktiv ist, liegt die volle Spannung auf der Leitung, was als High-Signal interpretiert wird. Damit es zu keinem Kurzschluss kommt bzw. der Strom möglichst gering bleibt, muss ein entsprechender Vorwiderstand im Kiloohm Bereich zwischen Signalleitung und dem Pluspol geschaltet werden. Der folgende Screenshot zeigt das Tachosignal des Lüfters:
Wie bereits erwähnt wird ein Pull-Up Widerstand (R2) benötigt, um ein digitales Signal erzeugen zu können. Da die meisten Lüfter mit 12 Volt betrieben werden, ist auch die Signalspannung gleich hoch. Dies ist jedoch für einen Mikrocontroller viel zu hoch und muss so angepasst werden, dass bei der maximalen Betriebsspannung die Signalspannung je nach Mikrocontroller bei höchstens 5 oder 3,3 Volt liegt. Ein weiterer Widerstand (R1) wird in Serie zu R2 geschaltet und bildet somit den Spannungsteiler, der die Pegelspannung entsprechend reduziert. Die Tachosignalleitung wird durch den Spannungsteiler weiter zum digitalen Input des Mikrocontrollers geführt.
Der Arduino muss mit der Masse von der Versorgungsspannung des Lüfters verbunden sein. Wird das Signal über Interrupts ausgewertet, muss sichergestellt sein, dass der Pin dies auch unterstützt. Beim Arduino Uno kann dafür nur Pin 2 oder 3 verwendet werden.
Die Software für die Auswertung ist sehr einfach aufgebaut. Wie auch beim Anemometer Projekt ist hier die einfachste Lösung, wenn man mit Interrupts arbeitet. Interrupts werden beim Arduino Uno nur auf Pin 2 & 3 unterstützt. Der Beispielcode aktiviert die Zählung von Flankenwechsel (Low auf High) mit Interrupts und zählt pro Flanke um den Wert eins hoch. Nach einer Sekunde wird die Messung beendet und die Interrupt-Funktion aufgehoben. Da vom Lüfter pro Umdrehung zwei Flanken zu erwarten sind, muss der Zähler anschließend durch zwei geteilt werden. Die Messzeit beträgt eine Sekunde. Damit daraus die Umdrehungen pro Minute (RPM) errechnet werden können, muss der zuvor geteilte Zähler mit 60 Multipliziert werden. Anschließend werden die Ergebnisse im Serial Monitor ausgegeben.
//More information at: https://www.aeq-web.com/ const int SensorPin = 2; //Define Interrupt Pin (2 or 3 @ Arduino Uno) int InterruptCounter, rpm; void setup(){ delay(1000); Serial.begin(9600); Serial.print("Counting"); } void loop() { meassure(); } void meassure() { InterruptCounter = 0; attachInterrupt(digitalPinToInterrupt(SensorPin), countup, RISING); delay(1000); detachInterrupt(digitalPinToInterrupt(SensorPin)); rpm = (InterruptCounter / 2) * 60; display_rpm(); } void countup() { InterruptCounter++; } void display_rpm() { Serial.print("Counts: "); Serial.print(InterruptCounter, 1); Serial.print(" RPM: "); Serial.println(rpm); }
Der Beispielcode liefert brauchbare Ergebnisse. Der beim Test verwendete Lüfter hat eine Schwankung von rund 60 RPM. Grund dafür ist u. a. die recht kurze Messzeit. Erhöht man die Messzeit auf etwa 3 Sekunden, so ist die Schwankung aufgrund eines genaueren Mittelwertes deutlich geringer.
Für die Steuerung der Drehzahl wird gerne PWM verwendet. Sobald hier mit PWM gearbeitet wird, egal ob auf der Plusleitung oder an der Masse, kommt es zu Störungen am Tachosignal. Das Problem dabei ist, dass der interne Hall-Sensor auf der gleichen Spannungsversorgung liegt. Die Summe des Ausgangssignals ist dann PWM+Tachosignal. Es gebe dazu folgende Lösungen, um diese Störungen bei 3-Pin Lüftern zu kompensieren:
Alex, der Gründer von AEQ-WEB. Seit über 10 Jahren beschäftigt er sich mit Computern und elektronischen Bauteilen aller Art. Neben den Hardware-Projekten entwickelt er auch Webseiten, Apps und Software für Computer.
PT1000 Sensoren können nicht direkt analog mit einem Mikrocontroller gemessen werden. Wie baut man einen Messwandler mit dem LM358 für den PT1000 und Arduino?
WeiterlesenMit einem Mikrocontroller wie dem Arduino, einer kleinen Schaltung und entsprechender Software kann die Windgeschwindigkeit über ein Anemometer gemessen werden
Weiterlesen05.03.2025
25.02.2025
25.02.2025
12.02.2025
AEQ-WEB ist ein Blog von Alex & Andi, der sich mit Elektronik, Funk & Software beschäftigt
WeiterlesenDiese Website verwendet Cookies. Durch die weitere Nutzung der Website stimmen Sie der Verwendung von Cookies zu. Weitere Informationen finden Sie in unserer Datenschutzerklärung
AEQ-WEB © 2015-2025 All Right Reserved