Skocz do zawartości

Regulator temperatury cieczy


Tucha

Pomocna odpowiedź

Witam,

Na wstępie chciałbym zaznaczyć, że jestem raczej początkującym w tych tematach.

Zabrałem się do wykonania regulatora temperatury cieczy. Wykorzystałem do tego Leonardo z zapiętym shieldem VNH5019. Motor driver steruje ogniwem Peltiera TEC1-12706. Dodatkowo dane są wyświetlane na wyświetlaczu Nokia 5110. VNH5019 zasilany jest zasilaczem impulsowym 12V 20A, z regulacją napięcia od ± 10%.

schemat_bb.thumb.png.9f3ffe2b39691e2180c33b55f47a81d0.png
Tak, na zdjęciu jest inny motor driver, ale układ jest praktycznie bliźniaczy, więc w celach demonstracyjnych wystarczy. Potencjometr służy do ustalania temperatury żądanej.

Problem mam taki, że jak już układ jest włączony, to VNH zapodaje na ogniwo przy 10V - 2.7A. Testując ogniwo pod zasilaczem laboratoryjnym fajnie działał przy 10V 5A.
Gdzieś wyczytałem, że połączenie ogniwa i PWM nie jest najbardziej efektywnym rozwiązaniem.

Prosiłbym o wszelkie pomysły, propozycje jak ten problem rozwiązać. Zadaniem ogniwa jest chłodzenie cieczy, która przepływa cały czas przez zbiorniczek, na chwilę obecną nie jest on w stanie cokolwiek zdziałać. Trochę lepiej wygląda to jeśli chodzi o grzanie, ale nie o to chodzi... 😞

Link do komentarza
Share on other sites

Jak zasilasz Arduino, masz masy połączone z VNH? I jak nim sterujesz? Jakbyś dał jakieś wycinki kodu byłoby łatwiej 😉.

To ma być taki przepływowy ochładzacz wody? Ta woda tam cały czas się zmienia czy stoi? Jak ma dążyć do utrzymania konkretnej temperatury przydała by się jakaś informacja zwrotna, czyli czujnik temperatury jakiś. Wtedy w zależności od tego czy temperatura wody jest niższa czy wyższa od żądanej mógłbyś po prostu ogniwo włączać na 100% bądź wyłączać. Taki termostat jak w piekarniku.

I co tam robią te tranzystory na płytce stykowej (bądź inne urządzenia, nie widać napisów)?

  • Lubię! 1
Link do komentarza
Share on other sites

//screen
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
//sensor
#include <DallasTemperature.h>
#include <OneWire.h>
//shield
#include "DualVNH5019MotorShield.h"

//Adafruit_PCD8544 display = Adafruit_PCD8544(SCLK, DIN, D/C, CS, RST);
Adafruit_PCD8544 display = Adafruit_PCD8544(13, 11, 5, 3, 1);

OneWire oneWire(A5); 						//Temperature sensor OneWire
DallasTemperature sensors(&oneWire); 		//Forward data to bib
int DevCount = 0;
DualVNH5019MotorShield vnh;					//Shield constructor dual channel
float Temp = 0;
int amp;

void setup() {
	display.begin();                          	
	display.setContrast(40);                 	
	display.clearDisplay();                  	//Clear screen data buffer

	sensors.begin(); 							//Initialize sensors
	DevCount = sensors.getDeviceCount();

	vnh.init();									//Initialize VNH5019
}

void lcdtemp() {fragment nieistotny}

void peltier() {
	int OutletTemp = abs(sensors.getTempCByIndex(2)); 
	float SetTemp = Temp-OutletTemp;
	
	if (SetTemp>=1)							vnh.setM1Speed(-400);
	else if (SetTemp<=-1)					vnh.setM1Speed(400);
}

void loop(){
	int Target = analogRead(A3);
	Temp=(Target*0.0224)+10;
	
	peltier();
	lcdtemp();
}

Wygląda to tak. Jest pewnie trochę błędów, ale jestem nowicjuszem. :) To nie są tranzystory, a czujniki temperatury właśnie - DS18B20. Zapomniałem o nich wspomnieć. Mea culpa.

Ten kod niby działa, ale prąd pobierany przez VNH jest wg. mnie zbyt mały, zadowoliłoby mnie 4A. Woda cały czas przepływa przez zbiornik.
Dodatkowo dzisiaj próbowałem pominąć bibliotekę VNH i samemu ustalać stany Low/High, ale na nic się to zdało. Nie przekracza 2.5A.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Te ogniwa optymalnie pracują na 12V, więc tak jak napisał @kaczakat podnieś napięcie. Dodatkowo jeżeli sterujesz nim za pomocą PWM pamiętaj że maksymalna częstotliwość jaka ma sens to 400Hz, przy wyższej bezwładność układu po prostu sprawia że jest to bezcelowe. Jak chcesz uzyskać taki sam pobór prądu jak na zasilaczu to ustaw PWM na 100%.

Link do komentarza
Share on other sites

Tak też robiłem.

Dodatkowo napisałem kod, który zastępuje bibliotekę VNH. Samemu włączyłem stan niski/wysoki na wyjściu PWM. Zwiększyłem napięcie na zasilaczu do 12V. Pomimo tego ogniwo nadal pobierało ok. 2-2.5A.

Wczoraj postanowiłem na chwilę porzucic tą ideę na rzecz MOSFETu. Ale na razie testowałem kod tylko na silniku, więc jeszcze nie wiem jak będzie się zachowywało ogniwo.

Link do komentarza
Share on other sites

Dnia 15.04.2019 o 08:06, szczawiosław napisał:

Dodatkowo jeżeli sterujesz nim za pomocą PWM pamiętaj że maksymalna częstotliwość jaka ma sens to 400Hz, przy wyższej bezwładność układu po prostu sprawia że jest to bezcelowe.

Możesz to rozjaśnić?

Link do komentarza
Share on other sites

@Harnas Ogniwo Peltiera ma swoją bezwładność termiczną, czyli pomiędzy kolejnymi impulsami ogniwo nie zdąży zareagować na stan niski wychładzaniem się. Najzwyczajniej w świecie uzyskamy taki sam efekt sterując z częstotliwością 400Hz (gdzieś czytałem że to maks, chyba trzeba zacząć zapisywać takie rzeczy) jak i 4kHz bo ogniwo i tak nie zdąży zareagować. Więc można sterować z o wiele mniejszą częstotliwością bez strat wydajności. Sądzę że nawet 10Hz spełni swoją rolę, najniższa częstotliwość jakiej używałem to było 20Hz i nie zauważyłem różnicy w działaniu w porównaniu z 200Hz czy z 1000Hz.

Edytowano przez szczawiosław
  • Lubię! 1
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.