Inhaltsverzeichnis:
- Schritt 1: Wählen Sie einen Sigal-Draht
- Schritt 2: Erweitern Sie den Draht zum Arduino-Board
- Schritt 3: Signalanalyse
- Schritt 4: Codieren Sie Ihre Signalanalyse
- Schritt 5: Identifizieren Sie einen Filter
- Schritt 6: Filtern: Teil 1
- Schritt 7: Filtern: Teil 2
- Schritt 8: Filtern: Teil 3
- Schritt 9: Filtern: Teil 4
Video: Verwenden Sie Arduino, um die Motordrehzahl anzuzeigen - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
In dieser Anleitung wird beschrieben, wie ich ein Arduino UNO R3, ein 16x2-LCD-Display mit I2C und einen LED-Streifen verwendet habe, der als Drehzahlmesser und Schaltlicht in meinem Acura Integra-Rennwagen verwendet werden soll. Es wurde in Bezug auf jemanden geschrieben, der Erfahrung mit Arduino-Software oder Codierung im Allgemeinen, der mathematischen Software MATLAB und dem Erstellen oder Ändern elektrischer Schaltungen hat. In Zukunft kann dies überarbeitet werden, um es für jemanden mit wenig oder keiner Erfahrung mit diesen Themen leichter verständlich zu machen.
Schritt 1: Wählen Sie einen Sigal-Draht
Sie müssen ein Signal erhalten, das mit der Motordrehzahl korreliert. Es ist möglich, ein System hinzuzufügen, das die Motordrehzahl misst, aber es ist viel praktischer, ein vorhandenes Kabel anzuzapfen, das Motordrehzahlinformationen überträgt. Ein einzelnes Auto kann dafür mehrere Quellen haben, und es kann sogar von Jahr zu Jahr bei einem einzelnen Fahrzeugmodell stark variieren. Für dieses Tutorial verwende ich das Beispiel meines Autos, einen spurmodifizierten 2000 Acura Integra LS. Ich habe festgestellt, dass an meinem Motor (B18B1 mit OBD2) eine ungenutzte Spannung vorhanden ist, die 12 V hoch ist und nach einer vollständigen Umdrehung auf 0 V abfällt.
Dinge, die helfen, ein potenzielles Motordrehzahlsignal zu identifizieren:
- Schaltplan für Ihr Fahrzeug
- Durchsuchen von Foren für Ihr Fahrzeug mit Motor-/ECU-Signalen
- Ein freundlicher Mechaniker oder Autoliebhaber
Schritt 2: Erweitern Sie den Draht zum Arduino-Board
Sobald Sie ein geeignetes Signal ausgewählt haben, müssen Sie es dorthin erweitern, wo Sie Ihr Arduino-Board platzieren. Ich beschloss, meine im Fahrzeug zu platzieren, wo sich früher das Radio befand, also führte ich das neue Kabel vom Motor durch eine Gummitülle in der Brandmauer und direkt zum Radiobereich. Da es bereits zahlreiche Anleitungen zum Abisolieren, Löten und Schützen von Leitungen gibt, werde ich diesen Vorgang nicht erklären.
Schritt 3: Signalanalyse
Hier kann es kompliziert werden. Ein allgemeines Verständnis von Signalanalyse und -steuerung wird Ihnen viel helfen, ist aber mit wenig Wissen machbar.
Das gewählte Signalkabel wird höchstwahrscheinlich nicht den genauen Wert der Motordrehzahl ausspucken. Es muss so geformt und modifiziert werden, dass die genaue Anzahl der Motordrehzahlen angegeben wird, die Sie möchten. Da jedes Fahrzeug und jedes gewählte Signalkabel unterschiedlich sein kann, werde ich ab diesem Punkt erklären, wie ich das Positionssignal vom Verteiler auf meinem Integra verwendet habe.
Mein Signal beträgt normalerweise 12 V und fällt auf 0 V ab, wenn eine volle Umdrehung abgeschlossen ist. Wenn Sie die Zeit für eine volle Umdrehung oder einen vollen Zyklus kennen, kann dies mit einigen grundlegenden Konzepten leicht in Umdrehungen/min übersetzt werden.
1 / (Sekunden pro Zyklus) = Zyklen pro Sekunde oder Hz
Umdrehungen pro Minute = Hz * 60
Schritt 4: Codieren Sie Ihre Signalanalyse
Dieses Verfahren erfordert das Abrufen der Zeit, die das Eingangssignal benötigt, um einen vollen Zyklus abzuschließen. Glücklicherweise hat die Arduino IDE-Software einen Befehl, der genau das tut, PulseIn.
Dieser Befehl wartet darauf, dass ein Signal einen Schwellenwert überschreitet, beginnt mit dem Zählen und stoppt den Zählvorgang, wenn der Schwellenwert erneut überschritten wird. Es gibt einige Details, die bei der Verwendung des Befehls beachtet werden sollten, daher werde ich hier einen Link zu Informationen von PulseIn einfügen:
PulseIn gibt einen Wert in Mikrosekunden zurück, und um die Mathematik einfach zu halten, sollte dieser sofort in normale Sekunden umgewandelt werden. Nach der Mathematik im vorherigen Schritt kann diese Zeitdauer direkt mit RPM gleichgesetzt werden.
Hinweis: Nach Versuch und Irrtum habe ich festgestellt, dass der Verteiler für jede einzelne Umdrehung der Motorkurbelwelle zwei Umdrehungen durchführt, also habe ich meine Antwort einfach durch 2 geteilt, um dies zu berücksichtigen.
Schritt 5: Identifizieren Sie einen Filter
Wenn Sie Glück haben, wird Ihr Signal kein "Rauschen" (Schwankungen) haben und Ihre Motordrehzahl wird genau sein. In meinem Fall kam viel Lärm vom Verteiler, der oft Spannungen lieferte, die weit von den Erwartungen entfernt waren. Dies führt zu sehr falschen Messwerten der tatsächlichen Motordrehzahl. Dieses Rauschen muss herausgefiltert werden.
Nach einiger Signalanalyse kam fast das gesamte Rauschen bei Frequenzen (Hz), die weit höher waren als das, was der Motor selbst ausgab (was für die meisten echten dynamischen Systeme gilt). Dies bedeutet, dass ein Tiefpassfilter ein idealer Kandidat dafür ist.
Ein Tiefpassfilter lässt tiefe Frequenzen (erwünscht) durch und dämpft die hohen Frequenzen (unerwünscht).
Schritt 6: Filtern: Teil 1
Das Entwerfen des Filters kann von Hand erfolgen, die Verwendung von MATLAB beschleunigt dies jedoch erheblich, wenn Sie Zugriff auf die Software haben.
Ein Tiefpassfilter kann einer Übertragungsfunktion (oder einem Bruch) im Laplace-Bereich (Frequenzbereich) gleichgesetzt werden. Die Eingangsfrequenz wird mit diesem Bruchteil multipliziert und der Ausgang ist ein gefiltertes Signal, das nur die Informationen enthält, die Sie verwenden möchten.
Die einzige Variable in der Funktion ist tau. Tau ist gleich 1 / Omega, wobei Omega die gewünschte Grenzfrequenz ist (muss in Radiant pro Sekunde angegeben werden). Die Cutoff-Frequenz ist die Grenze, an der höhere Frequenzen entfernt und niedrigere Frequenzen beibehalten werden.
Ich stelle die Grenzfrequenz auf eine Drehzahl ein, die mein Motor nie erreichen wird (990 U/min oder 165 Hz). Die FFT-Diagramme zeigen ungefähr, welche Frequenzen mein Rohsignal trug und welche Frequenzen aus dem Filter kamen.
Schritt 7: Filtern: Teil 2
Hier wurde aus Zeitgründen wieder MATLAB eingesetzt. Die Grenzfrequenz wird definiert und daraus die resultierende Übertragungsfunktion angezeigt. Beachten Sie, dass dieser Bruchteil nur für die Laplace-Domäne gilt und nicht direkt auf einem zeitbasierten Mikrocontroller wie Arduino UNO R3 verwendet werden kann.
Schritt 8: Filtern: Teil 3
MATLAB verfügt über einen Befehl, der eine kontinuierliche Funktion (Frequenzbereich) in eine diskrete Funktion (Zeitbereich) umwandelt. Die Ausgabe dieses Befehls liefert eine Gleichung, die leicht in den Arduino-IDE-Code integriert werden kann.
Schritt 9: Filtern: Teil 4
Fügen Sie in der Arduino-Skizze die Variablen u und y vor dem Setup ein. Der float-Befehl definiert einfach, wie die Variable Daten speichert (Dinge wie Maximalwert, Dezimalzahlen usw.) und ein Link zu weiteren Informationen dazu wird hier bereitgestellt: https://www.arduino.cc/reference/en/language /varie…
Beziehen Sie in die Schleife, in der die Umwandlung des Rohsignals in die Motordrehzahl stattfindet, die u-Variable und die y-Vielfachegleichung ein. Es gibt mehrere Möglichkeiten, dies zu verwenden, aber die Variable u sollte gleich dem gemessenen Roheingangssignal gesetzt werden, und die Variable y ist der gefilterte Wert.
Empfohlen:
So ändern Sie Websites, um anzuzeigen, was Sie wollen.: 3 Schritte
So ändern Sie Websites, um anzuzeigen, was Sie wollen.: Oh, der Spaß, den Sie haben können … Dies ist eine verrückte einfache und einfache Möglichkeit, Websites in Ihrem Browser so zu ändern, dass alles angezeigt wird, was Sie möchten. dies ändert die Website nirgendwo anders als in Ihrem Browser, und wenn Sie die Webseite neu laden, geht sie zurück zu
So verwenden Sie Sensor21.com für die Sensorüberwachung: 3 Schritte
So verwenden Sie Sensor21.com für die Sensorüberwachung: Wenn Sie eine Plattform zur Überwachung und Steuerung entfernter Geräte und Sensoren für Ihre DIY-Projekte benötigen, ist sensor21.com möglicherweise eine gute Lösung für Sie. Es hat eine gebrauchsfertige benutzerfreundliche GUI. Einfach Sensoren hinzuzufügen und mit Grafiken zu überwachen. Stellen Sie Wecker für e
So erhalten Sie Musik von fast jeder (Haha) Website (solange Sie sie hören können, können Sie sie bekommen Okay, wenn sie in Flash eingebettet ist, können Sie es möglicherweise nicht) BEARBEITET!!!!! Hinzugefügte Informationen: 4 Schritte
So erhalten Sie Musik von fast jeder (Haha) Website (solange Sie sie hören können, können Sie sie bekommen … Okay, wenn sie in Flash eingebettet ist, können Sie es möglicherweise nicht) BEARBEITET!!!!! Zusätzliche Informationen: Wenn Sie jemals auf eine Website gehen und ein Lied abspielen, das Sie mögen und es wollen, dann ist hier das anweisbare für Sie, nicht meine Schuld, wenn Sie etwas durcheinander bringen (nur so wird es passieren, wenn Sie ohne Grund anfangen, Dinge zu löschen) ) Ich konnte Musik für
Hacken Sie, um alle Schritte eines Instructable anzuzeigen, ohne sich anzumelden
Hacken Sie, um alle Schritte eines Instructable anzuzeigen, ohne sich anzumelden!: Hier ist ein kleiner Hack, der Ihnen unnötige Minuten beim Anmelden spart. Im Grunde können Sie alle Schritte auf einer Seite eines Instructable anzeigen, ohne sich anzumelden und OHNE zu verwenden jede 'Hacking'-Software! Bitte beachten Sie, dass dies nur ein kleiner Trick ist
So bauen Sie eine Uhr, die die Zeit an die Wand projiziert – wikiHow
So bauen Sie eine Uhr, die Zeit an die Wand projiziert: Dieses Instructable zeigt Ihnen, wie Sie eine Projektoruhr bauen. Mit diesem Gerät können Sie die Zeit an die Wand projizieren. Basierend auf einem kleinen LCD-Wecker (nicht zu klein, sondern kann nicht projiziert und bearbeitet werden) ist dies eine gute Möglichkeit