02 December 2015

Pengenalan - ARDUINO Dan Alat Perhubungan Tanpa Wayar

ASSALAMUALAIKUM & SALAM SEJAHTERA

Untuk entry kali ini, saya akan berkongsi bersama para pembaca tentang komponen komunikasi yang biasa digunakan bersama mikro pengawal Arduino.

Persoalan yang biasa diajukan kepada saya adalah mengapa perlu ada komponen komunikasi? Jawapannya mudah! Untuk menghantar isyarat kepada sesuatu alat dengan menggunakan kaedah tanpa wayar atau wireless.

Sebagai contoh, jika saya ingin menghidupkan lampu rumah yang terletak 200km dari lokasi saya berada sekarang, apa yang saya perlukan adalah Arduino dan 1 alat komunikasi. Kedua-dua alat ini saya akan letakkan di rumah saya dan berada dalam keadaan ON 24 jam. Bila saya ingin menghidupkan lampu / kipas, saya hanya perlu membuat panggilan ke alat komunikasi yang di attach bersama Arduino dan pommm!! lampu pun hidup.. Hebat bukan?!

Terdapat beberapa jenis alat komunikasi yang biasa digunakan bersama Arduino, antaranya ialah:
  1. 433MHz RF Module
  2. Bluetooth Module
  3. GSM Module
  4. Wi-Fi Module
433MHz Radio Frequency Module

Bluetooth Module
GSM Module (Siemens TC-35)
Wi-Fi Module
Saya akan kongsikan dalam post yang akan datang cara menggunakan 433MHz RF Transmitter & Receiver bersama Arduino.

Tunggu...

06 October 2015

Litar Bekalan Kuasa 12V, 9V dan 5V DC (Power Supply Circuit)

ASSALAMUALAIKUM WBT & SALAM SEJAHTERA

Litar bekalan kuasa ini menghasilkan Arus Terus (DC) sebanyak TIGA keluaran (output) iaitu:
  1. 5V  (untuk litar PIC)
  2. 9V  (untuk Arduino, litar relay)
  3. 12V (untuk litar motor)
Ketiga - tiga keluaran ini boleh digunakan secara serentak. Menggunakan 4 buah diod 1N4001 yang bertindak sebagai "bridge rectifier" atau penerus, diod akan menukar AC voltage kepada DC voltage dan 2 kapasitor akan bertindak sebagai penapis.

LM7809, LM7805 dan LM7812 bertindak sebagai voltage regulator atau pengatur voltan akan mengeluarkan voltan keluaran yang dikehendaki. 2 digit terakhir pada voltage regulator ini bermaksud nilai voltan yang akan dihasilkan. Contoh, LM7805. 2 digit terakhir (05) bermaksud, voltan keluaran yang akan dihasilkan adalah 5V DC.

Litar Bekalan Kuasa dengan 3 Voltan Keluaran (ISIS)
PCB Footprint Untuk Litar Bekalan Kuasa (ARES)
3D View Litar Bekalan Kuasa.
Memandangkan litar ini mudah dan ringkas, namun proses penghasilannya tetap rumit. Anda masih perlu melakukan proses UV, develop, etching, drilling dan soldering. Jika tersilap melakukan proses develop, terpaksa pulak membeli UV Board yang baru (RM15 - RM 17 bagi saiz 15cm x 10 cm). Jika tiada maslah bagi setiap proses di atas, berkemungkinan litar anda tidak dapat beroperasi disebabkan silap melukis litar pada software. Berapa banyak kos dah habis? Penat lagi.. Supervisor dah makin hilang sabar dah tu..

JANGAN RISAU.. KAMI BOLEH MEMBANTU MERINGANKAN BEBAN ANDA!

Dengan RM45.00**, anda akan mendapat satu set litar bekalan kuasa 5V, 9V & 12V (1 Ampere) yang cun dan tip - top. Anda tak perlu membazir masa, tenaga dan wang untuk membuat litar power supply lagi. Kami telah melakukan ujian kendalian sebelum litar ini dihantar kepada ada bagi memastikan kualitinya terjamin.

