Pada Rangkaian ini digunakan resistor dengan nilai 10k dan 220 ohm.
Fixed Resistor adalah jenis Resistor yang memiliki nilai resistansinya tetap. Nilai Resistansi atau Hambatan Resistor ini biasanya ditandai dengan kode warna ataupun kode Angka.
Perhitungan untuk Resistor dengan 4 Gelang warna :
Gelang ke 1 : Coklat = 1
Gelang ke 2 : Hitam = 0
Gelang ke 3 : Hijau = 5 nol dibelakang angka gelang ke-2; atau kalikan 105
Gelang ke 4 : Perak = Toleransi 10%
Maka nilai Resistor tersebut adalah 10 * 105 = 1.000.000 Ohm atau 1 MOhm dengan toleransi 10%.
Perhitungan untuk Resistor dengan 5 Gelang warna :
Gelang ke 1 : Coklat = 1
Gelang ke 2 : Hitam = 0
Gelang ke 3 : Hijau = 5
Gelang ke 4 : Hijau = 5 nol dibelakang angka gelang ke-2; atau kalikan 105
Gelang ke 5 : Perak = Toleransi 10%
Maka nilai Resistor tersebut adalah 105 * 105 = 10.500.000 Ohm atau 10,5 MOhm dengan toleransi 10%.
Cara menghitung nilai Resistor berdasarkan Kode Angka :
Kode Angka yang tertulis di badan Komponen Chip Resistor adalah 4 7 3;
Contoh cara pembacaan dan cara menghitung nilai resistor berdasarkan kode angka adalah sebagai berikut :
Masukkan Angka ke-1 langsung = 4
Masukkan Angka ke-2 langsung = 7
Masukkan Jumlah nol dari Angka ke 3 = 000 (3 nol) atau kalikan dengan 10³
Maka nilainya adalah 47.000 Ohm atau 47 kilo Ohm (47 kOhm)
Ada juga yang memakai kode angka seperti dibawah ini :
(Tulisan R menandakan letaknya koma decimal)
4R7 = 4,7 Ohm
0R22 = 0,22 Ohm
Keterangan :
Ohm = Ω
Kilo Ohm = KΩ
Mega Ohm = MΩ
1.000 Ohm = 1 kilo Ohm (1 KΩ )
1.000.000 Ohm = 1 Mega Ohm (1 MΩ)
1.000 kilo Ohm = 1 Mega Ohm (1 MΩ)
Fungsi-fungsi Resistor di dalam Rangkaian Elektronika diantaranya adalah sebagai berikut :
- Sebagai Pembatas Arus listrik
- Sebagai Pengatur Arus listrik
- Sebagai Pembagi Tegangan listrik
- Sebagai Penurun Tegangan listrik
2. Buat listing program seperti berikut :
//MASTER
#include <TimerOne.h>
#include <LiquidCrystal.h> //Deklarasi library LCD
#define LM35 A0 //Deklarasi pin A0 untuk LM35
#define SOIL A1
LiquidCrystal lcd(8,9,10,11,12,13); //Deklarasi pin 2-7 untuk LCD
int nilaiSuhu; //Deklarasi variabel nilaiSuhu
int nilaiSOIL;
int LED[] = {2,3,4};
void setup() //Semua kode dalam fungsi ini dieksekusi sekali
{
pinMode(A0, INPUT); //Deklarasi pin A0 sebagai OUTPUT
pinMode(A1, INPUT);
lcd.begin(16,2); //Dimensi LCD yang digunakan
for (int i =0; i<=3;i++){
pinMode (LED[i],OUTPUT);
Timer1.initialize(10000);
Timer1.attachInterrupt(blinkKuning);
}
Serial.begin(9600); //Set baud rate 9600
}
void loop() //Semua kode dalam fungsi ini dieksekusi berulang
{
nilaiSuhu=((5*analogRead(LM35)*100.00)/1024); //Mencari nilai Suhu
if(nilaiSuhu > 0 && nilaiSuhu <25)
{
nilaiSOIL = analogRead(SOIL);
if( nilaiSOIL>=350 && nilaiSOIL<=700){
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
Serial.print("2");
lcd.clear(); //Menghapus layar LCD
lcd.setCursor(0,0); //Menentukan posisi kursor pada awal penulisan
lcd.print("Suhu : "); //Menampilkan text pada LCD
lcd.setCursor(8,0); //Menentukan posisi kursor pada awal penulisan
lcd.print(nilaiSuhu); //Menampilkan nilaiSuhu pada LCD
lcd.setCursor(0,1); //Menentukan posisi kursor pada awal penulisan
lcd.print("Kondisi : Normal"); //Menampilkan text pada LCD
delay(100);
}
else if(nilaiSOIL >700){
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
Serial.print("1");
lcd.clear(); //Menghapus layar LCD
lcd.setCursor(0,0); //Menentukan posisi kursor pada awal penulisan
lcd.print("Suhu : "); //Menampilkan text pada LCD
lcd.setCursor(8,0); //Menentukan posisi kursor pada awal penulisan
lcd.print(nilaiSuhu); //Menampilkan nilaiSuhu pada LCD
lcd.setCursor(0,1); //Menentukan posisi kursor pada awal penulisan
lcd.print("Kondisi : Kering"); //Menampilkan text pada LCD
delay(100);
}
else {
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
Serial.print("3");
lcd.clear(); //Menghapus layar LCD
lcd.setCursor(0,0); //Menentukan posisi kursor pada awal penulisan
lcd.print("Suhu : "); //Menampilkan text pada LCD
lcd.setCursor(8,0); //Menentukan posisi kursor pada awal penulisan
lcd.print(nilaiSuhu); //Menampilkan nilaiSuhu pada LCD
lcd.setCursor(0,1); //Menentukan posisi kursor pada awal penulisan
lcd.print("Kondisi : Basah"); //Menampilkan text pada LCD
delay(100);
}
}
else if(nilaiSuhu>30){
nilaiSOIL = analogRead(SOIL);
if( nilaiSOIL>=350 && nilaiSOIL<=700){
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,HIGH);
Serial.print("2");
lcd.clear(); //Menghapus layar LCD
lcd.setCursor(0,0); //Menentukan posisi kursor pada awal penulisan
lcd.print("Suhu : "); //Menampilkan text pada LCD
lcd.setCursor(8,0); //Menentukan posisi kursor pada awal penulisan
lcd.print(nilaiSuhu); //Menampilkan nilaiSuhu pada LCD
lcd.setCursor(0,1); //Menentukan posisi kursor pada awal penulisan
lcd.print("Kondisi : Normal"); //Menampilkan text pada LCD
delay(100);
}
else if(nilaiSOIL >700){
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,HIGH);
Serial.print("1");
lcd.clear(); //Menghapus layar LCD
lcd.setCursor(0,0); //Menentukan posisi kursor pada awal penulisan
lcd.print("Suhu : "); //Menampilkan text pada LCD
lcd.setCursor(8,0); //Menentukan posisi kursor pada awal penulisan
lcd.print(nilaiSuhu); //Menampilkan nilaiSuhu pada LCD
lcd.setCursor(0,1); //Menentukan posisi kursor pada awal penulisan
lcd.print("Kondisi : Kering"); //Menampilkan text pada LCD
delay(100);
}
else {
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,HIGH);
Serial.print("3");
lcd.clear(); //Menghapus layar LCD
lcd.setCursor(0,0); //Menentukan posisi kursor pada awal penulisan
lcd.print("Suhu : "); //Menampilkan text pada LCD
lcd.setCursor(8,0); //Menentukan posisi kursor pada awal penulisan
lcd.print(nilaiSuhu); //Menampilkan nilaiSuhu pada LCD
lcd.setCursor(0,1); //Menentukan posisi kursor pada awal penulisan
lcd.print("Kondisi : Basah"); //Menampilkan text pada LCD
delay(100);
}
}
}
void blinkKuning(){
if (nilaiSuhu > 24 && nilaiSuhu <31)
{
nilaiSOIL = analogRead(SOIL);
if( nilaiSOIL>=350 && nilaiSOIL<=700){
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
digitalWrite(4,LOW);
Serial.print("2");
lcd.clear(); //Menghapus layar LCD
lcd.setCursor(0,0); //Menentukan posisi kursor pada awal penulisan
lcd.print("Suhu : "); //Menampilkan text pada LCD
lcd.setCursor(8,0); //Menentukan posisi kursor pada awal penulisan
lcd.print(nilaiSuhu); //Menampilkan nilaiSuhu pada LCD
lcd.setCursor(0,1); //Menentukan posisi kursor pada awal penulisan
lcd.print("Kondisi : Normal"); //Menampilkan text pada LCD
delay(100);
}
else if(nilaiSOIL >700){
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
digitalWrite(4,LOW);
Serial.print("1");
lcd.clear(); //Menghapus layar LCD
lcd.setCursor(0,0); //Menentukan posisi kursor pada awal penulisan
lcd.print("Suhu : "); //Menampilkan text pada LCD
lcd.setCursor(8,0); //Menentukan posisi kursor pada awal penulisan
lcd.print(nilaiSuhu); //Menampilkan nilaiSuhu pada LCD
lcd.setCursor(0,1); //Menentukan posisi kursor pada awal penulisan
lcd.print("Kondisi : Kering"); //Menampilkan text pada LCD
delay(100);
}
else {
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
digitalWrite(4,LOW);
Serial.print("3");
lcd.clear(); //Menghapus layar LCD
lcd.setCursor(0,0); //Menentukan posisi kursor pada awal penulisan
lcd.print("Suhu : "); //Menampilkan text pada LCD
lcd.setCursor(8,0); //Menentukan posisi kursor pada awal penulisan
lcd.print(nilaiSuhu); //Menampilkan nilaiSuhu pada LCD
lcd.setCursor(0,1); //Menentukan posisi kursor pada awal penulisan
lcd.print("Kondisi : Basah"); //Menampilkan text pada LCD
delay(100);
}
}
}
//SLAVE
void setup() //Semua kode dalam fungsi ini dieksekusi sekali
{
pinMode(7,OUTPUT); //Deklarasi LED sebagai output
Serial.begin(9600); //Set baud rate 9600
}
void loop() //Semua program dalam fungsi ini dieksekusi berulang
{
if(Serial.available()>0)
{
int data = Serial.read();
if(data=='1') //Jika data yang dikirimkan berlogika
{
digitalWrite(7,HIGH);
delay (2000);
digitalWrite(7,LOW);
delay (5000);
}
else
{
digitalWrite(7,LOW);
}
}
}
Prinsip Kerja :
Jadi ada 3 keadaan saat sensor bekerja, ketika terkena air maka tidak akan mengeluarkan tegangan dan jika kering akan mengeluarkan tegangan. Itu artinya jika kondisi basah maka tegangan rendah (0-350) sehingga motor tidak akan bergerak, sementara jika 350-700 itu tergolong normal dan kelembaman nya pas akan tetapi motor tidak akan bergerak dan jika diatas 700 itu tergolong kering dan motor akan bergerak.
Kata-kata normal, basah dan kering nanti nya akan ditampilkan di LCD pada baris kedua dibawah penampilan nilai suhu, ketika kelembaman nya kering (diatas 700) motor bergerak menandakan bahwa tanaman sedang disiram nanti kita akan menentukan lama waktu menyiram (2 detik) untuk di program dan setelah 2 detik motor akan delay selama 5 detik jadi nanti kita akan melihat apakah kelembaman nya masih sama atau tidak jika kelembaman nya masih sama maka setelah 5 detik dia akan menyiram lagi selama 2 detik kemudian delay lagi selama 5 detik begitu seterusnya hingga kelembaman normal atau basah maka motor akan berhenti.
Tidak ada komentar:
Posting Komentar