Sommario:
- Passaggio 1: attrezzatura
- Passaggio 2: configurazione del microcontrollore
- Passaggio 3: configurazione di MATLAB
- Passaggio 4: funzioni
- Passaggio 5: test
- Passaggio 6: conclusione
Video: Modello di aria condizionata Arduino: 6 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Come parte di una dimostrazione della capacità del nostro team di creare un modello di un dispositivo treno intelligente per scopi di marketing, l'obiettivo era creare un sistema in cui un sensore di temperatura legge i dati dal circuito e converte le informazioni in un valore di temperatura che è sia visualizzato su uno schermo illuminato e focalizzato sull'accensione o lo spegnimento di un ventilatore. Lo scopo è quello di aiutare ad accogliere le condizioni di guida dei passeggeri tramite un sistema automatizzato che agisce anche per visualizzare la temperatura nelle immediate vicinanze.
Utilizzando un kit di microcontrollori Arduino e le versioni MATLAB 2016b e 2017b, siamo stati in grado di dimostrare questi risultati con relativo successo.
Passaggio 1: attrezzatura
Kit microcontrollore con quanto segue:
-Sparkfun Tavola Rossa
-Sparkfun tagliere
-Scheda LCD
-Potenziometro
-Termometro
-Servo
-Adattatore USB/Arduino
- Ponticelli (25, minimo)
Laptop (Windows 10) con ingresso USB
Oggetto stampato in 3D (opzionale)
Passaggio 2: configurazione del microcontrollore
Considera questo: l'intero sistema è composto da singole unità che applicano ciascuna un fattore significativo verso il risultato finale. Per questo motivo, si consiglia vivamente di impostare un'immagine del circuito prima di collegare i fili in un disordine contorto.
Le immagini di ogni singolo modello possono essere trovate nel manuale del kit di strumenti del microcontrollore o sul suo sito Web all'indirizzo
Inizia con il collegamento del sensore di temperatura, potenziometro, connettori servo e LCD sulla scheda. Si raccomanda che, a causa delle dimensioni del display LCD e dei requisiti per il numero di fili, sia posizionato sulla propria metà della breadboard con gli altri pezzi sull'altra metà e che il potenziometro si trovi in un'area in cui qualcuno possa girare facilmente la sua manopola.
Per riferimento:
LCD: c1-16
Servo: i1-3 (GND + -)
Sensore di temperatura: i13-15 (- GND +)
Potenziometro: g24-26 (- GND +)
Quindi, inizia a collegare i cavi dei ponticelli a ciascun pin delle unità del microcontrollore; sebbene arbitrario nel grande schema generale, il progetto è stato creato con queste importanti connessioni:
Collegamento del potenziometro all'LCD: f25 -- e3
Filo GND servo: j1 -- Ingresso digitale 9
GND sensore di temperatura: j14 -- Ingresso analogico 0
Ingressi LCD: e11-e15 -- Ingresso digitale 2-5
e4 -- Ingresso digitale 7
e6 -- Ingresso digitale 6
(Nota: in caso di successo, entrambe le luci sul bordo del display LCD dovrebbero lampeggiare e il potenziometro può aiutare a regolare la sua luminosità una volta alimentata dall'adattatore.)
Facoltativo: un oggetto stampato in 3D è stato utilizzato come parte di un requisito. Per evitare potenziali danni alle parti più fragili, è stata posizionata una custodia estesa come una manica attorno all'LCD. Le misurazioni dello schermo LCD si sono rivelate di circa 2-13/16 "x 1-1/16" x 1/4" e quindi solo l'altezza è stata modificata in modo significativo. Se una stampante 3D è prontamente disponibile, considera l'aggiunta di un oggetto personale, anche se non necessario. Inoltre, tieni presente che le misurazioni potrebbero differire.
Passaggio 3: configurazione di MATLAB
Installa una versione più aggiornata di MATLAB (2016a e successive), disponibile sul sito Web di MathWorks https://www.mathworks.com/products/matlab.html?s_tid=srchtitle. Una volta aperto, vai su Add-Ons nella scheda Home e scarica "MATLAB Support Package for Arduino Hardware" per rendere accessibili i comandi del microcontrollore.
Una volta completato, si può fare un test per trovare la connettività del microcontrollore al proprio computer/laptop. Dopo averli collegati con l'adattatore USB dal kit degli strumenti, inserire il comando "fopen(serial('nada'))."
Verrà visualizzato un messaggio di errore che indica il connettore come "COM#", che sarà necessario per creare un oggetto arduino purché sia sempre lo stesso input.
Poiché l'LCD non ha una connessione diretta alla libreria Arduino, è necessario creare una nuova libreria per visualizzare i messaggi. Una raccomandazione è quella di creare un file LCDAddon.m dall'esempio LCD trovato nella finestra di aiuto di MATLAB dopo aver cercato "Arduino LCD" e averlo posizionato nella cartella +arduinoioaddons, oppure utilizzare la cartella compressa allegata e copiare tutto il suo contenuto nella suddetta cartella.
In caso di successo, il codice per creare un oggetto Arduino in MATLAB è come mostrato di seguito.
a=arduino('com#', 'uno', 'Libraries', 'ExampleLCD/LCDAddon');
Passaggio 4: funzioni
Crea una funzione MATLAB. Per gli ingressi utilizziamo le variabili "eff" e "T_min"; per gli output, sebbene non necessari nella progettazione complessiva, abbiamo utilizzato la variabile "B" come modo per contenere i dati dei risultati. L'ingresso "eff" permette di gestire la velocità massima del servo, mentre l'ingresso "T_min" controlla la temperatura minima desiderata. Il valore "B" dovrebbe quindi produrre una matrice che contiene tre colonne per l'ora, la temperatura e l'efficienza del ventilatore. Inoltre, come bonus per i dettagli, il codice elencato di seguito ha anche un'istruzione if tale che la velocità della ventola verrà ridotta del cinquanta percento quando si avvicina alla temperatura minima desiderata.
Se tutti gli ingressi e i ponticelli sono posizionati esattamente e supponendo che la porta della connessione arduino sia COM4 e il nome della funzione sia "fanread", dovrebbe essere sufficiente il seguente codice:
funzione [B] = fanread(Tmin, eff)
chiaro un; clear lcd;a=arduino('com4', 'uno', 'Libraries', 'ExampleLCD/LCDAddon');
t=0; t_max=15; % tempo in secondi
lcd=addon(a, 'EsempioLCD/LCDaddon', {'D7', 'D6', 'D5', 'D4', 'D3', 'D2'});
inizializzaLCD(lcd, 'Righe', 2, 'Colonne', 2);
se eff>=1 || e<0
error('La ventola non si attiverà a meno che eff non sia impostato tra 0 e 1.')
fine
per t=1:10 % numero di loop/intervalli
chiaro c; % impedisce la ripetizione dell'errore
v=letturaTensione(a, 'A0');
TempC=(v-0,5)*100; Stima % per intervalli di tensione 2,7-5,5 V
se TempC>Tmin se TempC
c=['Temp ', num2str(TempC, 3), 'C On'];
writePWMDutyCycle(a, 'D9', eff/2); % di attivazione del servo a metà velocità
velocità=50;
altro
c=['Temp ', num2str(TempC, 3), 'C On'];
writePWMDutyCycle(a, 'D9', eff); % di attivazione del servo alla velocità indicata
velocità=100;
fine
altro
c=['Temp ', num2str(TempC, 3), 'C Off'];
writePWMDutyCycle(a, 'D9', 0); % spento se già acceso
spd=0;
fine
printLCD(lcd, c);
pausa (3); % tre secondi trascorsi per ciclo
tempo(t)=t.*3;
tempplot(t)=TempC;
act(t)=spd;
sottotrama(2, 1, 1)
plot(time, tempplot, 'b-o') % grafico a linee
asse([0 33 0 40])
xlabel('Tempo (secondi)')
ylabel('Temperatura (C)')
aspettare
plot([0 33], [Tmin Tmin], 'r-')
aspettare
plot([0 33], [Tmin+2 Tmin+2], 'g-')
sottotrama(2, 1, 2)
bar(time, act) % grafico a barre
xlabel('Tempo (secondi)')
ylabel('Efficienza (%)')
fine
B=transpose([tempo;tempplot;atto]);
fine
Ora che la funzione è completa, è il momento di testare.
Passaggio 5: test
Ora prova la funzione nella finestra di comando inserendo "function_name(input_value_1, input_value_2)" e guarda. Assicurati che nessun oggetto Arduino sia già esistente; se è così, usa il comando "clear a" per rimuoverlo. Se si verificano errori, controllare e vedere se i connettori sono nella posizione sbagliata o se vengono utilizzati gli ingressi digitali o analogici sbagliati. I risultati dovrebbero variare, sebbene ciò possa essere causato dal posizionamento di alcuni cavi dei ponticelli e dal sensore di temperatura.
Le aspettative dei risultati dovrebbero produrre cambiamenti nelle prestazioni del servo e nei dati sul display LCD. Ad ogni intervallo di tre secondi, una riga di testo dovrebbe visualizzare la temperatura in gradi Celsius e se la ventola è attiva o meno mentre la ventola funziona alla massima velocità, a metà velocità o senza velocità. I dati molto probabilmente non dovrebbero essere coerenti, ma se si desiderano risultati più vari, posizionare il valore di "Tmin" vicino alla temperatura media prodotta dal circuito.
Passaggio 6: conclusione
Sebbene un compito arduo da svolgere per tentativi ed errori, i risultati finali si sono rivelati piuttosto interessanti e soddisfacenti. Un sistema in quanto tale aiuta a illustrare quante macchine complicate, o anche alcune delle loro parti, possono essere viste come un insieme di parti indipendenti messe insieme per raggiungere un obiettivo specifico.
A causa del design piuttosto semplicistico del progetto finale, coloro che hanno interesse a migliorarne le prestazioni possono apportare modifiche e modifiche al prodotto finale che possono rendere il progetto migliore e più elaborato. Tuttavia, rivela punti deboli nel circuito come l'attivazione del servo che provoca fluttuazioni sporadiche nella lettura della tensione del circuito, che possono far sì che il sistema non produca mai risultati identici. Inoltre, ci sono stati problemi nel vedere un cambiamento nella velocità del servo quando "eff" è impostato a 0.4 e superiore. Se fosse stato utilizzato un sensore di temperatura e umidità, il modello finale sarebbe più complicato ma presenterebbe valori più coerenti. Tuttavia, questa è un'esperienza che mostra che una macchina complessa può funzionare come una combinazione delle sue parti semplici.
Consigliato:
Ascensore modello controllato da Arduino: 7 passaggi (con immagini)
Ascensore modello controllato da Arduino: in questo Instructable ti mostrerò come ho costruito un ascensore giocattolo a due livelli, con porte scorrevoli funzionanti e un'auto che si muove su e giù su richiesta. Il cuore dell'ascensore è un Arduino Uno (o in questo caso un Adafruit Metro), con l'Adafruit Moto
Layout di ferrovia modello automatizzato con due treni (V2.0) - Basato su Arduino: 15 passaggi (con immagini)
Layout di ferrovia modello automatizzato con due treni (V2.0) | Basato su Arduino: l'automazione dei layout di modellismo ferroviario utilizzando i microcontrollori Arduino è un ottimo modo per unire microcontrollori, programmazione e modellismo ferroviario in un unico hobby. Ci sono un sacco di progetti disponibili sulla gestione autonoma di un treno su un modello di ferrovia
Un modello di orologio unico alimentato da servomotori Arduino: 5 passaggi
Un modello di orologio unico alimentato da servomotori Arduino: con questo Instructable ti mostrerò come creare un orologio utilizzando Arduino Nano e servomotori. Per fare ciò avrai bisogno dei seguenti elementi
Casco da bicicletta con aria condizionata (realizzato con computer riciclati): 5 passaggi (con immagini)
Casco da bicicletta con aria condizionata (realizzato con computer riciclati): questo casco con le ventole sui fori aspira l'aria dalla testa e puoi sentirla salire sul viso e lungo i lati della testa! Ottimo per andare in bicicletta nelle giornate di sole quando fa molto caldo. I LED aiutano anche con la bicicletta notturna! Le parti tutte
Aria più fredda! per meno soldi! Sovralimentazione del condizionatore d'aria!!: 14 passaggi (con immagini)
Aria più fredda! per meno soldi! Sovralimentazione del condizionatore d'aria!!: con questo metodo è possibile ottenere un raffreddamento migliore e ridurre i costi energetici. Un condizionatore d'aria funziona comprimendo un refrigerante gassoso fino a quando non si condensa nel condensatore (avete indovinato) sul lato esterno. Questo rilascia calore all'esterno. Poi quando quello