Spisu treści:
- Krok 1: Sprzęt
- Krok 2: Konfiguracja mikrokontrolera
- Krok 3: Konfiguracja MATLAB
- Krok 4: Funkcje
- Krok 5: Testowanie
- Krok 6: Wniosek
Wideo: Model klimatyzacji Arduino: 6 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
W ramach demonstracji zdolności naszego zespołu do stworzenia modelu inteligentnego urządzenia pociągowego do celów marketingowych, celem było stworzenie systemu, w którym czujnik temperatury odczytuje dane z obwodu i konwertuje je na wartość temperatury, która jest jednocześnie wyświetlane na podświetlanym ekranie i skupiające się na tym, czy wentylator włącza się, czy wyłącza. Celem jest pomoc w dostosowaniu się do warunków jazdy pasażerów za pomocą zautomatyzowanego systemu, który również wyświetla temperaturę w bezpośrednim sąsiedztwie.
Korzystając z zestawu mikrokontrolera Arduino i wersji MATLAB 2016b i 2017b, byliśmy w stanie zademonstrować te wyniki ze względnym sukcesem.
Krok 1: Sprzęt
Zestaw mikrokontrolera z następującymi elementami:
-Sparkfun czerwona tablica
-Płyta chlebowa Sparkfun
-Płyta LCD
-Potencjometr
-Czujnik temperatury
-Serwo
-Adapter USB/Arduino
-Przewody połączeniowe (25, minimum)
Laptop (Windows 10) z wejściem USB
Drukowany obiekt 3D (opcjonalnie)
Krok 2: Konfiguracja mikrokontrolera
Rozważ to: cały system składa się z pojedynczych jednostek, z których każda ma istotny czynnik w kierunku końcowego wyniku. Z tego powodu zdecydowanie zaleca się skonfigurowanie obrazu obwodu przed podłączeniem przewodów w zawiłym bałaganie.
Obrazy każdego pojedynczego modelu można znaleźć w instrukcji zestawu narzędzi mikrokontrolera lub na jego stronie internetowej pod adresem
Zacznij od wpięcia na płytkę czujnika temperatury, potencjometru, złącz serwo oraz wyświetlacza LCD. Zaleca się, aby ze względu na wielkość wyświetlacza LCD i wymaganą liczbę przewodów, umieścić go na własnej połowie płytki stykowej z pozostałymi kawałkami na drugiej połowie i aby potencjometr znajdował się w miejscu, w którym ktoś może łatwo obrócić pokrętło.
Na przykład:
LCD: c1-16
Serwo: i1-3 (GND+-)
Czujnik temperatury: i13-15 (- GND +)
Potencjometr: g24-26 (-GND +)
Następnie rozpocznij podłączanie przewodów połączeniowych do każdego styku jednostek mikrokontrolera; choć arbitralny w ogólnym wielkim schemacie, projekt został stworzony z tymi ważnymi połączeniami:
Podłączanie potencjometru do LCD: f25 -- e3
Przewód serwo GND: j1 -- Wejście cyfrowe 9
GND czujnika temperatury: j14 -- Wejście analogowe 0
Wejścia LCD: e11-e15 -- Wejście cyfrowe 2-5
e4 -- Wejście cyfrowe 7
e6 -- Wejście cyfrowe 6
(Uwaga: Jeśli się powiedzie, obie kontrolki na krawędzi wyświetlacza LCD powinny migać, a potencjometr może pomóc w dostosowaniu jasności po podłączeniu zasilania z zasilacza.)
Opcjonalnie: wydrukowany obiekt 3D został użyty jako część wymagania. Aby uniknąć potencjalnego uszkodzenia bardziej delikatnych części, przedłużona obudowa została umieszczona jako rękaw wokół wyświetlacza LCD. Wymiary ekranu LCD okazały się być około 2-13/16" x 1-1/16" x 1/4", a więc tylko wysokość została znacząco zmieniona. Jeśli drukarka 3D jest łatwo dostępna, rozważ dodanie osobistego przedmiotu, choć niepotrzebne. Należy również pamiętać, że pomiary mogą się różnić.
Krok 3: Konfiguracja MATLAB
Zainstaluj bardziej zaktualizowaną wersję MATLAB (2016a i nowsze), dostępną na stronie MathWorks https://www.mathworks.com/products/matlab.html?s_tid=srchtitle. Po otwarciu przejdź do Add-Ons na karcie Home i pobierz „MATLAB Support Package for Arduino Hardware”, aby uzyskać dostęp do poleceń mikrokontrolera.
Po zakończeniu można wykonać test, aby znaleźć połączenie mikrokontrolera z komputerem/laptopem. Po podłączeniu ich za pomocą przejściówki USB z zestawu narzędzi, wstawiamy polecenie „fopen(serial('nada')).”
Pojawi się komunikat o błędzie z informacją, że złącze to „COM#”, co będzie potrzebne do utworzenia obiektu arduino, o ile jest to zawsze to samo wejście.
Ponieważ wyświetlacz LCD nie ma bezpośredniego połączenia z biblioteką Arduino, należy utworzyć nową bibliotekę w celu wyświetlania komunikatów. Zaleca się utworzenie pliku LCDAddon.m z przykładu LCD znajdującego się w oknie pomocy MATLAB po wyszukaniu „Arduino LCD” i umieszczeniu go w folderze +arduinoioaddons lub skorzystanie z załączonego folderu skompresowanego i skopiowanie całej jego zawartości do wyżej wymienionego teczka.
Jeśli się powiedzie, kod do utworzenia obiektu Arduino w MATLAB jest pokazany poniżej.
a=arduino('com#', 'uno', 'Biblioteki', 'PrzykładowyLCD/LCDAddon');
Krok 4: Funkcje
Utwórz funkcję MATLAB. Jako dane wejściowe używamy zmiennych „eff” i „T_min”; dla wyników, choć niepotrzebnych w ogólnym projekcie, użyliśmy zmiennej „B” jako sposobu przechowywania danych z wyników. Wejście „eff” pozwala na zarządzanie maksymalną prędkością serwomechanizmu, a wejście „T_min” kontroluje minimalną żądaną temperaturę. Wartość „B” powinna zatem dawać macierz zawierającą trzy kolumny dla czasu, temperatury i wydajności wentylatora. Ponadto, jako bonus do szczegółów, poniższy kod zawiera również stwierdzenie „jeżeli”, tak że prędkość wentylatora zostanie zmniejszona o pięćdziesiąt procent, gdy zbliży się do pożądanej temperatury minimalnej.
Jeśli wszystkie wejścia i zworki są ułożone dokładnie i zakładając, że port połączenia arduino to COM4 i nazwa funkcji to „fanread”, wystarczy poniższy kod:
funkcja [B] = fanread(Tmin, eff)
jasne; clear lcd;a=arduino('com4', 'uno', 'Biblioteki', 'PrzykładowyLCD/LCDAddon');
t=0; t_maks=15; % czasu w sekundach
lcd=addon(a, 'Przykładowy LCD/LCDAddon', {'D7', 'D6', 'D5', 'D4', 'D3', 'D2'});
initializeLCD(lcd, 'Wiersze', 2, 'Kolumny', 2);
jeśli eff>=1 || e<0
error('Wentylator nie uruchomi się, jeśli eff nie zostanie ustawione między 0 a 1.')
kończyć się
dla t=1:10 % liczba pętli/interwałów
jasne c; % zapobiega powtarzającym się błędom
v=odczytaj napięcie(a, 'A0');
TempC=(v-0,5)*100; Oszacowanie % dla zakresów napięcia 2,7-5,5 V
jeśli TempC>Tmin jeśli TempC
c=['Temp', num2str(TempC, 3), 'C włączone'];
writePWMDutyCycle(a, 'D9', eff/2); % włącz serwo przy połowie prędkości
spd=50;
w przeciwnym razie
c=['Temp', num2str(TempC, 3), 'C włączone'];
writePWMDutyCycle(a, 'D9', eff); % włącz serwo przy podanej prędkości
spd=100;
kończyć się
w przeciwnym razie
c=['Temp', num2str(TempC, 3), 'C Wył'];
writePWMDutyCycle(a, 'D9', 0); % wyłączony, jeśli jest już włączony
spd=0;
kończyć się
printLCD(lcd, c);
pauza(3); % trzy sekundy upływają na pętlę
czas(t)=t.*3;
wykres temp(t)=TempC;
akt(t)=spd;
działka podrzędna(2, 1, 1)
plot(czas, tempplot, 'b-o') % line graph
oś ([0 33 0 40])
xlabel('Czas (sekundy)')
ylabel('Temperatura (C)')
trzymać się
wykres([0 33], [Tmin Tmin], 'r-')
trzymać się
wykres([0 33], [Tmin+2 Tmin+2], 'g-')
działka podrzędna(2, 1, 2)
bar(czas, akt) % wykres słupkowy
xlabel('Czas (sekundy)')
ylabel('Wydajność (%)')
kończyć się
B=transpozycja([czas;wykres temp;akt]);
kończyć się
Teraz, gdy funkcja jest gotowa, nadszedł czas na przetestowanie.
Krok 5: Testowanie
Teraz przetestuj funkcję w oknie poleceń, wstawiając „nazwa_funkcji(wartość_wejściowa_1, wartość_wejściowa_2)” i obserwuj. Upewnij się, że żaden obiekt Arduino nie istnieje; jeśli tak, użyj polecenia „clear a”, aby go usunąć. Jeśli wystąpią błędy, sprawdź i zobacz, czy jakieś złącza nie są w niewłaściwym miejscu lub czy nie użyto niewłaściwych wejść cyfrowych lub analogowych. Oczekuje się, że wyniki będą się różnić, chociaż może to być spowodowane umieszczeniem niektórych przewodów połączeniowych i czujnika temperatury.
Oczekiwania wyników powinny spowodować zmiany w wydajności serwomechanizmu i danych na wyświetlaczu LCD. Co trzy sekundy linia tekstu powinna wyświetlać temperaturę w stopniach Celsjusza oraz to, czy wentylator jest aktywny, gdy wentylator pracuje z pełną prędkością, połówkową prędkością lub bez prędkości. Dane najprawdopodobniej nie powinny być spójne, ale jeśli chcesz uzyskać więcej różnych wyników, umieść wartość „Tmin” zbliżoną do średniej temperatury wytwarzanej przez obwód.
Krok 6: Wniosek
Choć było to żmudne zadanie do wykonania metodą prób i błędów, efekt końcowy okazał się dość interesujący i satysfakcjonujący. System jako taki pomaga zilustrować, jak wiele skomplikowanych maszyn, a nawet niektórych ich części, można postrzegać jako zbiór niezależnych części umieszczonych razem, aby osiągnąć określony cel.
Ze względu na dość uproszczony projekt końcowego projektu, ci, którzy są zainteresowani poprawą jego wydajności, mogą wprowadzać poprawki i zmiany w produkcie końcowym, które mogą uczynić projekt lepszym i bardziej dopracowanym. Jednak ujawnia słabości w obwodzie, takie jak aktywacja serwomechanizmu, powodująca sporadyczne wahania odczytu napięcia w obwodzie, co może spowodować, że system nigdy nie uzyska identycznych wyników. Pojawiły się również problemy z widzeniem zmiany prędkości serwomechanizmu, gdy „eff” jest ustawione na 0,4 lub więcej. Gdyby zastosowano czujnik temperatury i wilgotności, ostateczny model byłby bardziej skomplikowany, ale prezentowałby bardziej spójne wartości. Niemniej jednak jest to doświadczenie, które pokazuje, że złożona maszyna może funkcjonować jako kombinacja jej prostych części.
Zalecana:
Model Elevator sterowany Arduino: 7 kroków (ze zdjęciami)
Model Elevator sterowany Arduino: W tej instrukcji pokażę, jak zbudowałem dwupoziomową windę zabawkową z działającymi drzwiami przesuwnymi i samochodem, który porusza się w górę iw dół na żądanie. Sercem windy jest Arduino Uno (lub w tym przypadku Adafruit Metro), z Adafruit Moto
Laptop sterowany panelem dotykowym Model kolejowy - Interfejs Arduino PS/2: 14 kroków
Laptop sterowany panelem dotykowym Model kolejowy | Interfejs PS/2 Arduino: Touchpad laptopa to jedno z doskonałych urządzeń, które można wykorzystać jako wejście dla projektów mikrokontrolerów. Dlatego dziś zaimplementujmy to urządzenie z mikrokontrolerem Arduino do sterowania modelem linii kolejowej. Za pomocą touchpada PS/2 będziemy mogli sterować 3 t
Unikalny model zegara zasilany przez serwosilniki Arduino: 5 kroków
Unikalny model zegara napędzany silnikami Arduino Servo: W tej instrukcji pokażę, jak stworzyć zegar za pomocą silników Arduino Nano i Servo. Aby to zrobić, będziesz potrzebować następujących przedmiotów
Automatyczny system wentylatora/klimatyzacji: 6 kroków
Automatyczny wentylator/system klimatyzacji: Witamy! W tej instrukcji przeprowadzę Cię przez proces budowania własnego automatycznego systemu wentylatora / klimatyzacji. Ta instrukcja dotyczy wentylatora okiennego, który służy do chłodzenia pomieszczeń w upalne lato. Celem tego projektu jest
(Ascensor) Model windy przy użyciu Arduino, App Inventor i innego bezpłatnego oprogramowania: 7 kroków
(Ascensor) Model windy przy użyciu Arduino, App Inventor i innego bezpłatnego oprogramowania: ESPConstrucción, paso a paso, de un ascensor a escala usando arduino (como controlador del motor y entradas y salidas por bluetooth), wynalazca aplikacji (dla projektowania panelu aplikacji de control del ascensor) y freeCAD y LibreCAD para diseño.Abajo