Sunday, August 4, 2019

CONTROL SENSOR MENGGUNAKAN ARDUINO UNO

MENGAKSES TIGA SENSOR SEKALIGUS DENGAN KELUARAN YANG BERBEDA MENGGUNAKAN ARDUINO UNO

Alat dan komponen:
  • Arduino UNO
  • Sensor PIR
  • Sensor Ultrasonik
  • Sensor Suhu
  • Led
  • Motor DC
  • Buzzer
Langkah kerja:
  • pertama rangkailah komponen seperti Gambar di bawah ini:

  • setelah siap merangkai komponen seperti gambar di atas, arahkan kursor pada toggle code editor.
  • pada jendela toggle code editor pilih text dan akan tampil lembar editing program.
  • setelah lembar prograng tampil, ketikkan program seperti berikut:
#include<LiquidCrystal.h>
int sensorPin = 0;
int echoPin= 6;
int trigPin= 7;
int distanceCm;
int inputPin = 2;               
int pirState = LOW;                                
int val = 0;                            
int pinSpeaker = 4;  
void setup()
{
  pinMode (8, OUTPUT);
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(13, OUTPUT);
  pinMode(inputPin, INPUT);
  pinMode(pinSpeaker, OUTPUT);
  Serial.begin(9600);
}
void loop(){
   val = digitalRead(inputPin);
  if (val == HIGH) {
    playTone(300, 160);
    delay(150);
  
    if (pirState == LOW) {
      Serial.println("Terdeteksi suatu pergerakan!");
      pirState = HIGH;
    }
  } else {
      playTone(0, 0);
      delay(300);   
      if (pirState == HIGH){
      Serial.println("Motion ended!");
      pirState = LOW;
    }
  }
 int reading = analogRead(sensorPin);
 float voltage = reading * 5.0;
 voltage /=1024.0;
 float tempC = (voltage - 0.5) * 100;
 if (tempC > 30)
 {
   digitalWrite (8, HIGH);
 }
  if (tempC < 30)
 {
   digitalWrite (8, LOW);
 }
  long duration, distance;
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin,
 LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;
   if (distance <= 50) {
    digitalWrite(13, HIGH);
}
  else { digitalWrite(13,LOW);
  }
}
    void playTone(long duration, int freq) {
    duration *= 1000;
    int period = (1.0 / freq) * 1000000;
    long elapsed_time = 0;
    while (elapsed_time < duration) {
        digitalWrite(pinSpeaker,HIGH);
        delayMicroseconds(period / 2);
        digitalWrite(pinSpeaker, LOW);
        delayMicroseconds(period / 2);
        elapsed_time += (period);
    }
}
  • lalu tekan tombol "Start Simulation" pada sudut atas kanan laman tinkercad
  • rangkaian Sensor siap diguakan.

No comments:

Post a Comment

Kontrol LED Menggunakan NodeMCU

Pada praktikum kali ini akan dijelaskan mengenai cara mengkontrol LED menggunakan Blynk Example Browser yang dijalankan menggunakan modul ...