Pada rangkaian ini, digunakan arduino
sebagai mikrokontroller, kemudian LED dan motor sebagai OUTPUT, serta LM35
sebagai input analog yang akan membaca suhu.
Ketika suhu yang terbaca pada LM35
adalah 34 derajat celcius, maka motor akan hidup selama 5 detik, kemudian
setelah 5 detik motor akan mati, lalu disusul dengan LED yang menyala selama 5
detik. Namun, ketika suhu yang terbaca pada LM35 adalah selain 34 derajat celcius,
maka LED dan motor mati. Penentuan hidupnya LED dan motor ini juga ditentukan
pada listing program.
int nilaiSuhu;
int led = 10 ;
byte motor = 9;
int LM35 = A0;
void setup() {
pinMode(motor, OUTPUT);
pinMode(led, OUTPUT);
}
void loop() {
nilaiSuhu = digitalRead(LM35);
//
Serial.println(nilaiSuhu);
nilaiSuhu=((5*analogRead(LM35)*100.00)/1024); //Mencari nilai Suhu
if (nilaiSuhu == 34 )
{
digitalWrite(motor, HIGH);
digitalWrite(led,LOW);
delay (5000);
digitalWrite(led, HIGH);
digitalWrite(motor,LOW);
delay (5000);
}
else (nilaiSuhu <= 33 && nilaiSuhu >= 35);
{
digitalWrite(led, LOW);
digitalWrite (motor, LOW);
delay (5000);
}
}
Ketika suhu yang terbaca pada LM35 adalah 34 derajat celcius, motor hidup selama 5 detik lalu mati, kemudian LED menyala selama 5 detik.
Analisa:
nilaiSuhu = ((5*analogRead (LM35)*100.00)/1024)
Untuk 5 disini adalah nilai tegangan referensi, karena pada ADC sinyal analognya berada pada rentang 0-5V. Lalu analogRead(LM35) berarti pembacaan suhu pada LM35 itu sendiri. Kemudian dibagi dengan 1024 yang mana merupakan resolusi arduino. Resolusi pada arduino ini adalah 10 bit, maka 2 pangkat 10 = 1024. Jadi nilainya berada pada rentang 0-1023.
2. Bagaimana pengaruh ADC?
ADC merupakan Analog to Digital Converter, dimana berfungsi untuk mengubah sinyal / input analog menjadi digital. Sinyal analog tersebut tidak memiliki logika yang jelas, sehingga diubahlah ke bentuk digital yang memiliki logika yang sederhana yaitu 1 dan 0. ADC mampu menkonversi masukan tegangan analog dari skala 0-5V menjadi keluaran biner. Maka keluaran dari ADC menyesuaikan dengan resolusi dari ADC yang digunakan.
3. Apakah pengukuran LM35 akurat?
Keakuratan pada LM35 itu adalah tinggi, yaitu akurasinya 0.5 derajat celcius. Tetapi tidak cocok pada pengukuran suhu yang sensornya dimasukkan kedalam cairan sehinga dapat mengurangi keakurasiannya.
4. Jelaskan listing program bagian kondisi masing-masing (tidak usah deklarasi variabel dan input output)?
Ground merupakan komponen kutub negatif yang sangat dibutuhkan pada rangkaian. Jika pin ground dicabut maka pembacaan pin digital akan mengambang, tegangan yang dihasilkan tidak stabil, kadang berlogika HIGH lalu berubah ke LOW, atau program tidak akan berjalan dengan benar. Kondisi pada percobaan ini adalah ketika suhu yang terbaca 34 derajat, motor hidup selama 5 detik, setelah 5 detik lalu motor akan mati, lalu LED menyala.
Maka pada listing programnya, yang pertama silakukan pembacaan nilaiSuhu pada LM35 dengn kode : nilaiSuhu = digitalRead (LM35); kemudian dimasukkan rumus untuk mengitung nilai suhu yaitu nilaiSuhu = ((5*analogRead (LM35)*100.00)/1024); Lalu digunakan percabangan if else, dimana kondisinya ketika nilai suhu = 34, motor akan hidup selama 5 detik, kemudian mati, dan dilanjutkan dengan hidupnya LED, proses ini dieksekusi pada listing:
if (nilaiSuhu == 34 )
{
digitalWrite(motor, HIGH);
digitalWrite(led,LOW);
delay (5000);
digitalWrite(led, HIGH);
digitalWrite(motor,LOW);
delay (5000);
}
Kemudian jika kondisi ini tidak terpenuhi, maka masuk ke percabangan else yaitu nilaiSuhu <=33 dan nilaiSuhu >= 35, maka LED dan motor mati. Proses ini dieksekusi pada listing:
else (nilaiSuhu <= 33 && nilaiSuhu >= 35);
{
digitalWrite(led, LOW);
digitalWrite (motor, LOW);
delay (5000);
}
}
Tidak ada komentar:
Posting Komentar