Taula de continguts:

Model d'aire condicionat Arduino: 6 passos
Model d'aire condicionat Arduino: 6 passos

Vídeo: Model d'aire condicionat Arduino: 6 passos

Vídeo: Model d'aire condicionat Arduino: 6 passos
Vídeo: Проблема Управление кондиционером с arduino 2024, Juliol
Anonim
Model d'aire condicionat Arduino
Model d'aire condicionat Arduino

Com a part d’una demostració de la capacitat del nostre equip per crear un model de dispositiu de tren intel·ligent amb finalitats de màrqueting, l’objectiu era crear un sistema en què un sensor de temperatura llegeixi les dades del circuit i converteixi la informació en un valor de temperatura que sigui alhora. es mostra en una pantalla il·luminada i es concentra en si un ventilador s’encén o s’apaga. L’objectiu és ajudar a adaptar-se a les condicions de conducció dels passatgers mitjançant un sistema automatitzat que també actua per mostrar la temperatura als voltants.

En utilitzar un kit de microcontroladors Arduino i les versions 2016b i 2017b de MATLAB, vam poder demostrar aquests resultats amb èxit relatiu.

Pas 1: equipament

Equipament
Equipament

Kit de microcontroladors amb el següent:

-Sparkfun Red Board

-Sparkfun Breadboard

-Junta de LCD

-Potentiòmetre

-Sensor de temperatura

-Servo

-Adaptador USB / Arduino

-Cables de pont (25, mínim)

Ordinador portàtil (Windows 10) amb entrada USB

Objecte imprès en 3D (opcional)

Pas 2: Configuració del microcontrolador

Configuració del microcontrolador
Configuració del microcontrolador
Configuració del microcontrolador
Configuració del microcontrolador
Configuració del microcontrolador
Configuració del microcontrolador
Configuració del microcontrolador
Configuració del microcontrolador

Penseu en això: tot el sistema es compon d'unitats individuals que apliquen cadascun un factor significatiu cap al resultat final. Per aquest motiu, es recomana configurar una imatge del circuit abans de connectar cables en un embolic complicat.

Les imatges de cada model es poden trobar al manual del kit d’eines del microcontrolador o al seu lloc web a

Comenceu per fixar el sensor de temperatura, el potenciòmetre, els servoconectors i el LCD a la placa. Es recomana que, a causa de la mida i el requisit de la pantalla LCD per al nombre de cables, es col·loqui a la seva pròpia meitat de la placa amb les altres peces a l’altra meitat i que el potenciòmetre estigui en una zona perquè algú pugui gireu fàcilment el pom.

Com a referència:

Pantalla LCD: c1-16

Servo: i1-3 (GND + -)

Sensor de temperatura: i13-15 (- GND +)

Potenciòmetre: g24-26 (- GND +)

A continuació, comenceu a connectar els cables del pont a cada pin de les unitats de microcontrolador; encara que arbitrari en el gran esquema general, el disseny es va crear amb aquestes importants connexions:

Connexió del potenciòmetre a la pantalla LCD: f25 - e3

Servo GND wire: j1 - Entrada digital 9

Sensor de temperatura GND: j14: entrada analògica 0

Entrades LCD: e11-e15 - Entrada digital 2-5

e4 - Entrada digital 7

e6 - Entrada digital 6

(Nota: si té èxit, els dos llums de la vora de la pantalla LCD haurien de parpellejar-se i el potenciòmetre pot ajudar a ajustar la seva brillantor un cop es doni l’alimentació de l’adaptador).

Opcional: s'ha utilitzat un objecte imprès en 3D com a part d'un requisit. Per evitar possibles danys a les parts més fràgils, es va col·locar una funda estesa com a funda al voltant de la pantalla LCD. Les mesures de la pantalla de la pantalla LCD van demostrar ser d'aproximadament 2-13 / 16 "x 1-1 / 16" x 1/4 "i, per tant, només es va canviar significativament l'alçada. Si hi ha una impressora 3D fàcilment disponible, considereu afegir un objecte personal Tanmateix, tingueu en compte que les mesures poden variar.

Pas 3: Configuració de MATLAB

Configuració de MATLAB
Configuració de MATLAB
Configuració de MATLAB
Configuració de MATLAB

Instal·leu una versió més actualitzada de MATLAB (2016a i posteriors), disponible al lloc web de MathWorks https://www.mathworks.com/products/matlab.html?s_tid=srchtitle. Un cop obert, aneu a Complements a la pestanya Inici i descarregueu "Paquet de suport MATLAB per a maquinari Arduino" perquè les ordres del microcontrolador siguin accessibles.

Un cop finalitzada, es pot fer una prova per trobar la connectivitat del microcontrolador a l’ordinador / ordinador portàtil. Després de connectar-los amb l'adaptador USB del conjunt d'eines, inseriu l'ordre "fopen (serial ('nada'))".

Apareixerà un missatge d'error que indica el connector com a "COM #", que serà necessari per crear un objecte arduino sempre que sigui la mateixa entrada en tot moment.

Com que la pantalla LCD no té una connexió directa amb la biblioteca Arduino, cal crear una nova biblioteca per mostrar missatges. Una recomanació és crear un fitxer LCDAddon.m a partir de l'exemple de LCD que es troba a la finestra d'ajuda de MATLAB després de buscar "Arduino LCD" i col·locar-lo a la carpeta + arduinoioaddons, o bé utilitzar la carpeta comprimida adjunta i copiar tot el seu contingut a l'esmentat esmentat carpeta.

Si té èxit, el codi per crear un objecte Arduino a MATLAB és el que es mostra a continuació.

