INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-23 12:53
As deel van 'n demonstrasie van ons span se vermoë om 'n model van 'n slim treintoestel vir bemarkingsdoeleindes te skep, was die doel om 'n stelsel te skep waarin 'n temperatuursensor data uit die stroombaan lees en die inligting omskakel in 'n temperatuurwaarde wat beide op 'n verligte skerm vertoon en gefokus op die vraag of 'n waaier aan- of uitgeskakel word. Die doel is om die rytoestande van passasiers te help akkommodeer deur 'n outomatiese stelsel te gebruik wat ook die temperatuur in die onmiddellike omgewing kan wys.
Deur 'n Arduino -mikrobeheerkit en MATLAB -weergawes 2016b en 2017b te gebruik, kon ons hierdie resultate met relatiewe sukses demonstreer.
Stap 1: Toerusting
Mikrobeheerkit met die volgende:
-Sparkfun Red Board
-Sparkfun Breadboard
-LCD -raad
-Potensiometer
-Temperatuur sensor
-Servo
-USB/Arduino -adapter
-Jumper drade (25, minimum)
Skootrekenaar (Windows 10) met USB -ingang
3D -gedrukte voorwerp (opsioneel)
Stap 2: Opstelling van mikrobeheerder
Oorweeg dit: die hele stelsel bestaan uit enkele eenhede wat elk 'n beduidende faktor in die eindresultaat het. Om hierdie rede word dit sterk aanbeveel om 'n beeld van die stroombaan op te stel voordat drade in 'n ingewikkelde gemors geplaas word.
Beelde van elke individuele model kan gevind word in die handleiding van die Microcontroller -gereedskapstel of op die webwerf
Begin met die bevestiging van die temperatuursensor, potensiometer, servo -aansluitings en LCD op die bord. Dit word aanbeveel dat dit, vanweë die grootte van die LCD en die hoeveelheid drade daarvoor, op sy eie helfte van die broodbord geplaas moet word, met die ander stukke op die ander helfte en dat die potensiometer in 'n gebied is waar iemand kan draai sy knop maklik.
Vir verwysing:
LCD: c1-16
Servo: i1-3 (GND + -)
Temp sensor: i13-15 (- GND +)
Potensiometer: g24-26 (- GND +)
Begin dan met die verbindingsdrade met elke pen van die mikrobeheereenhede; alhoewel dit willekeurig was in die algehele grootskema, is die ontwerp gemaak met hierdie belangrike verbindings:
Koppel potensiometer aan LCD: f25 - e3
Servo GND -draad: j1 - Digitale invoer 9
Temp Sensor GND: j14 - Analoog Input 0
LCD-ingange: e11-e15-digitale ingang 2-5
e4 - Digitale invoer 7
e6 - Digitale invoer 6
(Let wel: as dit suksesvol is, moet albei ligte aan die rand van die LCD aanskakel, en die potensiometer kan help om die helderheid daarvan aan te pas sodra die adapter van krag voorsien word.)
Opsioneel: 'n 3D -gedrukte voorwerp is as deel van 'n vereiste gebruik. Om moontlike skade aan die meer brose dele te voorkom, is 'n verlengde omhulsel as 'n mou om die LCD geplaas. Die metings van die LCD-skerm was ongeveer 2-13/16 "x 1-1/16" x 1/4 ", en slegs die hoogte is aansienlik verander. As 'n 3D-drukker maklik beskikbaar is, oorweeg dit om 'n persoonlike voorwerp by te voeg alhoewel dit onnodig is. Let ook daarop dat metings kan verskil.
Stap 3: MATLAB -opstelling
Installeer 'n meer bygewerkte weergawe van MATLAB (2016a en later), beskikbaar op die MathWorks -webwerf https://www.mathworks.com/products/matlab.html?s_tid=srchtitle. Sodra dit oopgemaak is, gaan na Byvoegings op die tuisblad en laai 'MATLAB-ondersteuningspakket vir Arduino-hardeware' af sodat die opdragte van die mikrobeheerder toeganklik is.
Sodra dit voltooi is, kan u 'n toets doen om die verbinding van die mikrobeheerder met die rekenaar/skootrekenaar te bepaal. Nadat u dit met die USB -adapter uit die gereedskapstel verbind het, voer die opdrag "fopen (serial ('nada')) in."
'N Foutboodskap verskyn met die aansluiting as "COM#", wat nodig is om 'n arduino-voorwerp te skep, solank dit altyd dieselfde invoer is.
Omdat die LCD nie 'n direkte verbinding met die Arduino -biblioteek het nie, moet 'n nuwe biblioteek geskep word om boodskappe te vertoon. 'N Aanbeveling is om 'n LCDAddon.m -lêer te skep uit die LCD -voorbeeld in die MATLAB -hulpvenster nadat u "Arduino LCD" gesoek en in die +arduinoioaddons -lêergids geplaas het, of die saamgeperste vouer gebruik en al die inhoud daarvan na die voormelde gekopieer gids.
As dit suksesvol is, is die kode om 'n Arduino -voorwerp in MATLAB te skep, soos hieronder getoon.
a = arduino ('com#', 'uno', 'biblioteke', 'voorbeeldLCD/LCDAddon');
Stap 4: Funksies
Skep 'n MATLAB -funksie. Vir die insette gebruik ons veranderlikes "eff" en "T_min"; vir uitsette, alhoewel dit in die algehele ontwerp onnodig was, het ons veranderlike "B" gebruik as 'n manier om data uit die resultate te bevat. Met die "eff" -invoer kan u die maksimum snelheid van die servo bestuur, en die "T_min" -invoer beheer die gewenste minimum temperatuur. Die waarde "B" moet dus 'n matriks lewer wat drie kolomme bevat vir die tyd, die temperatuur en die doeltreffendheid van die waaier. As 'n bonus vir detail, het die onderstaande kode ook 'n as-verklaring, sodat die waaiersnelheid met vyftig persent sal verminder as dit naby die gewenste minimum temperatuur kom.
As alle insette en jumperdrade presies geplaas is en as die poort van die arduino -verbinding COM4 is en die funksienaam "fanread" is, behoort die volgende kode voldoende te wees:
funksie [B] = fanread (Tmin, eff)
duidelik a; duidelik lcd; a = arduino ('com4', 'uno', 'biblioteke', 'voorbeeldLCD/LCDAddon');
t = 0; t_max = 15; % tyd in sekondes
lcd = addon (a, 'VoorbeeldLCD/LCDAddon', {'D7', 'D6', 'D5', 'D4', 'D3', 'D2'});
initializeLCD (lcd, 'Rows', 2, 'Columns', 2);
as eff> = 1 || e <0
fout ('Waaier sal nie aktiveer nie, tensy eff tussen 0 en 1 gestel is')
einde
vir t = 1: 10 % aantal lusse/intervalle
duidelik c; % voorkom dat die fout herhaal word
v = readVoltage (a, 'A0');
TempC = (v-0.5)*100; % skatting vir spanningsreekse 2,7-5,5 V
as TempC> Tmin as TempC
c = ['Temp', num2str (TempC, 3), 'C Aan'];
skryfPWMDutyCycle (a, 'D9', eff/2); % skakel servo aan teen halfspoed
spd = 50;
anders
c = ['Temp', num2str (TempC, 3), 'C Aan'];
writePWMDutyCycle (a, 'D9', eff); % skakel servo aan teen die gegewe spoed
spd = 100;
einde
anders
c = ['Temp', num2str (TempC, 3), 'C Off'];
writePWMDutyCycle (a, 'D9', 0); % gesluit as dit reeds aan is
spd = 0;
einde
printLCD (lcd, c);
pouse (3); % drie sekondes verloop per lus
tyd (t) = t.*3;
tempplot (t) = TempC;
handeling (t) = spd;
subplot (2, 1, 1)
plot (tyd, tempplot, 'b-o') % lyngrafiek
as ([0 33 0 40])
xlabel ('Tyd (sekondes)')
ylabel ('Temperatuur (C)')
hou vas
plot ([0 33], [Tmin Tmin], 'r-')
hou vas
plot ([0 33], [Tmin+2 Tmin+2], 'g-')
subplot (2, 1, 2)
staaf (tyd, handeling) % staafgrafiek
xlabel ('Tyd (sekondes)')
ylabel ('Doeltreffendheid (%)')
einde
B = transponeer ([tyd; tempplot; handeling]);
einde
Noudat die funksie voltooi is, is dit tyd om te toets.
Stap 5: Toets
Toets nou die funksie in die opdragvenster deur "function_name (input_value_1, input_value_2)" in te voeg en kyk. Maak seker dat daar geen Arduino -voorwerp reeds bestaan nie; gebruik die opdrag "verwyder a" om dit te verwyder. As daar foute voorkom, kyk of die aansluitings op die verkeerde plek is of dat die verkeerde digitale of analoog insette gebruik word. Die resultate sal na verwagting wissel, hoewel dit veroorsaak kan word deur die plasing van sekere jumperdrade en die temperatuursensor.
Die verwagtinge van die resultate moet veranderings in die prestasie van die servo en die data op die LCD veroorsaak. Met elke interval van drie sekondes moet 'n teksreël die temperatuur in Celsius vertoon en of die waaier aktief is terwyl die waaier op volle spoed, halfspoed of geen spoed loop nie. Gegewens behoort waarskynlik nie konsekwent te wees nie, maar as u meer verskillende resultate wil hê, plaas die "Tmin" -waarde naby die gemiddelde temperatuur wat die stroombaan produseer.
Stap 6: Gevolgtrekking
Alhoewel dit 'n moeilike taak was om deur proef en fout te verrig, was die eindresultate nogal interessant en bevredigend. 'N Stelsel as sodanig help om te illustreer hoeveel ingewikkelde masjiene, of selfs sommige van hul onderdele, gesien kan word as 'n versameling onafhanklike onderdele wat saamgevoeg is om 'n spesifieke doel te bereik.
As gevolg van die taamlik eenvoudige ontwerp van die finale projek, kan diegene wat 'n belangstelling in die verbetering van die prestasie het, aanpassings en veranderings in die finale produk aanbring, wat die projek beter en meer uitgebrei kan maak. Dit onthul egter swakhede in die stroombaan, soos die servo se aktivering, wat sporadiese skommelinge in die stroomlesing van die stroombaan kan veroorsaak, wat kan veroorsaak dat die stelsel nooit identiese resultate lewer nie. Daar was ook probleme met die verandering van servosnelheid wanneer 'eff' 0.4 en hoër is ingestel. As 'n temperatuur- en humiditeitsensor gebruik is, sou die finale model ingewikkelder wees, maar meer konsekwente waardes. Dit is nietemin 'n ervaring wat toon dat 'n komplekse masjien as 'n kombinasie van sy eenvoudige dele kan funksioneer.
Aanbeveel:
Arduino Halloween Edition - Zombies pop -out skerm (stappe met foto's): 6 stappe
Arduino Halloween Edition - Zombies pop -out skerm (stappe met foto's): wil u u vriende skrik en 'n skreeu geraas maak tydens Halloween? Of wil u net 'n goeie grap maak? Hierdie pop-up skerm van Zombies kan dit doen! In hierdie instruksies sal ek u leer hoe u maklik Zombies kan spring deur Arduino te gebruik. Die HC-SR0
Arduino Uno visvoerder in 6 goedkoop en maklike stappe !: 6 stappe
Arduino Uno Fish Feeder in 6 goedkoop en maklike stappe !: 'n Bietjie agtergrond kan dus nodig wees vir hierdie projek. Mense met troeteldiervisse het waarskynlik dieselfde probleem as ek gehad: vakansies en vergeetagtigheid. Ek het voortdurend vergeet om my vis te voer, en ek het altyd probeer om dit te doen voordat dit gebeur het
Akoestiese opheffing met Arduino Uno stap-vir-stap (8-stappe): 8 stappe
Akoestiese levitasie met Arduino Uno Stap-vir-stap (8-stappe): ultrasoniese klankomvormers L298N Dc vroulike adapter kragbron met 'n manlike DC-pen Arduino UNOBreadboard Hoe werk dit: Eerstens laai u kode op na Arduino Uno (dit is 'n mikrobeheerder toegerus met digitale en analoog poorte om kode (C ++) om te skakel
Brandalarmstelsel met Arduino [in 'n paar maklike stappe]: 3 stappe
Brandalarmstelsel met Arduino [in 'n paar maklike stappe]: wil u 'n eenvoudige en interessante projek maak met Arduino wat terselfdertyd baie nuttig en moontlik lewensreddend kan wees? Indien wel, het u op die regte plek gekom om te leer iets nuuts en vernuwend. In hierdie pos gaan ons
Goedkoopste Arduino -- Kleinste Arduino -- Arduino Pro Mini -- Programmering -- Arduino Neno: 6 stappe (met foto's)
Goedkoopste Arduino || Kleinste Arduino || Arduino Pro Mini || Programmering || Arduino Neno: …………………………. Teken asseblief in op my YouTube -kanaal vir meer video's ……. .Die projek handel oor hoe om 'n kleinste en goedkoopste arduino ooit te koppel. Die kleinste en goedkoopste arduino is arduino pro mini. Dit is soortgelyk aan arduino