Assalamualaikum sahabat semua, kali ini saya akan coba memberikan ilmu yang masih seputaran tentang pengaplikasian sensor pada Arduino Uno. Namun yang unik pada materi ini, kita akan mengimplementasikan 3 macam sensor yang berbeda hanya menggunakan 1 buah board Arduino! Sensor yang digunakan adalah sebagai berikut :
- Sensor PIR yang berfungsi untuk mendeteksi pergerakan yang ada di hadapannya.
- Sensor PING yang berfungsi sebagai pendeteksi jarak.
- Sensor Suhu yang digunakan merupakan jenis Transistor LM35.
Dan begini bentuk dari rangkaian yang saya rangkai kali ini
Berikut Coding program pada Arduino ;
int sensorPin = A0;
int dcPin = 5;
int inputPin = A4; // Memilih input PIR Sensor
int pirState = LOW; // Pada saat mulai, Matikan sensor
int val = 0; // Variable pembaca status pin
int pinSpeaker = 11; // Memilih pin buzzer, dengan pin PWM
int echoPin = 4;
int trigPin = 2;
long duration;
int distanceCm;
void setup(){
pinMode (sensorPin, INPUT);
pinMode (dcPin, OUTPUT);
pinMode (12, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(inputPin, INPUT); // jadikan Sensor sebagai Input
pinMode(pinSpeaker, OUTPUT); // jadikan buzzer sebagai output
Serial.begin(9600);
}
void loop()
{
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(10);
digitalWrite(trigPin, HIGH);
delayMicroseconds(0);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
if (distance >= 50) {
digitalWrite(12, HIGH);
}
else {
digitalWrite(12,LOW);
}
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;
}
}
}
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);
}
int reading = analogRead (sensorPin);
float voltage = reading * 5.0;
voltage /= 1024.0;
float tempC = (voltage - 0.5) * 100;
if (tempC > 30)
{
digitalWrite(5, HIGH);
}
else
{
digitalWrite (5, LOW);
}
}
Jadi kesimpulan dari rangkaian percobaan kali ini :
- Sensor PIR akan mendeteksi gerak sesuatu yang ada di depannya dan kemudian akan memicu buzzer untuk bekerja
- Pada Transistor LM35 akan memicu Motor Dinamo untuk bekerja jika pada Transistor terbaca pada suhu 30' atau diatasnya dan akan.
- Kemudian pada sensor PING bekerja jika jarak benda di depannya sejauh 50cm atau lebih, akan mengirimkan sinyal ke LED dengan kondisi HIGH dan LED akan menyala.
Sensor tersebut memiliki cara kerja masing-masing dan memiliki output sensornya tersendiri, hanya saja di implementasikan pada 1 board Arduino saja. Sensor tidak akan memicu output ataupun kerja dari sensor yang lainnya.
Sekian yang dapat saya jelaskan pada kali ini, semoga bermanfaat untuk kita semua. Terima kasih.
Asslamualaikum.




0 komentar:
Posting Komentar