PRAKTIK MIKROKONTROLER & ANTARMUKA
Materi P-8 : Aplikasi Motor DC, Servo, dan Stepper
1. Judul mini project : Kipas Angin Pintar
2. Kelompok pembuat : B5
Nama : - Aulia Sefi Pujaningrum
- Muhammmad Raihan Ramadhan
- Poppy Syafrianti
- Randika Adhitama (PIC)
3. Deskripsi cara kerja aplikasi
Pada mini project kali ini kami membuat rangkaian dengan judul
“Kipas Angin Pintar”, pada saat simulasi dijalankan lampu hijau
akan menyala menandakan rangkaiannya bekerja, dan saat suhu
masih dirasakan dingin yang diatur dibawah 25 C kipas angin masih
belum aktif, selain itu tersedia juga lampu LED biru yang
menandakan suhu masih dingin dan belum saatnya kipasnnya aktif,
kipas angin ini akan aktif pada saat mulai terasa panas suhu yang
diatur diatas 25 C dan lampu LED yang berwarna biru tadi akan mati
kemudian lampu LED yang berwarna merah akan menyala dan pada
saat mencapai suhu 30C lebih speaker akan berbunyi menandakan
bahwa suhu ruangan tersebut terlalu panas, suhu ruangan
ditampilkan pada sebuah layar LCD beserta keterangan kondisi
kipas anginnya sedang aktif atau mati dan dalam keadaan lebih dari
30 C akan berubah menjadi sangat panas
4. Rangkaian skematik
5. Flow Chart aplikasi
Mulai
Initializing Serial Port
Menerima sinyal analog dari sensor
dan Mengubahnya menjadi ℃
LED Green on
Tidak Suhu >19℃ Tidak
Suhu >
& Speaker off dan kipas off
=30 ℃ ?
<29 ℃ ?
Ya Ya LED Blue aktif
Speaker on Speaker off
LED Red on dan kipas on
Print in LCD nilai suhu
Selesai
6. Sketch aplikasi
//Kipas Angin Pintar by Randika Adhitama
#include <LiquidCrystal.h>
LiquidCrystal lcd (13, 12, 11, 10, 9, 8);
#define TempPin A0
#define Do2 262
int TempValue;
const int spkPin = 7;
int duration = 250;
int hold = 125;
int in1 = 6;
int in2 = 5;
int enA = 4;
void setup()
{
Serial.begin(9600); // Initializing Serial Port
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(A2,OUTPUT);
pinMode (enA, OUTPUT);
pinMode (in1, OUTPUT);
pinMode (in2, OUTPUT);
digitalWrite (in1, LOW);
digitalWrite (in2, LOW);
lcd.begin(16, 2);
digitalWrite(A2,HIGH);
}
void loop()
{
TempValue = analogRead(TempPin); // Getting LM35 value and
saving it in variable
float TempCel = ( TempValue/1024.0)*500; // Getting the
celsius value from 10 bit analog value
lcd.setCursor(0,0);
lcd.print(" Suhu ");
lcd.print(TempCel);
lcd.print(" C ");
if (TempCel>=30)
{
analogWrite (enA, 255);
digitalWrite (in1, HIGH);
digitalWrite (in2, LOW);
digitalWrite (3,LOW);
digitalWrite (2,HIGH);
lcd.setCursor(0,1);
lcd.print(" Sangat Panas");
tone(spkPin, Do2, duration);
delay(hold);
}
else if(TempCel>=25 && TempCel<30)
{
lcd.setCursor(0,1);
lcd.print(" on ");
analogWrite (enA, 255);
digitalWrite (in1, HIGH);
digitalWrite (in2, LOW);
digitalWrite (3,LOW);
digitalWrite (2,HIGH);
}
else
{
lcd.setCursor(0,1);
lcd.print(" off ");
digitalWrite (in1, LOW);
digitalWrite (in2, LOW);
digitalWrite (2,LOW);
digitalWrite (3,HIGH);
}
}
7. Screen shot hasil simulasi
Saat suhu >=30C
Saat suhu >=25 C & <30C
Saat suhu <25
8. Link URL Youtube video hasil simulasi
https://youtu.be/AUcZ6VHh6mY