Innholdsfortegnelse:
- Trinn 1: Utstyr
- Trinn 2: Oppsett av mikrokontroller
- Trinn 3: MATLAB -oppsett
- Trinn 4: Funksjoner
- Trinn 5: Testing
- Trinn 6: Konklusjon
Video: Arduino klimaanlegg modell: 6 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
Som en del av en demonstrasjon av teamets evne til å lage en modell av et smart tog for markedsføringsformål, var målet å lage et system der en temperatursensor leser data fra kretsen og konverterer informasjonen til en temperaturverdi som er både vises på en opplyst skjerm og fokusert på om en vifte slås på eller av. Formålet er å hjelpe til med å imøtekomme kjøreforholdene til passasjerer som bruker et automatisert system som også fungerer for å vise temperaturen i umiddelbar nærhet.
Ved å bruke et Arduino mikrokontrollersett og MATLAB versjoner 2016b og 2017b, var vi i stand til å demonstrere disse resultatene med relativ suksess.
Trinn 1: Utstyr
Mikrokontrollersett med følgende:
-Sparkfun Red Board
-Sparkfun brødbrett
-LCD -bord
-Potensiometer
-Temperatur sensor
-Servo
-USB/Arduino -adapter
-Genserwires (25, minimum)
Bærbar datamaskin (Windows 10) med USB -inngang
3D -trykt objekt (valgfritt)
Trinn 2: Oppsett av mikrokontroller
Tenk på dette: hele systemet består av enkle enheter som hver spiller en vesentlig faktor mot det endelige resultatet. Av denne grunn er det sterkt anbefalt å sette opp et bilde av kretsen før du fester ledninger i et kronglete rot.
Bilder av hver enkelt modell finnes i håndboken for Microcontroller -verktøysettet eller på nettstedet på
Start med å feste temperatursensoren, potensiometeret, servokontaktene og LCD -en på kortet. På grunn av LCD -størrelsen og kravet til antall ledninger for den, anbefales det at den plasseres på sin egen halvdel av brødbrettet med de andre brikkene på den andre halvdelen og at potensiometeret er i et område for noen å enkelt vri på knappen.
For referanse:
LCD: c1-16
Servo: i1-3 (GND + -)
Temp Sensor: i13-15 (- GND +)
Potensiometer: g24-26 (- GND +)
Deretter begynner du å koble jumperkabler til hver pinne på mikrokontrollerenhetene; Selv om det var vilkårlig i den generelle storslåtte ordningen, ble designet designet med disse viktige forbindelsene:
Koble potensiometer til LCD: f25 - e3
Servo GND wire: j1 - Digital inngang 9
Temp Sensor GND: j14 - Analog inngang 0
LCD-innganger: e11-e15-digital inngang 2-5
e4 - Digital inngang 7
e6 - Digital inngang 6
(Merk: Hvis det lykkes, bør begge lysene på LCD -kanten blinke, og potensiometeret kan hjelpe til med å justere lysstyrken når den får strøm fra adapteren.)
Valgfritt: Et 3D -trykt objekt ble brukt som en del av et krav. For å unngå potensiell skade på de mer skjøre delene, ble et forlenget etui plassert som en hylse rundt LCD -skjermen. Målinger av LCD-skjermen viste seg å være omtrent 2-13/16 "x 1-1/16" x 1/4 ", og dermed ble bare høyden vesentlig endret. Hvis en 3D-skriver er lett tilgjengelig, bør du vurdere å legge til et personlig objekt Selv om det er unødvendig. Vær også oppmerksom på at målingene kan variere.
Trinn 3: MATLAB -oppsett
Installer en mer oppdatert versjon av MATLAB (2016a og fremover), tilgjengelig på MathWorks nettsted https://www.mathworks.com/products/matlab.html?s_tid=srchtitle. Når den er åpnet, går du til tilleggsprogrammer på fanen Hjem og laster ned "MATLAB Support Package for Arduino Hardware" for at mikrokontrollerkommandoene skal være tilgjengelige.
Når den er fullført, kan du teste for å finne tilkoblingen mellom mikrokontrolleren og datamaskinen/den bærbare datamaskinen. Etter at du har koblet dem til med USB -adapteren fra verktøysettet, setter du inn kommandoen "fopen (serial ('nada'))."
Det vil dukke opp en feilmelding som angir kontakten som "COM#", som vil være nødvendig for å lage et arduinoobjekt så lenge det er samme inngang til enhver tid.
På grunn av at LCD -skjermen ikke har en direkte forbindelse til Arduino -biblioteket, må et nytt bibliotek opprettes for å vise meldinger. En anbefaling er å lage en LCDAddon.m -fil fra LCD -eksemplet som finnes i MATLAB -hjelpevinduet etter å ha søkt etter "Arduino LCD" og plassert den i +arduinoioaddons -mappen, eller bruke den komprimerte mappen som er vedlagt og kopiere alt innholdet til ovennevnte mappe.
Hvis det lykkes, er koden for å lage et Arduino -objekt i MATLAB som vist nedenfor.
a = arduino ('com#', 'uno', 'Libraries', 'ExampleLCD/LCDAddon');
Trinn 4: Funksjoner
Lag en MATLAB -funksjon. For inngangene bruker vi variablene "eff" og "T_min"; for utdata, selv om det var unødvendig i den generelle utformingen, brukte vi variabelen "B" som en måte å inneholde data fra resultatene. "Eff" -inngangen tillater administrering av maksimal hastighet på servoen, og "T_min" -inngangen styrer ønsket minimumstemperatur. Verdien "B" skal dermed produsere en matrise som inneholder tre kolonner for tiden, temperaturen og effektiviteten til viften. Som en bonus for detaljer har koden nedenfor også en if-setning slik at viftehastigheten reduseres med femti prosent når den nærmer seg ønsket minimumstemperatur.
Hvis alle innganger og jumperkabler er plassert nøyaktig og forutsatt at porten på arduino -tilkoblingen er COM4 og funksjonsnavnet er "fanread", bør følgende kode være tilstrekkelig:
funksjon [B] = fanread (Tmin, eff)
klar a; klar lcd; a = arduino ('com4', 'uno', 'Libraries', 'ExampleLCD/LCDAddon');
t = 0; t_max = 15; % tid i sekunder
lcd = addon (a, 'ExampleLCD/LCDAddon', {'D7', 'D6', 'D5', 'D4', 'D3', 'D2'});
initializeLCD (lcd, 'Rows', 2, 'Columns', 2);
hvis eff> = 1 || e <0
feil ('Viften aktiveres ikke med mindre eff er satt mellom 0 og 1.')
slutt
for t = 1: 10 % antall sløyfer/intervaller
klar c; % forhindre gjentagelse av feil
v = readVoltage (a, 'A0');
TempC = (v-0,5)*100; % estimering for spenningsområder 2,7-5,5 V
hvis TempC> Tmin hvis TempC
c = ['Temp', num2str (TempC, 3), 'C On'];
writePWMDutyCycle (a, 'D9', eff/2); % slår på servoen på halv hastighet
spd = 50;
ellers
c = ['Temp', num2str (TempC, 3), 'C On'];
writePWMDutyCycle (a, 'D9', eff); % slår på servoen med den oppgitte hastigheten
spd = 100;
slutt
ellers
c = ['Temp', num2str (TempC, 3), 'C Off'];
writePWMDutyCycle (a, 'D9', 0); % slå av hvis den allerede er på
spd = 0;
slutt
printLCD (lcd, c);
pause (3); % tre sekunder går per sløyfe
tid (t) = t.*3;
tempplot (t) = TempC;
handling (t) = spd;
delplot (2, 1, 1)
plot (tid, tempplot, 'b-o') % linjediagram
akse ([0 33 0 40])
xlabel ('Tid (sekunder)')
ylabel ('Temperatur (C)')
vent litt
plot ([0 33], [Tmin Tmin], 'r-')
vent litt
plot ([0 33], [Tmin+2 Tmin+2], 'g-')
delplot (2, 1, 2)
bar (tid, handling) % søylediagram
xlabel ('Tid (sekunder)')
ylabel ('Effektivitet (%)')
slutt
B = transponere ([tid; tempplot; handling]);
slutt
Nå som funksjonen er fullført, er det på tide å teste.
Trinn 5: Testing
Test nå funksjonen i kommandovinduet ved å sette inn "funksjonsnavn (input_value_1, input_value_2)" og se. Sørg for at ingen Arduino -gjenstander allerede finnes; i så fall, bruk kommandoen "clear a" for å fjerne den. Hvis det oppstår feil, sjekk og se om noen kontakter er på feil sted eller om feil digitale eller analoge innganger brukes. Resultatene forventes å variere, selv om dette kan skyldes plassering av visse hoppetråder og temperatursensoren.
Forventningene til resultatene bør gi endringer i ytelsen til servoen og dataene på LCD -skjermen. For hvert tre sekunders intervall bør en tekstlinje vise temperaturen i Celsius og om viften er aktiv mens viften går på full hastighet, halv eller ingen hastighet. Data bør mest sannsynlig ikke være konsistente, men hvis du ønsker flere forskjellige resultater, plasserer du "Tmin" -verdien nær gjennomsnittstemperaturen produsert av kretsen.
Trinn 6: Konklusjon
Selv om det var en vanskelig oppgave å utføre ved prøving og feiling, viste de endelige resultatene seg ganske interessante og tilfredsstillende. Et system som sådan hjelper til med å illustrere hvor mange kompliserte maskiner, eller til og med noen av delene deres, kan sees på som en samling av uavhengige deler som er satt sammen for å oppnå et bestemt mål.
På grunn av den ganske forenklede utformingen av sluttprosjektet, kan de som har interesse av å forbedre ytelsen gjøre tilpasninger og endringer i sluttproduktet som kan gjøre prosjektet bedre og mer forseggjort. Imidlertid avslører det svakheter i kretsen, for eksempel servoens aktivering, noe som resulterer i sporadiske svingninger i kretsens spenningsavlesning, noe som kan føre til at systemet aldri gir identiske resultater. Det har også vært problemer med å se en endring i servohastighet når "eff" er satt 0,4 og høyere. Hadde en temperatur- og fuktighetssensor blitt brukt, ville den siste modellen vært mer komplisert, men likevel presentert mer konsistente verdier. Likevel er dette en opplevelse som viser at en kompleks maskin kan fungere som en kombinasjon av de enkle delene.
Anbefalt:
DIY bøtte klimaanlegg: 13 trinn (med bilder)
DIY Bucket Air Conditioner: Jeg bor på et ganske varmt sted i Sør -India, og arbeidsplassen min blir tett. Jeg fant en grei løsning på dette problemet ved å forvandle en gammel bøtte til et DIY klimaanlegg. AC -modellen er veldig enkel, rimelig, men likevel effektiv. Ba
Automatisk vifte/klimaanlegg: 6 trinn
Automatisk vifte/klimaanlegg: Velkommen! I denne instruksjonsboken vil jeg guide deg gjennom hvordan du bygger ditt eget automatiske vifte-/klimaanlegg. Denne instruksen omhandler en vindusvifte, som brukes til å kjøle ned rom i sommervarmen. Målet med dette prosjektet er å
Klimaanlegg PCB -opplæring med arbeid og reparasjon: 6 trinn
Klimaanlegg PCB -opplæring med arbeid og reparasjon: Hei, hva skjer, gutter! Akarsh her fra CETech. Har du noen gang lurt på hva som skjer på innsiden av klimaanleggene dine? Hvis Ja, så bør du gå gjennom denne artikkelen, siden jeg i dag skal gi et innblikk i sammenhenger og sammensetning
Automatisk oppstart av klimaanlegg: 5 trinn
Auto Turn-On Air Conditioner Device: Denne enheten kalles Auto Turn-On Air Conditioner Device. Når du er i ditt varme rom, og du nettopp har fullført skolen, er du for trøtt til å slå på klimaanlegget, så er denne enheten perfekt for deg. Denne enhetens mekanisme er veldig enkel. W
Mobiltelefon Infrarødt klimaanlegg Fjernkontroll DIY Produksjon: 7 trinn
Mobiltelefon Infrarødt klimaanlegg Fjernkontroll DIY Produksjon: På den varme sommeren, når du går hjem eller på kontoret, vil du slå på klimaanlegget, men du finner ikke fjernkontrollen på en stund. Det er en veldig irriterende ting. I en tid hvor denne mobiltelefonen ikke går, kan du bruke mobiltelefonen som