W artykule zostanie przedstawione wykorzystanie ogniwa Peltiera wraz z chłodzeniem. Chłodzenie składa się z mikro pompy próżniowej i radiatora wodnego. Monitorowana jest również temperatura ogniwa oraz radiatora czujnikami temperatury LM35DZ, co pozwala na wyłączenie ogniwa, kiedy radiator jest zbyt gorący. Pompa i ogniwo będą obsługiwane przez przekaźniki.
Spis treści
- Krótki opis
- Specyfikacja
- Montaż chłodzenia
- Podłączenie
- Zaprogramowanie
- Pliki do pobrania
Krótki opis
Ogniwo chłodnicze które stosowane są np. w przenośnych lodówkach . Zasilane jest napięciem do 12 V, pobiera do 5 A prądu. Wymiary płytki to 40 x 40 x 3,3 mm.
Specyfikacja
- Napięcie zasilania: od 0 do 15,5 V (nominalne 12 V)
- Moc odprowadzania ciepła: do 50 W
- Pobór prądu: maks 15 A
- Długość przewodów: ok 15 cm
- Temperatura pracy: od -55 °C do 83 °C
- Wymiary: 40 x 40 x 3,3 mm
Montaż chłodzenia
Do montażu chłodzenia będziemy potrzebować pompy, radiatora wodnego, trzech rurek o średnicy ∼8 mm dowolnej długości. Do pompy wtykamy dwie rurki jedną montujemy do radiatora, a drugą do naczynia z wodą. Następnie wtykamy do radiatora rurkę i dajemy ją do tego samego naczynia. Na radiator najlepiej nałożyć pastę termoprzewodzącą. Montujemy ogniwo napisem do góry, to tam powinna być strona zimna. Teraz możemy przymocować również na pastę lub taśmą izolacyjną czujniki temperatury. jeden montujemy na górze, a drugi na spodzie radiatora.
Podłączenie
Podłączenie wszystkiego odbędzie się w kolejności:
- Zasilanie i uziemienie do płytki stykowej
- Zasilanie 12V
- Czujniki do Arduino
- Przekaźniki do Arduino
- Pompa do przekaźników
- Ogniwo do przekaźników
- Zasilanie do przekaźników
Zasilanie i uziemienie do płytki stykowej
Wyprowadzamy GND z arduino i wtykamy do naszej płytki stykowej, tak samo robimy z zasilaniem 5V.
Zasilanie 12V
Będziemy potrzebować zasilacza 12V 6A do zasilenia pompy oraz ogniwa. Z zasilacza “+” wtykamy do szybko złączki trzy pinowej, to samo robimy z “-“, tylko z użyciem drugiej szybko złączki .
Podłączenie czujników do Arduino
Schemat czujnika wygląda tak jak poniżej
Podłączamy damsko-męskimi przewodami do płytyki stykowej odpowiednio VCC (zasilanie) i GND (uziemienie). DATA jednego czujnika podłączamy do pinu A6 i drugi do A7.
Podłączenie przekaźników do Arduino
Zaczniemy od zasilania, VCC wpinamy do wcześniej przygotowanej płytki stykowej, tam gdzie mamy 5V, a GND do uziemienia na płytce. Następnie pin IN1 do arduino A0 i IN2 do A1.
Podłączenie pompy do przekaźników
Do pompy lutujemy przewody, tam gdzie czerwona kropka będzie plus, a na przeciwko minus. Kabel podłączony do plusa montujemy do NC1, a uziemienie do szybko złączki, którą wcześniej przygotowaliśmy.
Podłączenie ogniwa do przekaźników
Przewody ogniwa możemy przedłużyć albo wykorzystać te które są już zamontowane. Czerwony wpinamy do NC2, a czarny do szybko złączki z uziemieniem, tak samo jak w wypadku pompy.
Podłączenie zasilania do przekaźników
Do wcześniej przygotowanej szybko złączki z plusem, podłączamy dwa kable i doprowadzamy je do przekaźników, jeden wtykamy do COM1, a drugi do COM2.
Zaprogramowanie
Skoro cały nasz układ mamy już podłączony, możemy przejść do zaprogramowania go.
Zaczniemy od zdefiniowania podłączonych pinów, zadeklarowania zmiennej i ustawienia potrzebnych opcji w funkcji setup.
#define IN1 A0 #define IN2 A1 #define TEMP1 A6 #define TEMP2 A7 String komenda; void setup() { Serial.begin(9600); pinMode(IN1, OUTPUT);//ustawiamy IN1 jako wyjście pinMode(IN2, OUTPUT);//ustawiamy IN2 jako wyjście digitalWrite(IN1, HIGH);//wyłączenie przekaźnika digitalWrite(IN2, HIGH);//wyłączenie przekaźnika }
W funkcji loop zaczniemy od komendy ON, która pozwoli uruchomić cały układ. Wyłączyć go można włączając ponownie monitor portu szeregowego lub przyciskiem reset na arduino. Temperaturę możemy monitorować w monitorze portu szeregowego oraz możemy zmienić granicę wyłączenia ogniwa Paltiera. Wystarczy zmienić “if(temperature<40)” 40 na liczbę 50 i wtedy jeżeli radiator osiągnie 50 stopni ogniwo się wyłączy.
komenda = Serial.readStringUntil('\n');//wczytanie komendy z monitora portu szeregowego while (komenda == "ON")//jeżeli komenda to ON { digitalWrite(IN1, LOW);//włączenie przekaźnik odpowiedzialnego za pompę int sensorValue = analogRead(TEMP1);//wczytanie temperatury z czujnika pierwszego float voltage = sensorValue * (5.0 / 1023.0);//zyskujemy napięcie float temperature = voltage * 100;//napięcie mnożymy razy 100 i otrzymujemy temperaturę Serial.println("------------"); Serial.println("Czujnik dol"); Serial.println(temperature);//wyświetl temperaturę z dolnego czujnika Serial.println(); if(temperature<40)//jeżeli temperatura jest niższa od 40 stopni włącz przekaźnik odpowiedzialny za ogniwo { digitalWrite(IN2, LOW); } else//w przeciwnym wypadku wyłącz ogniwo { digitalWrite(IN2, HIGH); } sensorValue = analogRead(TEMP2);//wczytaj temperaturę z drugiego czujnika voltage = sensorValue * (5.0 / 1023.0); temperature = voltage * 100; Serial.println("Czujnik gora"); Serial.println(temperature);//wyświetl temperaturę z drugiego czujnika delay(1000); } }
Po wgraniu skopiowaniu kodu, możemy go wgrać. Po wgraniu, wystarczy wpisać “ON” w monitorze portu szeregowego i wszystko powinno się uruchomić.