Litar Bekalan Kuasa 5, 9 & 12V DC (1 Amp) - RM45.00**

04 October 2015

Tutorial 5 - Motor Control - Forward Reverse PART 2

ASSALAMUALAIKUM W.B.T & SALAM SEJAHTERA 


Pada kali ini, saya akan berkongsi cara atau tips yang ke-2 untuk membuat kawalan motor ( mara & songsang). Jika entry sebelum ini saya menggunakan litar geganti, di mana litar ini hanya boleh mengawal sama ada motor berputar mara atau songsang sahaja. MENGAWAL KELAJUAN ADALAH MUSTAHIL jika anda menggunakan litar geganti pada motor anda. Ini adalah satu daripada beberapa kelemahan yang ada pada litar geganti.

Namun begitu, cara kedua ini adalah lebih baik dan efficient jika dibandingkan dengan cara sebelum ini. Ianya adalah dengan menggunakan integrated - circuit (IC) L293D iaitu Dual H-Bridge Motor Control. Harga IC ini di pasaran adalah lebih kurang RM8 ke RM10.00. Dengan menggunakan IC ini, anda boleh:
  1. Membuat kawalan motor (forward & reverse)
  2. Mengawal kelajuan motor
  3. Maksimum 2 buah motor DC boleh digunakan dalam satu - satu masa.
HEBAT BUKAN??? 

IC L293D
Saya akan membincangkan secara ringkas tentang kaedah menyambung IC ini kepada papan Arduino anda.

IC ini mempunyai 16 pin. Jika anda ingin mengawal sebuah motor, anda hanya akan menggunakan hanya 8 pin (sebelah) sahaja. Jika 2 buah motor, anda perlu menggunakan kedua - dua belah IC ini (kiri & kanan).

Pin configuration untuk IC ini adalah seperti gambar di bawah:

L293D Pin Configuration
Untuk memutarkan satu motor, saya mudahkan dalam bentuk senarai:
  • Pin 1 - Enable Pin (Sambung pada mana - mana pin PWM Arduino)
  • Pin 2 - Rotation Pin (Sambung pada mana - mana pin Arduino)
  • Pin 3 - Motor A (Sambung pada motor A+)
  • Pin 4, 5, 12 & 13 -GND (Sambung pada GND Arduino dan GND bekalan kuasa motor)
  • Pin 6 - Motor A (Sambung pada motor A -)
  • Pin 7 - Rotation Pin (Sambung pada pin Arduino)
  • Pin 8 - DC Power (Sambung bahagian positive bateri @ bekalan kuasa untuk motor)
  • Pin 16 - DC Power (Sambung 5V dari Arduino untuk menghidupkan IC ini)
Dalam Proteus, sambungan litar akan kelihatan seperti berikut:

Litar Skematik Proteus untuk L293D
Jika anda perhatikan, saya menyambungkan kaki PWM (pin 11) Arduino pada Enable Pin (EN1) L293D. Ini bertujuan agar saya dapat mengubah kelajuan motor dengan menggunakan function analogWrite.

Untuk pin Input 1 (IN1) dan Input 2 (IN2) pula, saya hanya menggunakan pin digital biasa dari Arduino (pin 12 & pin 13). Ini kerana, pin ini hanya bertujuan untuk mengawal arah rotasi motor sama ada forward atau reverse. Sebagai contoh, jika saya membuat arahan:

digitalWrite (12, HIGH);
digitalWrite (13, LOW);
** motor akan berputar secara forward

digitalWrite (12, LOW);
digitalWrite (13, HIGH);
**motor akan berputar secara reverse

digitalWrite (12, LOW);
digitalWrite (13, LOW);
**motor berhenti berputar


digitalWrite (12, HIGH);
digitalWrite (13, HIGH);
**invalid situation. IC anda berkemungkinan akan rosak

Saya kongsikan program Arduino untuk kawalan rotasi dan kelajuan motor. Sambungan di antara IC, Arduino dan DC motor masih mengikut skematik di atas. Operasi motor adalah seperti berikut:
  1. Forward dalam masa 5 saat dengan kelajuan penuh (PWM = 255), kemudian;
  2. Stop dalam masa 3 saat, kemudian;
  3. Reverse dalam masa 5 saat dengan kelajuan 50% (PWM = 128), kemudian;
  4. Stop dalam masa 3 saat. Ulang operasi 1.

int enablePin = 11;
int motor_Out_A = 12;
int motor_Out_B = 13;

void setup() {

pinMode (enablePin, OUTPUT);
pinMode (motor_Out_A, OUTPUT);
pinMode (motor_Out_B, OUTPUT);
}

void loop() {

analogWrite(enablePin, 255);
digitalWrite(motor_Out_A, HIGH);
digitalWrite(motor_Out_B, LOW);
delay (5000);

analogWrite(enablePin, 0);
digitalWrite(motor_Out_A, LOW);
digitalWrite(motor_Out_B, LOW);
delay (3000);

analogWrite(enablePin, 128);
digitalWrite(motor_Out_A, LOW);
digitalWrite(motor_Out_B, HIGH);
delay (5000);

analogWrite(enablePin, 0);
digitalWrite(motor_Out_A, LOW);
digitalWrite(motor_Out_B, LOW);
delay (3000);

}

 SELAMAT MENCUBA...!!

Like Facebook kami di sini!

26 August 2015

Tutorial 4 - Motor Control - Forward & Reverse PART 1

Assalamualaikum wbt & Salam Sejahtera

Pada kali ini, saya akan menerangkan secara ringkas 2 kaedah yang biasa digunakan untuk mengawal motor. Yang dimaksudkan dengan mengawal di sini adalah motor membuat  rotasi hadapan (forward) dan juga rotasi ke belakang (reverse). Kaedah yang boleh digunakan adalah:
  1. Menggunakan 2 set litar geganti (relay)
  2. Menggunakan IC L293D (H-Bridge Motor Driver)
Untuk Bahagian 1 ini, saya akan menerangkan lebih lanjut cara kawalan motor menggunakan 2 set litar geganti. Terdapat beberapa kelemahan mengawal motor menggunakan litar geganti ini. Antaranya ialah:
  1. Kos litar geganti yang agak mahal.
  2. Hanya boleh mengawal arah rotasi sahaja, bukan kelajuan
 Ramai yang masih tidak faham tentang fungsi litar geganti. Litar geganti biasanya digunakan untuk menghidupkan satu litar yang lain (lebih dari 5V) apabila menerima isyarat dari Arduino.
Sebagai contoh, apabila saya ingin menghidupkan motor DC 12 Volt selepas sensor suhu (LM35) mengesan 40 darjah Celcius, saya memerlukan litar geganti. Ini kerana, Arduino hanya mengeluarkan isyarat 5V dan maksimum 40mA pada satu pin keluaran.

Mana mungkin dengan 5V dan current 40mA boleh menggerakkan satu motor 12V??!!

Dalam kes ini, litar geganti sangat sangat membantu. Isyarat yang dihantar oleh pin Arduino akan mengaktifkan litar geganti melalui transistor yang ada dalam litar tersebut.
Ramai juga yang bertanya pada saya, berapakah maksimum beban yang boleh diletakkan pada keluaran relay? Jawapannya mudah sahaja. Maksimum load yang boleh digunakan biasanya tertera pada badan komponen relay itu sendiri. Saya boleh katakan yang relay boleh menampung sehingga 240V AC / 10 A dan 30V DC / 10A. Besar tu.. Bukan setakat boleh nak hidupkan DC motor 12V,  nak hidupkan lampu pendaflour pun boleh!!

5V Relay
Terdapat beberapa jenis voltan untuk mengaktifkan coil yang ada pada relay. Ada 5VDC, 9VDC, 12VDC dan sebagainya.
Gambar di atas adalah komponen relay jenis 5VDC. Ramai pelajar yang terkeliru  dengan angka tersebut. Mereka ingatkan 5V adalah maksimum beban yang boleh digunakan. Tidak!! Ianya hanyalah nilai voltan yang perlu untuk mengaktifkan coil pada relay. Ini bermaksud, kita perlu letakkan +5VDC pada hujung terminal coil dan GROUND pada hujung yaang satu lagi. Itu sahaja.

Layout Pin Relay

Skematik Litar Geganti

Litar Kawalan Motor Mara Sonsang (Forward Reverse)

17 June 2015

SELAMAT BERPUASA

Mungkin hari-hari yang dilewati telah meninggalkan secuit kenangan yang tak terlupakan,
Ada salah dan khilaf,
Ada dosa yang mengikuti perjalanan hari-hari itu.
Agar tak ada sesal,
Tak ada dendam,
Mari kita sama-sama sucikan hati,diri dan jiwa kita.
Setulus hati memohon keampunan maaf,
 
Marhaban Yaa Ramadhan……

Selamat Menunaikan Ibadah Puasa.

15 June 2015

ANALOG OR DIGITAL INPUT??

Assalamualaikum wbt & Salam Sejahtera

Komponen pengesan (sensors)  atau suis terbahagi kepada 2 kategori iaitu analog dan digital. Adalah sangat penting bagi pengguna untuk mengenalpasti jenis jenis suis dan sensor yang akan digunakan. Ini akan memudahkan kita menulis aturcara pada micro-controller. Entry kali ini akan memberi sedikit tips jenis - jenis input yang ada di pasaran.

Analog Input.

Input jenis ini memberi nilai bacaan berbeza pada keadaan yang berlainan. sebagai contoh, temperature sensor. Semakin tinggi haba dikenakan pada sensor tersebut, bacaan pada sensor akan meningkat. Begitu juga PIR sensor dan ultrasonic sensor. Nilai analog sensor akan berubah jika jarak objek pada sensor tersebut semakin hampir. Ini membolehkan kita menggunakan sensor ini untuk mengukur jarak kerana bacaan analog ini berubah mengikut keadaan (walaupun perubahan kecil). Contoh mudah yang lain adalah variable resistor. Bacaan akan berubah jika VR berubah nilainya.

Digital Input

Digital input hanya boleh berlaku dalam 2 keadaan sahaja iaitu YA atau TIDAK. Tiada nilai selain itu. Contoh terbaik adalah push button switch. Kita hanya boleh tekan (ON) atau release (OFF). Tidak mungkin ada keadaan selain daripada itu. Contoh lain adalah water sensor. Water sensor digunakan untuk mengenalpasti kehadiran air. Oleh itu, hanya ada 2 keluaran bacaan sahaja sama ada ADA AIR atau TIADA AIR. Kita tidak boleh menggunakan water sensor untuk untuk mengukur kuantiti air.




Apabila anda dah membeli sensor, amalkan membuat analogread Serial sensor anda. Kaji bacaan yang dipaparkan pada PC anda. Dari situ, anda akan tahu bagaimana sensor anda beroperasi.

Analog Read Serial

30 April 2015

Tutorial 3 - Water Sensor & LCD

Assalamualaikum w.b.t & Salam Sejahtera


Untuk entry kali ini, saya akan berkongsi tutorial cara menggunakan pengesan air (water sensor) bersama dengan paparan LCD 16x2 dan juga LED. berikut adalah komponen - komponen yang diperlukan untuk menghasilkan litar ini.

  1. Arduino UNO
  2. Jumper Cable
  3. Perintang boleh laras 10k Ohm
  4. Paparan 16x2 LCD
  5. LED (boleh juga kalau nak ganti dengan Buzzer)
  6. Water Sensor
Water Sensor

16 x 2 LCD Display
Buzzer

Sambungan litar adalah seperti di bawah.

Sambungan Litar
Aturcara Arduino:


#include <LiquidCrystal.h>  
 LiquidCrystal lcd(12, 11, 5, 4, 3, 2);  
 
int WaterSensor = A0;  
int Buzzer = 10;  
int Water = 0;  
 
void setup()
 {  
   pinMode (WaterSensor, INPUT);  
   pinMode (Buzzer, OUTPUT);  
   lcd.begin(16, 2);  
   lcd.setCursor (2,0);  
   lcd.print("WATER SENSOR");  
   lcd.setCursor (3,1);  
   lcd.print("WITH ALARM");  
   delay (3000);  
   lcd.clear();  
 }  
   
void loop()
{  
  Water = digitalRead(WaterSensor);  
  
  if (Water == HIGH)
  {  
    delay (100);  
    lcd.clear();  
    lcd.setCursor (3,0);  
    lcd.print("WATER WAS");  
    lcd.setCursor (4,1);  
    lcd.print("DETECTED");  
    digitalWrite (Buzzer, HIGH);  
 }  
  
  else
  {  
    lcd.setCursor (7,0);  
    lcd.print("WATER WAS");  
    lcd.setCursor (0,1);  
    lcd.print("NOT DETECTED");   
    digitalWrite (Buzzer, LOW);  
  }  
}





20 March 2015

Pemilihan Motor



Assalamualaikum wbt & Salam Sejahtera

Saya sering ditanya melalui email mengenai spesifikasi motor dan jenis motor yang sesuai digunakan untuk pelajar projek akhir. Jadi, untuk entry kali ini, saya ingin berkongsi serba sedikit mengenai motor. Terdapat beberapa jenis motor yang ada di pasaran, antaranya ialah:

  1. DC Brush Motor
  2. DC Geared Motor
  3. Stepper Motor
  4. Servo Motor
Sebelum membeli apa - apa jenis motor, anda mesti faham operasi untuk kesemua jenis motor tersebut. Elakkan diri anda ditipu oleh peniaga!! Di sini saya ingin membuat sedikit rumusan tentang 4 jenis motor di atas.

DC Brush Motor
  • Watt yang pelbagai (rendah, sederhana & tinggi)
  • Berprestasi tinggi
  • Kestabilan yang terbaik
  • Biasa digunakan untuk robot dan industri
  • Harga dalam julat RM400++ dan ke atas
DC Geared Motor


  • Motor yang sangat popular untuk pelajar projek akhir
  • Watt yang rendah
  • Agak stabil
  • Harga dalam julat RM30 dan ke atas (ikut Watt)
  • Pastikan anda beli ikut rpm (rotation per minute) yang betul. Semakin tinggi rpm, torque motor semakin rendah. Jika anda mahu gunakan motor ini untuk mengangkat atau menggerakkan  barang, pastikan torque motor bersesuian. Carilah motor yang low rpm.
Stepper Motor

Stepper Motor 1
Stepper Motor 2
  • Motor berpusing mengikut step atau fasa
  • Contoh: Jika anda beli stepper motor yang berspesifikasi 4 step, ini bermaksud motor akan bergerak dari 0 darjah dan terus ke 90 darjah (360/4 step), delay, kemudian bergerak dari 90 ke 180 (90+90), delay. dari 180 ke 270 (180+90) dan sehinggalah motor kembali ke 0 darjah
  • Motor yang jarang-jarang digunakan
  • Harga bergantung pada berapa banyak step. Semakin tinggi step, semakin mahal
  • harga dalam julat RM50 dan ke atas


 Servo Motor
  • Berbanding dengan motor lain yang boleh berpusing 360 darjah, motor ini berputar dari 0 ke 180 darjah sahaja
  • Motor boleh bergerak mengikut sudut yang ditetapkan pada program (Arduino/PIC)
  • Contoh, jika saya mahu motor berputar dari 0 ke sudut 43 darjah, saya hanya perlu taip myservo.write(43) dan letak sedikit delay (300ms)
  • Speed agak perlahan tetapi torque MENGAGUMKAN!
  • Motor yang amat - amat - amat berguna
  • Harga dalam julat RM40 dan ke atas

Adalah amat penting untuk anda tahu aplikasi litar sebelum membeli motor. Jika anda meminta pendapat peniaga mengenai jenis motor, anda seolah - olah meletakkan leher untuk mereka sembelih kerana mereka pasti akan menjual motor yang susah untuk mereka jual. Jadi, make sure anda ada spesifikasi motor yang sesuai sebelum ke kedai elektronik.

    19 January 2015

    Simulasi Litar Arduino Menggunakan Perisian Proteus - Siri 2

    Assalamualaikum wbt & Salam Sejahtera.

    Selepas anda memuat turun fail Library Arduino, ikut arahan yang terdapat dalam fail itu untuk membolehkan anda membuat simulasi Arduino pada Proteus.

    Arahan yang terdapat dalam fail Library Arduino
    Sekarang, buka Proteus anda dan pada Component Mode, klik pada simbol P. Pastikan perkataan Emulator wujud dalam senarai kategori komponen (rujuk gambar bawah). Jika tiada, anda mungkin tidak mengikut arahan dengan betul. Sila lihat video dalam Youtube untuk bantuan.
    Emulator pada kategori komponen
    Double click pada Emulator dan pilih Arduino UNO R3. Kemudian, tambah komponen yang lain seperti perintang, LED dan suis.

    Jika anda mahu kaedah pantas cara menambah komponen, taip sahaja RES untuk perintang, RED-LED untuk LED dan BUTTON untuk suis pada ruangan keyword.

    Ruangan keywords

    Sambungkan litar seperti gambar bawah. Tukar nilai perintang anda agar litar dapat berfungsi dengan baik.
    Running LED dengan 1 suis
     Copy aturcara dibawah dan paste pada IDE Arduino anda.

    const int buttonPin = A0;    
    int LED3 =  13;
    int LED2 =  12;
    int LED1 =  11;
    int buttonState = 0;


    void setup() {
     
    pinMode(LED3, OUTPUT);
    pinMode(LED2, OUTPUT);
    pinMode(LED1, OUTPUT);
    pinMode(buttonPin, INPUT);
    }

    void loop() {
    buttonState = digitalRead(buttonPin);

    if (buttonState == HIGH) {
      

    digitalWrite(LED3, LOW);
    digitalWrite(LED2, LOW);
    digitalWrite(LED1, HIGH);
    delay(500);
      

    digitalWrite(LED3, LOW);
    digitalWrite(LED2, HIGH);
    digitalWrite(LED1, LOW);
    delay(500);
         

    digitalWrite(LED3, HIGH);
    digitalWrite(LED2, LOW);
    digitalWrite(LED1, LOW);
    delay(500);
    }

    else {

    digitalWrite(LED3, LOW);
    digitalWrite(LED2, LOW);
    digitalWrite(LED1, LOW);
    }  
    }


    Selepas itu, pada IDE Arduino anda, klik butang Verify sehingga keluar status Done compiling.
    Butang Verify pada IDE Arduino
    Bagi memudahkan kita load hex file, langkah berikut adalah sangat penting.
    1. Taip %TEMP% pada column Run dan tekan Enter
    2. Patah balik ke folder Local
    3. Create shortcut untuk folder Temp

    Step 1

    Langkah 2 - Klik pada butang Local untuk patah balik ke folder

    Langkah 3 - Create Shorcut pada desktop
    Untuk load hex file anda ke dalam Proteus, double click pada Arduino anda di Proteus dan splash screen berikut akan terpapar.



    Pada Program File, klik pada icon folder (rujuk gambar atas). Pergi ke desktop dimana anda telah create shortcut folder Temp. Pilih fail yang ada perkataan buildxxxxxxxxxxxx.tmp.
    Double click pada folder tersebut dan pilih .hex file. JANGAN PILIH .ELF!!
    Klik Open dan OK.
    Tekan butang Run the Simulation dan akan anda dapat lihat LED akan berkelip secara bergilir-gilir setiap kali anda menekan suis.
    Run the simulation

    SELAMAT MENCUBA!!