---
# System prepended metadata

title: Pendingin Media Peltier

---

# Pendingin Peltier dengan Fan DC (Tuning PID)


## Kelompok 2
## Nama Kelompok
* Mohammad Rasly Rasyid | 1103213150
* Muhammad Raflika Dwiyansyah | 1103210211
* Mizan Ghazy Praraya | 1103210024
* Jovandy Julio | 1103210230
* Kavila Zota Qurzian | 1103210190

## Daftar Isi

> [TOC]


> **[CLO 4]** Memiliki kemampuan untuk menganalisis sistem kendali loop tertutup pada kondisi transien dan steady state untuk melihat performansinya.
> **[CLO 5]** Memiliki kemampuan merancang sistem kendali motor DC.
<!--
> **Capaian CLO 4:**
> 1.Mahasiswa mampu menjelaskan konsep kendali umpan balik.
> 2.Mahasiswa mampu merancang sistem kendali PID.
> 3.Mahasiswa mampu mengevaluasi dan optimasi sistem kendali PID.
> **Capaian CLO 5:**
> 1.Mahasiswa mampu mendapatkan fungsi transfer sistem dari mekanisme transfer daya.
> 2.Mampu menjelaskan cara kerja dan karakteristik motor listrik, khususnya motor DC.
> 3.Mampu menganalisis hubungan antara torsi dan kecepatan motor.
> 4.Mahasiswa mampu mendemonstrasikan sistem mekanisme transfer daya sederhana menggunakan gear dan motor DC.
> 
-->


## Pendahuluan
Pendingin Media Peltier adalah sistem pendinginan yang menggunakan modul Peltier untuk mendinginkan sesuatu yang didinginkan. Modul Peltier, atau termoelektrik, bekerja berdasarkan efek Peltier di mana arus listrik yang melewati dua jenis bahan semikonduktor menghasilkan perbedaan suhu, dengan satu sisi modul menjadi dingin dan sisi lainnya panas, Sistem ini juga dilengkapi dengan sensor suhu untuk memantau suhu air secara real-time.


## Rancangan Sistem Kendali Loop Tertutup
* Close-loop (sistem tertutup) adalah mode di mana sistem menggunakan umpan balik (feedback) dari outputnya sendiri untuk mengontrol inputnya. Dalam sistem tertutup, output sistem dibandingkan dengan nilai yang diinginkan (setpoint) dan perbedaan (error) antara keduanya digunakan untuk menghasilkan sinyal kontrol yang mengatur input sistem.Teori yang mendukung/ metode-metode yang digunakan.
* Alat Peltier, atau modul Peltier, adalah perangkat elektronik yang memanfaatkan efek Peltier untuk menciptakan perbedaan suhu antara dua sisi modul. Alat ini sering digunakan dalam aplikasi pendinginan dan pemanasan kecil.
* Sensor suhu adalah perangkat yang digunakan untuk mengukur suhu atau perubahan suhu dalam suatu lingkungan atau objek. Ada berbagai jenis sensor suhu, masing-masing dengan prinsip kerja dan aplikasi yang berbeda.


