Percobaan 6 Kondisi 2
Sertakan dengan LM35 dan 7-Segment, ketika suhu bernilai <25 motor berlawanan arah jarum jam
Langkah-langkah percobaan :
- Rangkailah semua komponen
- Buat program di aplikasi arduino IDE
- Setelah selesai, masukkan program ke arduino
- Jalankan program pada simulasi dan lakukan sesuai kondisi
- Arduino UNO
- LM35
- Ic ULN 2003A
- Seven Segmen
- Motor Stepper
3. Rangkaian Simulasi dan Prinsip Kerja
Rangkaian Awal.
Prinsip Kerja
jadi pada percobaan ini menggunakan sensor suhu sebagai input, ketika suhu yang dideteksi kurang dari 25 maka motor stepper akan berputar berlawanan arah jarum jam dan menampilkan angka 1 pada 7segmen. namun ketika suhu yang dideteksi lebih atau sama dengan 25 maka motor stepper akan berputar searah jarum jam dan menampilkan angka 0 pada 7segmen.
A. Flowchart
B. Listing Program
#define A 8
#define B 9
#define C 10
#define D 11
#define LM35 A0 // Pin untuk sensor suhu LM35
#define delay_time 500
#define delay2 1000
const int Pin1 = 0;
const int Pin2 = 2;
const int Pin3 = 3;
const int Pin4 = 4;
const int Pin5 = 5;
const int Pin6 = 6;
const int Pin7 = 7;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(Pin1,INPUT);
pinMode(Pin2,INPUT);
pinMode(Pin3,INPUT);
pinMode(Pin4,INPUT);
pinMode(Pin5,INPUT);
pinMode(Pin6,INPUT);
pinMode(Pin7,INPUT);
}
void pergerakan_1(){
digitalWrite(A, 1);
digitalWrite(D, 0);
digitalWrite(B, 0);
digitalWrite(C, 0);
}
void pergerakan_2(){
digitalWrite(A, 0);
digitalWrite(D, 1);
digitalWrite(B, 0);
digitalWrite(C, 0);
}
void pergerakan_3(){
digitalWrite(A, 0);
digitalWrite(D, 0);
digitalWrite(B, 1);
digitalWrite(C, 0);
}
void pergerakan_4(){
digitalWrite(A, 0);
digitalWrite(D, 0);
digitalWrite(B, 0);
digitalWrite(C, 1);
}
void nonpergerakan(){
digitalWrite(A, 0);
digitalWrite(D, 0);
digitalWrite(B, 0);
digitalWrite(C, 0);
}
void loop() {
float suhu = bacaSuhu(); // Baca suhu dari sensor LM35
if (suhu < 25) { // Jika suhu kurang dari 25 derajat Celsius
digitalWrite(Pin1, 0);
digitalWrite(Pin2, 0);
digitalWrite(Pin3, 0);
digitalWrite(Pin4, 0);
digitalWrite(Pin5, 1);
digitalWrite(Pin6, 1);
digitalWrite(Pin7, 0);
nonpergerakan();
delay(delay2);
pergerakan_4(); // Putar motor berlawanan arah jarum jam
delay(delay_time);
pergerakan_3();
delay(delay_time);
pergerakan_1();
delay(delay_time);
pergerakan_2();
delay(delay_time);
} else { // Jika suhu 25 derajat Celsius atau lebih
digitalWrite(Pin1, 1); // Mengatur pin ke logika rendah
digitalWrite(Pin2, 1);
digitalWrite(Pin3, 1);
digitalWrite(Pin4, 1);
digitalWrite(Pin5, 1);
digitalWrite(Pin6, 1);
digitalWrite(Pin7, 0);
nonpergerakan();
delay(delay2);
pergerakan_2(); // Putar motor berlawanan arah jarum jam
delay(delay_time);
pergerakan_1();
delay(delay_time);
pergerakan_3();
delay(delay_time);
pergerakan_4();
delay(delay_time);
}
}
float bacaSuhu() {
int sensorValue = analogRead(LM35); // Baca nilai analog dari sensor suhu
float milliVolts = (sensorValue / 1024.0) * 5000; // Ubah ke mV
float suhuCelsius = milliVolts / 10; // Ubah ke suhu dalam derajat Celsius
return suhuCelsius; // Kembalikan nilai suhu dalam derajat Celsius
}
Sertakan dengan LM35 dan 7-Segment, ketika suhu bernilai <25 motor berlawanan arah jarum jam.



Tidak ada komentar:
Posting Komentar