Sommario:

Modello di aria condizionata Arduino: 6 passaggi
Modello di aria condizionata Arduino: 6 passaggi

Video: Modello di aria condizionata Arduino: 6 passaggi

Video: Modello di aria condizionata Arduino: 6 passaggi
Video: Sensore di temperatura LM35 (Sensori con Arduino) 2024, Novembre
Anonim
Modello di aria condizionata Arduino
Modello di aria condizionata Arduino

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

Attrezzatura
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

Configurazione del microcontrollore
Configurazione del microcontrollore
Configurazione del microcontrollore
Configurazione del microcontrollore
Configurazione del microcontrollore
Configurazione del microcontrollore
Configurazione del microcontrollore
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

Configurazione MATLAB
Configurazione MATLAB
Configurazione MATLAB
Configurazione 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

Funzioni
Funzioni
Funzioni
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

test
test
test
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

Conclusione
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: