Oleh Nadiah dalam Tutorial Asas Elektronik
Tahap Kesukaran : Pertengahan, Mempunyai Asas Elektronik

Sistem di bawah ini tidaklah direka untuk kegunaan Sistem Pengiraan Ruang Letak Kereta yang sebenar. Ianya direka untuk tujuan pembelajaran reka cipta elektronik.

>> Pengenalan <<

Differential Amplifier. Dalam arus terus (Direct Current), differential amplifier boleh digunakan untuk mengukur voltan diantara dua nod. Nampak tak, dengan kata lain, ianya umpama mini voltmeter atau mungkin juga boleh dijadikan mini current meter. Untuk menjadikannya lebih menyeronokkan, anda boleh hubungkan litar ini kepada mikropengawal seperti papan Arduino untuk membaca voltan di antara dua nod. Selain itu, differential amplifer juga boleh meng ganda kan nilai perbezaan di antara dua nod yang diukurnya. Nilai gandaan tersebut mungkin serendah gandaan 0.1x atau setinggi 10x bergantung kepada reka bentuk litar dan sumber voltan yang digunakan.

Differential Amplifier

Sebagai contoh merujuk kepada gambar litar di atas, Vmeasure akan memberikan bacaan 2V jika perbezaan di antara Vin+ dan Vin- adalah 2V. Ini kerana menggunakan nilai perintang seperti di atas, litar differential amplifier akan memberi nilai gandaan sebanyak 1x. Fungsi litar di atas sebijik macam voltmeter kan? Bagi mereka yang biasa menggunakan papan Arduino atau mikropengawal PIC, mereka mungkin akan tertanya tanya kenapa litar ini diperlukan atau bila litar ini perlu diguna pakai dan kenapa tidak menggunakan terus pin Analog di papan Arduino atau mikropengawal sahaja.

>> pin analog hanya membaca nilai di antara nod di atas litar dan nod ground <<

Berdasarkan kenyataan di atas, bagaimana jika kita inginkan mikropengawal kita mengukur dua nod yang tiada kena mengena dengan nod ground. Di sini lah di mana litar differential amplifier akan memainkan peranannya.

>> differential amplifier boleh digunakan untuk mengukur voltan diantara dua nod <<

Di dalam tutorial Prototaip Pengira Ruang Letak Kereta yang kita akan lakukan sebentar lagi, kita akan cuba mengaplikasikan litar differential amplifier di dalamnya. Litar differential amplifier yang akan kita gunakan mempunyai nilai gandaan 1x. Ini bermaksud, Vmeasure akan menunjukkan bacaan berdasarkan perbezaan Vin+ dan Vin-. Objektif kita kali ini adalah untuk melihat litar differential amplifier kita berfungsi dahulu sahaja.

>> Prototaip Pengira Ruang Letak Kereta <<

Kita akan cuba membina satu prototaip di mana prototaip ini akan merekodkan bilangan kereta masuk serta kereta keluar lalu memaparkan bilangan kenderaan di dalam ruang letak kereta. Diod pemancar cahaya inframerah dan pembaca cahaya inframerah akan digunakan untuk mengesan kehadiran masuk dan keluar kereta. Isyarat yang dihasilkan oleh pembaca cahaya merah akan diukur oleh litar differential amplifier lalu dihantar kepada mikropengawal atau papan Arduino Uno. Akhir sekali, paparan LCD akan memaparkan jumlah kereta yang berada di dalam ruang letak kereta dan akan memaparkan FULL jika ruang letak kereta sudah penuh.

>> Komponen Apa yang anda perlukan <<

Untuk tutorial ini, anda perlukan :

>> Sambungan Litar <<

Litar Fritzing : Parking Counter.Fzz

>> Keterangan Litar <<

Kita tidak akan menyentuh tentang litar LCD di dalam tutorial ini. Jika anda beminat untuk membaca tentang litar LCD, anda boleh melakukan pembacaan di Arduino Mengawal Kontras Paparan LCD 16×2 Menggunakan Perintang Boleh Laras.

Litar Sensor Dan Differential Amplifier

Litar di atas adalah litar diod pemancar cahaya inframerah, pembaca cahaya inframerah serta differential amplifier. Pembaca cahaya inframerah akan mengeluarkan voltan yang berbeza apabila terdapat kereta di hadapan dengan tidak terdapat kereta di hadapan. Sebagai contoh apabila terdapat kereta di hadapan pembaca cahaya inframerah, bacaan voltan yang dihasilkan oleh pembaca cahaya inframerah adalah 3V. Seterusnya, Vmeasure pada litar differential amplifier juga akan menghasilkan nilai 3V. Ini kerana nilai gandaan yang ditetapkan oleh perintang di dalam litar differential amplifier kita adalah gandaan 1x. Ahaaa, mungkin anda terfikir kenapa kita perlukan litar differential amplifier ini walhal nilai voltan nya sama? Seperti yang saya katakan sebelum ini, objektif kita kali ini adalah untuk melihat litar differential amplifier kita berfungsi dahulu sahaja. Di tutorial lain kelak, apabila kita sudah sedikit agak mahir, kita akan membuat litar differential amplifier dengan nilai gandaan yang lain pula.

Litar Pelaras

Litar di atas pula adalah litar untuk menetapkan paras di mana sensor akan mengesan kenderaan. Dengan memusing perintang boleh laras di atas, anda akan menetapkan paras voltan yang akan menentukan sama ada kereta dikesan oleh pembaca isyarat atau tidak. Jika perintang boleh laras dilaras dengan betul, apabila terdapat objek di hadapan pembaca cahaya inframerah, diod pemancar cahaya merah akan menyala. Tetapi apabila tidak terdapat objek di hadapan pembaca cahaya inframerah, diod pemancar cahaya merah tidak akan menyala. Litar ini hanya akan berfungsi hanya selepas kod dimuat naik ke dalam papan Arduino Uno.

>> Kod Arduino <<

/* Programmer : Nurunadiah Binti Mohd Noor
 * More info at https://www.nadieleczone.com.my
 */

#include <LiquidCrystal.h>

#define sensorIn A0
#define sensorInSet A1
#define sensorInIndicator A2

#define sensorOut A3
#define sensorOutSet A4
#define sensorOutIndicator A5

int totalCar = 0;
int maxCar = 20;

const int rs = 6, en = 7, d4 = 8, d5 = 9, d6 = 10, d7 = 11;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() 
{
  Serial.begin(9600);

  pinMode(sensorInIndicator, OUTPUT);
  pinMode(sensorOutIndicator, OUTPUT);
  digitalWrite(sensorInIndicator, LOW);
  digitalWrite(sensorOutIndicator, LOW);
  
  lcd.begin(16, 2);
  lcd.print("Parking Counter ");
  lcd.setCursor(0,1);
  lcd.print("Total Car: 0    ");  
}

void loop() 
{

  if( analogRead(sensorIn) < analogRead(sensorInSet) )
  {
    delay(100);
    digitalWrite(sensorInIndicator, HIGH);  
    if(totalCar == maxCar) totalCar = maxCar;
    else totalCar++;
    while( analogRead(sensorIn) < analogRead(sensorInSet) ){delay(100);}
    if(totalCar == maxCar) 
    {
      lcd.setCursor(11,1); lcd.print("    ");
      lcd.setCursor(11,1); lcd.print("FULL");      
    }
    else
    {
      lcd.setCursor(11,1); lcd.print("    ");
      lcd.setCursor(11,1); lcd.print(totalCar);
    }
  }
  else
  {
    digitalWrite(sensorInIndicator, LOW);   
  }
  
  if( analogRead(sensorOut) < analogRead(sensorOutSet) )
  {
    delay(100);
    digitalWrite(sensorOutIndicator, HIGH);  
    if(totalCar > 0) totalCar--;   
    while( analogRead(sensorOut) < analogRead(sensorOutSet) ){delay(100);}
    lcd.setCursor(11,1); lcd.print("    ");
    lcd.setCursor(11,1); lcd.print(totalCar);           
  }
  else
  {
    digitalWrite(sensorOutIndicator, LOW);    
  }  
}

Muat naik kod Prototaip Pengira Ruang Letak Kereta di atas ke dalam papan Arduino Uno. Selepas berjaya memuat naik, paparan LCD akan memaparkan “Parking Counter“,”Total Car: 0“. Jangan lupa untuk menetapakan paras untuk pembaca isyarat cahaya inframerah mengesan kenderaan. Lakukan ini dengan memusingkan peringtang boleh laras, Jika perintang boleh laras dilaras dengan betul, apabila terdapat objek di hadapan pembaca cahaya inframerah, diod pemancar cahaya merah akan menyala. Tetapi apabila tidak terdapat objek di hadapan pembaca cahaya inframerah, diod pemancar cahaya merah tidak akan menyala. Paparan LCD akan memaparkan “Parking Counter“,”FULL” apabila kenderaan mencapai bilangan 20 biji.

Paparan LCD Apabila Ruang Kereta Mempunyai 1 Biji Kereta

Paparan LCD Apabila Ruang Kereta Sudah Dipenuhi Kereta

>> Tahniah, anda hebat <<

Anda telah berjaya menyelesaikan tutorial Mengenali Differential Amplifier Dalam Prototaip Pengira Ruang Letak Kereta.

TINGGALKAN JAWAPAN BALAS ANDA

Sila masukkan ulasan anda!
Sila masukkan nama anda di sini