![SKM.drawio](https://hackmd.io/_uploads/B1KesqxSR.png)




## Mekanik Motor DC/Aktuator
Pada project ini, kami menggunakan Cooling Fan yang ditenagai oleh motor dc untuk menyalurkan udara panas yang berasal dari heatsink untuk mendinginkan sisi panas dari peltier yang digunakan.

## Analisis Transient Respon
Lakukan pengukuran pada sistem yang dibuat
analisis plot hasil pengukuran seperti gambar
gunakan serial plot pada arduino atau aplikasi [Serial Plot windows](https://serialplot.ozderya.net/downloads/serialplot-0.12.0-win32-setup.exe) atau serial plot [versi OS lain](https://hackaday.io/project/5334-serialplot-realtime-plotting-software)
serial plot memungkinkan melakukan plot realtime data hasil dari data serial

```
 // Calculate error
  float error = temperatureC - setPoint;

  if (temperatureC > setPoint) {
    // Set fan speed to maximum if temperature exceeds setpoint
    fanSpeed = 255;
  } else {
    // Proportional term
    float proportionalTerm = Kp * error;

    // Integral term
    integralTerm += Ki * error;

    // Apply constraints to integral term to prevent windup
    integralTerm = constrain(integralTerm, -255.0 / Ki, 255.0 / Ki);

    // Calculate fan speed based on PI control
    fanSpeed = proportionalTerm + integralTerm;

    // Ensure fan speed does not exceed maximum PWM value
    fanSpeed = constrain(fanSpeed, 0, 255);
  }
 // Control the fan speed based on temperature
  if (temperatureC > 60) {
    fanSpeed = min(fanSpeed + 2, 255); // Increase to full power
    setPoint = 255;
  }
  else if (temperatureC > 35 && temperatureC <= 60) { // Increase to half power
    fanSpeed = min(fanSpeed + 2, 128);
    setPoint = 128;
  }
  else if (temperatureC <= 35) {
    fanSpeed = max(fanSpeed - 2, 0); // Decrease to off
    setPoint = 0;
  }

```
![image]![temp](https://hackmd.io/_uploads/Sy9InBFSC.png)

Gambar plot

<!-- 
Panduan Analisis (CLO4)
1 Plot respon transient Kondisi nilai KP, KI, dan KD yang seperti apa yang membuat sistem paling cepat stabil
2 Plot respon transient Kondisi nilai KP, KI, dan KD yang seperti apa yang membuat sistem memiliki error paling besar
3 Bandingkan set point dengan output hitung berapa besar steady state error (SSE)
4 Mana yang paling rentan menyebabkan sistem berosilasi? 
5 (Catatan: dikatakan berosilasi jika berulang kali bolak-balik melewati set point untuk mencapai set point yang diinginkan sampai berada di titik stabil.
6 Bagaimana respons transien sistem tersebut dari masing-masing kategori kecepatan yang diberikan? Hitung dengan menggunakan stopwatch/dari melihat serialplot dan berikan penjelasan dari masing-masing waktu berikut ini:
1.Delay time (Td)
2.Rise time (Tr)
3.Peak time (Tp)
4.Settling time (Ts)
 -->
 | Nilai PID        | Delay time (Td) | Rise time (Tr) | Peak time (Tp) | Settling time (Ts) | 
| ---------------- | --------------- | -------------- | -------------- | ------------------|
|Sebelum tuning|8s|15s|20s|300s
|Setelah Tuning|4s|8s|15s|250s|


![WhatsApp Image 2024-06-14 at 12.27.56_78ee4696](https://hackmd.io/_uploads/Hy4GQDKHR.jpg)

![WhatsApp Image 2024-06-14 at 12.27.57_4a3506f2](https://hackmd.io/_uploads/r1kBQPKSR.jpg)

## Analisis Mekanika
<!--
Panduan Analisis Mekanika (CLO 5)
-->
### Pengukuran Mekanik Motor DC
Analisis motor dc/ukuran gear terhadap transfer daya

 | Duty Cycle (%) | Nilai Output (Voltage)| Output Terukur (Voltage) | Max Arus Motor(A) | Speed (rpm) |
| ----- | ----- | ------ | ----- | ---- |
|0%|6V|-|0A|0rpm|
|50%|12V|-|0.065A|750rpm|
|100%|12V|-|0.11A|1500rpm|


---------------
Jika menggunakan motor DC/servo/stepper saja
1. Lakukan pengukuran pada kecepatan/posisi motor terhadap input yang diberikan? 
table pengukuran |input motor(voltage/pwm/jumlah step)|pengukuran output motor (sudut, rpm)|Arus max|
2. Lakukan pengukuran yang sama tapi dengan tanpa load pada motor
3. Dari pengukuran yang didapatkan jelaskan karakteristik motor tersebut (torsi/diambil dari tegangan dan arus)
4. Plot hasil pengukuran dengan excel/tools lain, analysis hasil tersebut dengan teori EMF

---------------
Jika menggunakan Motor dan gear ukur pitch diameter (D) dan circular pitch (Pc) setiap gear yang digunakan dengan menggunakan penggaris.
Hitung jumlah gigi dari gear tersebut secara manual, kemudian buktikan dengan menggunakan rumus.
Hitung rasio gear dari dua ukuran berbeda. Jelaskan cara perhitungannya!
Hubungkan kedua gear tersebut dengan kondisi:
1.Posisikan gear yang kecil sebagai driver gear dan gear yang besar sebagai driven gear. Putar driver gear sebanyak 360. Berapa derajat driven gear berputar?
2.Posisikan gear yang besar sebagai driver gear dan gear yang kecil sebagai driven gear. Putar driver gear sebanyak 360. Berapa derajat driven gear berputar?
3.Menurut kelompok Anda, lebih baik gear yang kecil atau besar yang dijadikan sebagai driver gear? Mengapa?
-->
### Analisis Kecepatan Motor terhadap Beban
Arus = Suhu yang terdeteksi di peltier itu menjadi beban terhadap motor fan dikarenakan dan akan menyesuaikan suhu sesuai dengan kodingan yang kami buat yaitu dibawah 35 Celcius, maka PWM dari motor fan akan diatur untuk menyesuaikan suhu yang kami mau dan akan meningkatkan rata-rata arusnya

Kecepatan = kecepatan pada motor fan akan berubah2 disesuaikan dengan suhu yang akan terdeteksi pada sensor suhu yang ada pada peltier

Torsi = seiring meningkatnya suhu maka terjadi juga meningkatnya torsi pada fan, untuk mencapai setpoint yang telah diberikan

CEMF = saat fanspeed meningkat/ bertambah maka tegangan rata2 yang diterapkan ke motor meningkat dan membuat motor fan berputar lebih cepat mengakibatkan CEMF juga meningkat

<!--
Nyalakan motor listrik tanpa beban.
1.Hubungkan beban dengan motor (sesuai kasus project). Apakah motor masih dapat berputar?
2.Tambahkan lagi beban secara bertahap hingga motor berhenti berputar. Lakukan analisis hubungan antara torsi dan kecepatan dari setiap beban yang ditambah hingga motor berhenti berputar.
3.Jika beban terus ditambahkan dan menyebabkan motor berhenti berputar, apakah beban tersebut tetap dapat diputar dengan menggunakan gear? Jelaskan! 
4.Bagaimana mengatur komposisi gear agar beban tersebut dapat berputar? Mengapa beban menjadi dapat berputar setelah ditambahkan rangkaian gear?

Jelaskan hal-hal apa saja yang terjadi saat beban motor meningkat, khususnya dilihat dari:
1.kecepatan, 
2.CEMF, 
3.arus (current), 
4.torsi.
-->
## Hasil dan Saran
Didapatkan hasil suhu peltier yang stabil pada 60°C, dan suhu maksimal yang didapatkan mencapai 92°C, dengan begitu bagian  sisi samping pada peltier tersebut  dapat mencapai suhu dingin yang diharapkan untuk mendinginkan air pada gelas besi yang disimpan di atas bagian peltier.
performa dan temperatur sengat bergantung pada suhu ruangan sehingga akan berbeda-beda berdasarkan keadaan tempat uji coba.
## Video dan Lampiran Kode 
```
const int motor1Enable = 9;
const int motor2Enable = 10; // Enable pin for Motor (EN-B)
const int motor1Pin1 = 2;
const int motor1Pin2 = 3;
const int motor2Pin1 = 5; // Control pin 1 for Motor (IN3)
const int motor2Pin2 = 4; // Control pin 2 for Motor (IN4)
const int tempPin = A0;

float fanSpeed = 0;    // Variable to store the speed of Fan 2
float setPoint = 70.0; // Desired temperature setpoint for the hot side of Peltier

// PI constants
float Kp = 10.0; // Proportional gain
float Ki = 0.1;  // Integral gain

float integralTerm = 0.0;
float lastError = 0.0;

void setup() {
  pinMode(motor1Pin1, OUTPUT);
  pinMode(motor1Pin2, OUTPUT);
  pinMode(motor2Pin1, OUTPUT);
  pinMode(motor2Pin2, OUTPUT);
  pinMode(motor1Enable, OUTPUT);
  pinMode(motor2Enable, OUTPUT);

  digitalWrite(motor1Enable, LOW);
  digitalWrite(motor2Enable, LOW);
  Serial.begin(9600); // Use higher baud rate for faster data transmission

  // Print headers for SerialPlot
  Serial.println("TemperatureC,SetPoint,PWMValue");
}

void loop() {
  int analogValue = analogRead(tempPin);
  float voltage = analogValue * (5.0 / 1023.0);
  float temperatureC = (voltage - 0.5) * 100.0 + 30;

  // Calculate error
  float error = temperatureC - setPoint;

  if (temperatureC > setPoint) {
    // Set fan speed to maximum if temperature exceeds setpoint
    fanSpeed = 255;
  } else {
    // Proportional term
    float proportionalTerm = Kp * error;

    // Integral term
    integralTerm += Ki * error;

    // Apply constraints to integral term to prevent windup
    integralTerm = constrain(integralTerm, -255.0 / Ki, 255.0 / Ki);

    // Calculate fan speed based on PI control
    fanSpeed = proportionalTerm + integralTerm;

    // Ensure fan speed does not exceed maximum PWM value
    fanSpeed = constrain(fanSpeed, 0, 255);
  }

  // Apply PWM to enable pins
  int pwmValue = fanSpeed;
  analogWrite(motor1Enable, pwmValue);
  analogWrite(motor2Enable, pwmValue);

  // Determine direction based on fanSpeed sign
  if (fanSpeed > 0) {
    digitalWrite(motor1Pin1, HIGH); // Example: Set motor direction
    digitalWrite(motor1Pin2, LOW);
    digitalWrite(motor2Pin1, HIGH);
    digitalWrite(motor2Pin2, LOW);
  } else {
    digitalWrite(motor1Pin1, LOW); // Turn off motors if fanSpeed is 0
    digitalWrite(motor1Pin2, LOW);
    digitalWrite(motor2Pin1, LOW);
    digitalWrite(motor2Pin2, LOW);
  }

  // Output to SerialPlot
  Serial.print(temperatureC); // Current temperature
  Serial.print(" ");
  Serial.print(setPoint); // Setpoint temperature
  Serial.print(" ");
  Serial.println(pwmValue); // PWM value

  delay(1000); // Adjust delay as needed for control loop timing
}

```
## Link Youtube Demonstrasi Alat
Youtube https://youtu.be/7G9JpzE_loE?si=wrdPo3_7RjOivwb8
Github https://github.com/monteksz/skmTubes
## Referensi
-semua rangkaian berasal dari pemikiran kami
- kodingan dibantu dengan ChatGPT
## Rubrik Penilaian

| Penilaian Indikator Ketercapaian CLO | Bobot |
| -------- | -------- |
| Mahasiswa mampu mengevaluasi dan optimasi sistem kendali PID (soal CLO 4).     | 50 %     |
|Mahasiswa mampu mendemonstrasikan sistem mekanisme transfer daya sederhana menggunakan gear dan motor DC (soal CLO 5)|50%|

### Kriteria Nilai
| 4 | 3 | 2 | 1 | 0 |
| ----- | ----- | ------ | ----- | ---- |
|      CLO 4  |       |      | | |
Mampu menjelaskan konsep kendali umpan balik, merancang sistem kendali PID, hingga mengevaluasi dan optimasi sistem kendali PID.|	Mampu menjelaskan konsep kendali umpan balik, merancang, dan mengevaluasi sistem kendali PID.|Mampu menjelaskan konsep kendali umpan balik dan merancang sistem kendali PID.|Mampu menjelaskan konsep kendali umpan balik dan PID, tetapi kesulitan dalam merancang dan mengevaluasi sistem kendali PID.|	Kesulitan dalam menjelaskan konsep kendali umpan balik dan PID.|
| CLO 5 |     | |  |
Mampu mendapatkan fungsi transfer sistem dari mekanisme transfer daya, menganalisis hubungan antara torsi dan kecepatan motor, menjelaskan cara kerja dan karakteristik motor listrik, serta mendemonstrasikan sistem mekanisme transfer daya sederhana menggunakan gear dan motor DC.|	Mampu mendapatkan fungsi transfer sistem dari mekanisme transfer daya, menganalisis hubungan antara torsi dan kecepatan motor, menjelaskan cara kerja dan karakteristik motor listrik, tetapi kesulitan dalam mendemonstrasikan sistem mekanisme transfer daya sederhana menggunakan gear dan motor DC.	|Mampu mendapatkan fungsi transfer sistem dari mekanisme transfer daya, menganalisis hubungan antara torsi dan kecepatan motor, tetapi kesulitan dalam menjelaskan cara kerja dan karakteristik motor listrik.	| Mampu mendapatkan fungsi transfer sistem dari mekanisme transfer daya dan menganalisis hubungan antara torsi dan kecepatan motor.	|Tidak dapat menentukan satu langkah pun untuk menjelaskan mengenai mekanisme transfer daya.|





