Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-23 12:52
Als Teil einer Demonstration der Fähigkeit unseres Teams, ein Modell eines intelligenten Zuggeräts für Marketingzwecke zu erstellen, bestand das Ziel darin, ein System zu entwickeln, in dem ein Temperatursensor Daten aus der Schaltung liest und die Informationen in einen Temperaturwert umwandelt, der beides ist auf einem beleuchteten Bildschirm angezeigt und darauf fokussiert, ob sich ein Lüfter ein- oder ausschaltet. Der Zweck besteht darin, die Fahrbedingungen der Passagiere durch ein automatisiertes System zu unterstützen, das auch die Temperatur in der unmittelbaren Umgebung anzeigt.
Durch die Verwendung eines Arduino-Mikrocontroller-Kits und der MATLAB-Versionen 2016b und 2017b konnten wir diese Ergebnisse relativ erfolgreich demonstrieren.
Schritt 1: Ausrüstung
Mikrocontroller-Kit mit folgenden Komponenten:
-Sparkfun Rotes Brett
-Sparkfun-Breadboard
-LCD-Platine
-Potentiometer
-Temperatursensor
-Servo
-USB/Arduino-Adapter
-Überbrückungsdrähte (mindestens 25)
Laptop (Windows 10) mit USB-Eingang
3D-gedrucktes Objekt (optional)
Schritt 2: Mikrocontroller-Setup
Bedenken Sie Folgendes: Das gesamte System besteht aus einzelnen Einheiten, die jeweils einen signifikanten Faktor für das Endergebnis haben. Aus diesem Grund wird dringend empfohlen, ein Bild der Schaltung zu erstellen, bevor Sie Drähte in einem verworrenen Durcheinander anbringen.
Bilder jedes einzelnen Modells finden Sie im Handbuch des Microcontroller-Toolkits oder auf seiner Website unter
Beginnen Sie mit dem Anbringen des Temperatursensors, des Potentiometers, der Servoanschlüsse und des LCD auf der Platine. Aufgrund der Größe und der Anforderungen an die Anzahl der Drähte des LCDs wird empfohlen, es auf seiner eigenen Hälfte des Steckbretts mit den anderen Teilen auf der anderen Hälfte zu platzieren und das Potentiometer in einem Bereich zu platzieren, in dem sich jemand befinden kann leicht den Knopf drehen.
Als Referenz:
LCD: c1-16
Servo: i1-3 (GND + -)
Temperatursensor: i13-15 (- GND +)
Potentiometer: g24-26 (- GND +)
Beginnen Sie als Nächstes mit dem Anschließen von Überbrückungsdrähten an jeden Pin der Mikrocontroller-Einheiten; Obwohl im Gesamtkonzept willkürlich, wurde das Design mit diesen wichtigen Verbindungen erstellt:
Potentiometer an LCD anschließen: f25 -- e3
Servo-GND-Draht: j1 -- Digitaleingang 9
Temperatursensor GND: j14 -- Analogeingang 0
LCD-Eingänge: e11-e15 -- Digitaleingang 2-5
e4 -- Digitaleingang 7
e6 -- Digitaleingang 6
(Hinweis: Bei Erfolg sollten beide Lichter am Rand des LCDs aufleuchten und das Potentiometer kann helfen, seine Helligkeit anzupassen, sobald es vom Adapter mit Strom versorgt wird.)
Optional: Als Teil einer Anforderung wurde ein 3D-gedrucktes Objekt verwendet. Um eine mögliche Beschädigung der zerbrechlicheren Teile zu vermeiden, wurde ein verlängertes Gehäuse als Hülle um das LCD gelegt. Die Abmessungen des LCD-Bildschirms ergaben ungefähr 2-13/16" x 1-1/16" x 1/4", und daher wurde nur die Höhe signifikant geändert. Wenn ein 3D-Drucker verfügbar ist, ziehen Sie in Betracht, einen persönlichen Gegenstand hinzuzufügen Beachten Sie außerdem, dass die Maße abweichen können.
Schritt 3: MATLAB-Setup
Installieren Sie eine aktualisierte Version von MATLAB (2016a und höher), verfügbar auf der MathWorks-Website https://www.mathworks.com/products/matlab.html?s_tid=srchtitle. Gehen Sie nach dem Öffnen zu Add-Ons auf der Registerkarte Home und laden Sie "MATLAB Support Package for Arduino Hardware" herunter, damit die Mikrocontrollerbefehle zugänglich sind.
Nach Abschluss kann ein Test durchgeführt werden, um die Konnektivität des Mikrocontrollers mit dem Computer/Laptop zu ermitteln. Nachdem Sie sie mit dem USB-Adapter aus dem Toolkit verbunden haben, fügen Sie den Befehl "fopen(serial('nada'))" ein.
Eine Fehlermeldung wird angezeigt, die den Connector als "COM#" angibt, der zum Erstellen eines Arduino-Objekts erforderlich ist, solange es sich zu jeder Zeit um dieselbe Eingabe handelt.
Da das LCD keine direkte Verbindung zur Arduino-Bibliothek hat, muss eine neue Bibliothek erstellt werden, um Meldungen anzuzeigen. Eine Empfehlung ist, eine LCDAddon.m-Datei aus dem LCD-Beispiel im MATLAB-Hilfefenster zu erstellen, nachdem Sie "Arduino LCD" gesucht und im Ordner +arduinoioaddons abgelegt haben, oder verwenden Sie den angehängten komprimierten Ordner und kopieren Sie den gesamten Inhalt in das oben genannte Mappe.
Bei Erfolg ist der Code zum Erstellen eines Arduino-Objekts in MATLAB wie unten gezeigt.
a=arduino('com#', 'uno', 'Bibliotheken', 'BeispielLCD/LCDAddon');
Schritt 4: Funktionen
Erstellen Sie eine MATLAB-Funktion. Für die Eingänge verwenden wir die Variablen "eff" und "T_min"; für Ausgaben, obwohl im Gesamtdesign unnötig, haben wir die Variable "B" verwendet, um Daten aus den Ergebnissen zu enthalten. Der Eingang "eff" ermöglicht die Steuerung der maximalen Geschwindigkeit des Servos und der Eingang "T_min" steuert die gewünschte minimale Temperatur. Der Wert „B“sollte also eine Matrix ergeben, die drei Spalten für die Zeit, die Temperatur und den Wirkungsgrad des Ventilators enthält. Als Bonus zum Detail enthält der unten aufgeführte Code auch eine if-Anweisung, sodass die Lüfterdrehzahl um fünfzig Prozent reduziert wird, wenn sie sich der gewünschten Mindesttemperatur nähert.
Wenn alle Eingänge und Jumperdrähte genau platziert sind und der Port der Arduino-Verbindung COM4 ist und der Funktionsname "fanread" ist, sollte der folgende Code ausreichen:
Funktion [B] = Fanread(Tmin, eff)
klar a; clear lcd;a=arduino('com4', 'uno', 'Bibliotheken', 'BeispielLCD/LCDAddon');
t=0; t_max=15; % Zeit in Sekunden
lcd=Addon(a, 'BeispielLCD/LCDAddon', {'D7', 'D6', 'D5', 'D4', 'D3', 'D2'});
initializeLCD(lcd, 'Zeilen', 2, 'Spalten', 2);
wenn eff>=1 || e<0
error('Lüfter wird nicht aktiviert, wenn eff nicht zwischen 0 und 1 eingestellt ist.')
Ende
für t=1:10 % Anzahl Schleifen/Intervalle
klar c; % verhindern Wiederholungsfehler
v = Lesespannung (a, 'A0');
TemperaturC = (v-0,5)*100; % Schätzung für Spannungsbereiche 2,7-5,5 V
wenn TempC>Tmin wenn TempC
c=['Temp ', num2str(TempC, 3), 'C On'];
writePWMDutyCycle(a, 'D9', eff/2); % Servo mit halber Geschwindigkeit einschalten
Drehzahl = 50;
anders
c=['Temp ', num2str(TempC, 3), 'C On'];
writePWMDutyCycle(a, 'D9', eff); % Servo mit der angegebenen Geschwindigkeit einschalten
Drehzahl = 100;
Ende
anders
c=['Temp ', num2str(TempC, 3), 'C Aus'];
writePWMDutyCycle(a, 'D9', 0); % herunterfahren, wenn bereits eingeschaltet
spd=0;
Ende
printLCD (LCD, c);
Pause(3); % drei Sekunden vergehen pro Schleife
Zeit (t) = t.*3;
tempplot(t)=TempC;
Akt(t)=spd;
Nebenhandlung(2, 1, 1)
plot(time, tempplot, 'b-o') % Liniendiagramm
Achse([0 33 0 40])
xlabel('Zeit (Sekunden)')
ylabel('Temperatur (C)')
festhalten
plot([0 33], [Tmin Tmin], 'r-')
festhalten
plot([0 33], [Tmin+2 Tmin+2], 'g-')
Nebenhandlung(2, 1, 2)
bar(Zeit, Akt) % Balkendiagramm
xlabel('Zeit (Sekunden)')
ylabel('Effizienz (%)')
Ende
B=transponieren([Zeit;Tempplot;Akt]);
Ende
Nun, da die Funktion abgeschlossen ist, ist es Zeit zu testen.
Schritt 5: Testen
Testen Sie nun die Funktion im Befehlsfenster, indem Sie "function_name(input_value_1, input_value_2)" einfügen und beobachten. Stellen Sie sicher, dass noch kein Arduino-Objekt vorhanden ist; Wenn ja, verwenden Sie den Befehl "clear a", um es zu entfernen. Wenn Fehler auftreten, prüfen Sie, ob Stecker an der falschen Stelle sitzen oder ob die falschen digitalen oder analogen Eingänge verwendet werden. Es wird erwartet, dass die Ergebnisse variieren, obwohl dies durch die Platzierung bestimmter Überbrückungsdrähte und des Temperatursensors verursacht werden kann.
Die Erwartungen an die Ergebnisse sollten zu Änderungen in der Leistung des Servos und der Daten auf dem LCD führen. In jedem 3-Sekunden-Intervall sollte eine Textzeile die Temperatur in Celsius anzeigen und ob der Lüfter aktiv ist oder nicht, während der Lüfter mit voller, halber oder keiner Geschwindigkeit läuft. Die Daten sollten höchstwahrscheinlich nicht konsistent sein. Wenn Sie jedoch verschiedene Ergebnisse wünschen, platzieren Sie den "Tmin" -Wert nahe der durchschnittlichen Temperatur, die von der Schaltung erzeugt wird.
Schritt 6: Fazit
Obwohl es eine mühsame Aufgabe war, die durch Versuch und Irrtum zu bewältigen war, erwiesen sich die Endergebnisse als ziemlich interessant und zufriedenstellend. Ein System als solches hilft zu veranschaulichen, wie viele komplizierte Maschinen oder sogar einige ihrer Teile als eine Ansammlung unabhängiger Teile betrachtet werden können, die zusammengefügt werden, um ein bestimmtes Ziel zu erreichen.
Aufgrund des eher vereinfachten Designs des endgültigen Projekts können diejenigen, die daran interessiert sind, seine Leistung zu verbessern, Optimierungen und Änderungen am Endprodukt vornehmen, die das Projekt besser und aufwendiger machen können. Es zeigt jedoch Schwächen in der Schaltung auf, wie z. B. die Aktivierung des Servos, die zu sporadischen Schwankungen der Spannungsanzeige der Schaltung führt, die dazu führen können, dass das System niemals identische Ergebnisse liefert. Außerdem gab es Probleme mit der Anzeige einer Änderung der Servogeschwindigkeit, wenn "eff" auf 0,4 und höher eingestellt ist. Wäre ein Temperatur- und Feuchtigkeitssensor verwendet worden, wäre das endgültige Modell komplizierter, hätte aber konsistentere Werte. Dies ist jedoch eine Erfahrung, die zeigt, dass eine komplexe Maschine als Kombination ihrer einfachen Teile funktionieren kann.
Empfohlen:
Einen Arduino-Gitarren-Tuner herstellen – wikiHow
So bauen Sie einen Arduino-Gitarren-Tuner: Dies sind die Anweisungen, um einen Gitarren-Tuner aus einem Arduino und mehreren anderen Komponenten zu machen. Mit Grundkenntnissen in Elektronik und Codierung können Sie dieses Gitarrenstimmgerät herstellen. Zuerst müssen Sie wissen, was die Materialien sind. Ma
ALARMA ARDUINO CON SENSOR DE MOVIMIENTO, SIRENA Y AVISO AL TLF. MÓVIL: 9 Schritte
ALARMA ARDUINO CON SENSOR DE MOVIMIENTO, SIRENA Y AVISO AL TLF. MÓVIL: Este proyecto consiste en a alarma básica que Detecta presencia, activa una sirena de 108dB y visa al usuario mediante un SMS (opcional). Permite también el control remoto básico por parte del usuario a través de SMS (encendido, apagado, reinicio
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 2 - Temperatur- / Feuchtigkeitsmonitor - Rev 3: 7 Schritte
Easy Very Low Power BLE in Arduino Teil 2 – Temperatur-/Feuchtigkeitsmonitor – Rev 3: Update: 23. November 2020 – Erster Austausch von 2 x AAA-Batterien seit 15. Januar 2019 dh 22 Monate für 2x AAA AlkalineUpdate: 7. April 2019 – Rev 3 of lp_BLE_TempHumidity, fügt Datum/Uhrzeit-Plots hinzu, verwendet pfodApp V3.0.362+ und automatische Drosselung, wenn
Arduino-Programmierung über das Handy -- Arduinodroid -- Arduino-Ide für Android -- Blinzeln: 4 Schritte
Arduino-Programmierung über das Handy || Arduinodroid || Arduino-Ide für Android || Blink: Bitte abonnieren Sie meinen Youtube-Kanal für weitere Videos…… Arduino ist ein Board, das direkt über USB programmiert werden kann. Es ist sehr einfach und günstig für College- und Schulprojekte oder sogar für Produktprototypen. Viele Produkte bauen zunächst darauf für i