Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Das Home System 3000 ist ein Gerät, das einen Arduino, einen Temperatursensor, einen Piezo-Summer, einen optischen Detektor/Fototransistor und einen Servo verwendet, um Möglichkeiten zur Verbesserung der Energieeffizienz zu Hause anzuzeigen.
Schritt 1: Temperatursensor
· Verlegen Sie Ihre Strom- und Erdungskabel von
der Mikrocontroller an der Seite des Brotbretts
· Setzen Sie den Temperatursensor in das Steckbrett ein und verlegen Sie die entsprechenden Strom- und Erdungskabel entsprechend
· Beachten Sie, dass der Temperatursensor drei Stifte hat und der mittlere Stift einen Draht hat, der vom Anschluss "A0" führt.
· Code für Temperatursensor:
answer = questdlg('Bitte Arduino und Servo-Startcode ausführen', 'Antwort', 'Ok', 'Ok')
Prompt = 'Drücken Sie eine beliebige Taste, um zu beginnen'
Pause
prompt1 = 'Mindesttemperatur einstellen'
x = Eingabe (Eingabeaufforderung1)
prompt2 = 'Maximaltemperatur einstellen'
y = Eingabe (Eingabeaufforderung2)
prompt3 = 'beliebige Taste drücken, um zu beginnen'
Pause
Abbildung
h = animierte Linie;
ax = gca;
ax. YGrid = 'an';
ax. YLim = [65 85];
halt = falsch;
startTime = datetime('jetzt');
während ~stop
% aktuellen Spannungswert lesen
v = readVoltage(a, 'A0');
% Temperatur aus Spannung berechnen (basierend auf Datenblatt)
TempC = (v - 0,5)*100;
TempF = 9/5*TempC + 32;
% Aktuelle Uhrzeit abrufen
t = datetime('now') - startTime;
% Punkte zur Animation hinzufügen
addpoints(h, datenum(t), TempF)
% Achsen aktualisieren
ax. XLim = Datenum([t-Sekunden(15) t]);
datetick('x', 'limits')
gezeichnet
% Stoppbedingung prüfen
stop = readDigitalPin(a, 'D12');
Schritt 2: Summer
· Draht im Summer, der verwendet wird, um einen extrem hohen oder extrem niedrigen Temperaturmesswert zu signalisieren
· Es wird kein Kabel von der Plus-Spalte zur Plus-Seite des Summers geführt
· Stattdessen wird ein Kabel von der positiven Seite des Summers zu einem Anschluss mit der Bezeichnung "11" geführt.
Dies wird später verwendet, um die Position des Summers im geschriebenen Code abzurufen.
· Code für Summer:
wenn TempF >= y
disp('Tür schließen, es ist heiß')
playTone(a, 'D11', 500, 1)
sonst TempF <= x
disp('Tür schließen, es ist kalt')
playTone(a, 'D11', 250, 1)
Ende
Ende
Schritt 3: Optischer Detektor / Fototransistor
· Dieser Sensor benötigt im Gegensatz zu den anderen Widerstände
· Stellen Sie sicher, dass alle vier Zinken des Sensors in der Schleife enthalten sind, nachdem Sie die Drähte eingesteckt haben
· Der Sensor erkennt eine Lichtänderung, die eine Bewegung darstellt, und zeichnet diese als Eingabe auf
· Code für optischen Detektor/Phototransistor:
klar a
a = arduino('/dev/tty.usbserial-DN01DVI2', 'Uno', 'Bibliotheken', 'Servo');
Prompt = 'Lichtschwellenschwelle einstellen'
z = Eingabe (Eingabeaufforderung)
Lichtpegel = 0
während lightLevel ~= -1
lightLevel = readVoltage (a, 'A1')
if lightLevel >= z
answer = questdlg('möchte AC ändern?', 'Ja', 'Nein')
Antwort wechseln
Fall 'Ja'
answer2 = questdlg('AC hoch oder runter drehen?', 'response', 'down', 'Up', 'Up')
Antwort wechseln2
Fall 'Unten'
s = Servo(a, 'D10');
für Winkel = 0:.1:.5
writePosition(s, Winkel);
aktuelle_position = readPosition(s);
aktuelle_position = aktuelle_position * 180;
% aktuelle Position des Servomotors drucken
fprintf('Aktuelle Position ist %d\n', current_position);
% kleine Verzögerung ist erforderlich, damit das Servo am positioniert werden kann
% Winkel, der ihm gesagt wurde.
Pause(2);
Ende
% Motor auf 0-Winkelposition zurückbringen
writePosition(s, 0);
klar
Prompt = 'Drücken Sie eine beliebige Taste, um fortzufahren'
questdlg('AC abgelehnt', 'Antwort', 'Ok', 'Ok')
Fall 'oben'
s = Servo(a, 'D10');
für Winkel =.5:.1:1
writePosition(s, Winkel);
aktuelle_position = readPosition(s);
aktuelle_position = aktuelle_position * 180;
% aktuelle Position des Servomotors drucken
fprintf('Aktuelle Position ist %d\n', current_position);
% kleine Verzögerung ist erforderlich, damit das Servo am positioniert werden kann
% Winkel, der ihm gesagt wurde.
Pause(2);
Ende
Schritt 4: Servo
· Das Servo repräsentiert
eine Klimaanlage und ist ein Ausgang des Bewegungserkennungseingangs
· Es erfordert ein positives Kabel, ein Erdungskabel und ein Kabel von Port "D9" zum Servo
· Code für Servo:
% Motor auf 0-Winkelposition zurückbringen
writePosition(s, 0);
klar
Prompt = 'Drücken Sie eine beliebige Taste, um fortzufahren'
questdlg('AC aufgetaucht', 'Antwort', 'Ok', 'Ok')
Ende
Ende
Pause
brechen
Ende
Ende
*Besonderer Hinweis: Ein Teil des Codes für das Servo ist mit dem Code für den optischen Detektor/Fototransistor integriert.