a = arduino ('com #', 'uno', 'Biblioteques', 'ExampleLCD / LCDAddon');

Pas 4: Funcions

Funcions
Funcions
Funcions
Funcions

Creeu una funció MATLAB. Per a les entrades, fem servir variables "eff" i "T_min"; per als resultats, tot i que innecessaris en el disseny general, hem utilitzat la variable "B" com a forma de contenir dades dels resultats. L'entrada "eff" permet gestionar la velocitat màxima del servo i l'entrada "T_min" controla la temperatura mínima desitjada. El valor "B" hauria de produir una matriu que conté tres columnes per al temps, la temperatura i l'eficiència del ventilador. A més, com a avantatge al detall, el codi que apareix a continuació també conté una afirmació if que permet que la velocitat del ventilador es redueixi en un cinquanta per cent quan s’acosti a la temperatura mínima desitjada.

Si totes les entrades i cables de pont es col·loquen exactament i suposant que el port de la connexió arduino és COM4 i el nom de la funció és "fanread", el codi següent hauria de ser suficient:

funció [B] = fanread (Tmin, eff)

netejar a; clear lcd; a = arduino ('com4', 'uno', 'Libraries', 'ExampleLCD / LCDAddon');

t = 0; t_max = 15; % de temps en segons

lcd = addon (a, 'ExampleLCD / LCDAddon', {'D7', 'D6', 'D5', 'D4', 'D3', 'D2'});

initializeLCD (lcd, 'Rows', 2, 'Columns', 2);

si eff> = 1 || e <0

error ("El ventilador no s'activarà tret que eff estigui establert entre 0 i 1.")

final

per a t = 1: 10% nombre de bucles / intervals

clar c; % evitar que es repeteixi l'error

v = readVoltage (a, 'A0');

TempC = (v-0,5) * 100; % estimació per a rangs de tensió de 2,7-5,5 V

si TempC> Tmin si TempC

c = ['Temp', num2str (TempC, 3), 'C On'];

writePWMDutyCycle (a, 'D9', eff / 2); % d'activació del servo a mitja velocitat

spd = 50;

en cas contrari

c = ['Temp', num2str (TempC, 3), 'C On'];

writePWMDutyCycle (a, 'D9', eff); % d'activació del servo a la velocitat indicada

spd = 100;

final

en cas contrari

c = ['Temp', num2str (TempC, 3), 'C Off'];

writePWMDutyCycle (a, 'D9', 0); % apaga si ja està activat

spd = 0;

final

printLCD (lcd, c);

pausa (3); % de tres segons per bucle

temps (t) = t. * 3;

tempplot (t) = TempC;

act (t) = spd;

subtrama (2, 1, 1)

gràfic (temps, gràfic temporal, 'b-o')% gràfic de línies

eix ([0 33 0 40])

xlabel ('Temps (segons)')

ylabel ('Temperatura (C)')

espera

trama ([0 33], [Tmin Tmin], 'r-')

espera

gràfic ([0 33], [Tmin + 2 Tmin + 2], 'g-')

subtrama (2, 1, 2)

barra (temps, acte)% gràfic de barres

xlabel ('Temps (segons)')

ylabel ('Eficiència (%)')

final

B = transposar ([temps; trama temporal; acte]);

final

Ara que la funció s'ha completat, és hora de provar.

Pas 5: proves

Proves
Proves
Proves
Proves

Ara proveu la funció a la finestra d'ordres inserint "nom_funció (valor_entrada_1, valor_entrada_2)" i mireu. Assegureu-vos que ja no existeix cap objecte Arduino; en aquest cas, utilitzeu l'ordre "esborra a" per eliminar-lo. Si es produeixen errors, comproveu i comproveu si hi ha connectors al lloc equivocat o si s’utilitzen entrades digitals o analògiques incorrectes. S'espera que els resultats variïn, tot i que això pot ser causat per la col·locació de determinats cables de pont i el sensor de temperatura.

Les expectatives dels resultats haurien de produir canvis en el rendiment del servo i de les dades de la pantalla LCD. Amb cada interval de tres segons, una línia de text hauria de mostrar la temperatura en centígrads i si el ventilador està activat o no mentre el ventilador funciona a tota velocitat, mitja velocitat o sense velocitat. Les dades probablement no haurien de ser consistents, tot i que si voleu obtenir diversos resultats, col·loqueu el valor "Tmin" proper a la temperatura mitjana produïda pel circuit.

Pas 6: Conclusió

Conclusió
Conclusió

Tot i que és una tasca àrdua de dur a terme mitjançant proves i errors, els resultats finals van resultar bastant interessants i satisfactoris. Un sistema com a tal ajuda a il·lustrar quantes màquines complicades, o fins i tot algunes de les seves parts, es poden veure com una col·lecció de peces independents juntes per assolir un objectiu específic.

A causa del disseny bastant simplista del projecte final, aquells que tinguin interès a millorar el seu rendiment poden fer modificacions i modificacions en el producte final que puguin fer el projecte millor i més elaborat. No obstant això, revela punts febles del circuit, com l'activació del servo, que produeix fluctuacions esporàdiques en la lectura de voltatge del circuit, que poden fer que el sistema no produeixi mai resultats idèntics. A més, hi ha hagut problemes en veure un canvi en la velocitat del servo quan "eff" s'estableix 0,4 i superior. Si s’hagués utilitzat un sensor de temperatura i humitat, el model final seria més complicat però presentaria valors més consistents. No obstant això, aquesta és una experiència que mostra que una màquina complexa pot funcionar com una combinació de les seves parts simples.

Recomanat: