Showing posts with label proteus. Show all posts
Showing posts with label proteus. Show all posts

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!

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!!

15 December 2014

Simulasi Litar Arduino Menggunakan Perisian Proteus - Siri 1

Assalamualaikum wbt & Salam Sejahtera.

Pada hari ini saya ingin berkongsi cara membuat simulasi litar Arduino menggunakan perisian Proteus.
Saya menggunakan Proteus 8 (latest) sebagai contoh dan IDE Arduino 1.5.7 ERW untuk menulis aturcara Arduino.

Saya akan membuat satu litar yang ringkas dahulu sebagai permulaan.

Litar Skematik guna Proteus
Operasi litar saya adalah: Apabila suis push-button ditekan, 3 LED yang berlainan warna akan menyala secara bergilir-gilir mengikut turutan. BLUE (1 saat), diikuti warna RED (1 saat) dan kemudian warna YELLOW (1 saat). Selepas itu, semua LED akan padam. Alaa, macam konsep running light..

Sebelum anda mula melukis litar skematik ini, pastikan perisian libraries Proteus anda telah ditambah dengan litar Arduino. Macam mana nak check? Jangan risau.. Saya akan tunjuk step-by-step..

Gambarajah 1 - Component Mode
Ok. Jika anda lihat gambar di atas, ada button yang menunjukkan Component Mode (dalam box merah, bawah anak panah). Klik button tu kemudian gerakkan mouse anda ke huruf P (dalam box kuning). Klik dan splash screen seperti di bawah akan muncul.

Splash Screen
Jika ada tertulis perkataan Emulator, maknanya Library Proteus anda telah diupdate. Bagi yang tiada, anda boleh muat turun fail ini dan ikut arahan yang terdapat di dalam fail tersebut.


~bersambung..