TP2M2P6K2







Percobaan 6 Kondisi 2

Sertakan dengan LM35 dan 7-Segment, ketika suhu bernilai <25 motor berlawanan arah jarum jam

1.Prosedur

Langkah-langkah percobaan :

  1. Rangkailah semua komponen 
  2. Buat program di aplikasi arduino IDE
  3. Setelah selesai, masukkan program ke arduino 
  4. Jalankan program pada simulasi dan lakukan sesuai kondisi

2. Hardware dan Diagram Blok

  • 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