Showing posts with label pemograman arduino. Show all posts
Showing posts with label pemograman arduino. Show all posts

Saturday, 11 November 2017

Driver Motor L293D , definisi dan cara penggunaanya

arduinopedia.com – Driver Motor L293D , definisi dan cara penggunaanya
pada kesempatan kali ini  arduinopedia akan membahas tentang Driver Motor L293D yang admin ambil dari sumber kelas-fisika.com YANG menjelaskan bagaimana cara mengendalikan motor DC dengan menggunakan L293D IC Motor Driver dengan Arduino. dipasaran banyak sekali jenis dan desain dari modul L293D yang pada dasarnya memiliki kesamaan fungsi. gambar di bawah adalah contoh berbagai jenis desain modul dari Driver motor L293D.

1. Pendahuluan

Driver Motor adalah modul untuk motor yang memungkinkan Anda mengontrol kecepatan kerja dan arah dua motor secara bersamaan. Driver Motor ini dirancang dan dikembangkan berdasarkan IC L293D.
L293D adalah IC Driver Motor dengan banyaknya Pin sebanyak 16. Ini dirancang untuk memberikan arus penggerak bidirectional pada tegangan dari 5 V sampai 36 V.

1.2 Hardware yang dibutuhkan

  • Arduino UNO 1 buah
  • Motor Driver 1 buah
  • DC Motor 2 buah
  • Female to Male Jumper wire 8 kabel
  • 9-12V Battery

1.3 Skema Pin IC L293D

L293D adalah IC 16 pin, dengan delapan pin di setiap sisi, untuk mengendalikan dua motor DC secara bersamaan. Ada 4 pin INPUT, 4 pin OUTPUT dan 2 ENABLE pin untuk masing-masing motor.

Pin 1: Saat Enable 1 / 2 HIGH, Bagian kiri IC akan bekerja, motor terhubung dengan pin 3 dan pin 6 akan diputar.
Pin 2: Input 1, bila pin ini HIGH arus akan mengalir meski output 1.
Pin 3: Output 1, pin ini terhubung dengan satu terminal motor.
Pin 4/5: pin GND
Pin 6: Output 2, pin ini dihubungkan dengan satu terminal motor.
Pin 7: Input 2, bila pin ini HIGH arus akan mengalir meski output 2.
Pin 8: VSS, pin ini digunakan untuk memberi power supply ke motor yang terhubung dari 5V sampai 36V maksimal tergantung Motor yang terhubung.
Pin 9: Bila Enable 3/4 HIGH, Bagian kanan IC akan bekerja, motor terhubung dengan pin 11 dan pin 14 akan diputar.
Pin 10: Input 4, bila pin ini HIGH arus akan mengalir meski output 4.
Pin 11: Output 4, pin ini dihubungkan dengan satu terminal motor.
Pin 12/13: pin GND
Pin 14: Output 3, pin ini dihubungkan dengan satu terminal motor.
Pin 15: INPUT 3, bila pin ini HIGH arus akan mengalir meski output 3.
Pin 16: VCC, untuk suplai daya ke IC i.e 5V.

2. Koneksi dengan Arduino

1. Modul 5V (VCC) – Arduino 5V.
2. Modul GND – Arduino GND.
3. Modul 1 – Arduino D8.
4. Modul 2 – Arduino D9.
5. Modul 3 – Arduino D10.
6. Modul 4 – Arduino D11.
7. Modul Motor terminal – motor DC.
8. Modul VSS power terminal- Sumber daya eksternal 9V
Buatlah koneksi seperti ditunjukkan di atas.
Pastikan bahwa jumper sudah diatur pada Enable pin 1-2 dan Enable pin 3-4 modul, sehingga motor akan diaktifkan dan bekerja dengan kecepatan maksimal.

2.1. Mekanisme Kerja

Rotasi motor tergantung pada Enable Pins. Bila Enable 1/2 adalah HIGH, motor yang terhubung ke bagian kiri IC akan berputar sesuai dengan cara berikut:

Input Output Hasil
0 0 Stop
0 1 Anti Clockwise
1 0 Clockwise
1 1 Stop


3. Pemrograman:

Berikut adalah kode untuk menjalankan rangkaian ini.


//Tutorial by kelas-fisika cara mengontorl motor DC

//Motor A
const int inputPin1  = 10;    // Pin 15 of L293D IC
const int inputPin2  = 11;    // Pin 10 of L293D IC
//Motor B
const int inputPin3  = 9;   // Pin  7 of L293D IC
const int inputPin4  = 8;   // Pin  2 of L293D IC


void setup() 
{
    pinMode(inputPin1, OUTPUT);
    pinMode(inputPin2, OUTPUT);
    pinMode(inputPin3, OUTPUT);
    pinMode(inputPin4, OUTPUT);  
}

void loop() 
{
    digitalWrite(inputPin1, HIGH);
    digitalWrite(inputPin2, LOW);
    digitalWrite(inputPin3, HIGH);
    digitalWrite(inputPin4, LOW);  
}


4. Keluaran / Output

Setelah koneksi anda akan copy dan paste kode ini di Arduino IDE dari pada upload kode. Kedua motor tersebut akan mulai berputar.







Wednesday, 30 November 2016

Fungsi Struktur Kontrol IF pada Arduino

If (bersyarat) dan == ,! =, <,> (operator perbandingan)

If, yang digunakan bersama dengan operator perbandingan, tes apakah kondisi tertentu telah tercapai, seperti masukan berada di atas jumlah tertentu.Contog Program If :

if (someVariable > 50)
{
}
// do something here
program untuk melihat apakah someVariable lebih besar dari 50. Jika ya, program ini mengambil tindakan tertentu. Dengan kata lain, jika pernyataan dalam kurung adalah benar, pernyataan di dalam kurung dijalankan. Jika tidak, program dilompati.

Kurung dapat dihilangkan setelah pernyataan If. Jika hal ini dilakukan, baris berikutnya (didefinisikan oleh titik koma) menjadi satu-satunya pernyataan kondisional.


if (x > 120) digitalWrite(LEDpin, HIGH);
if (x > 120)
if (x > 120){ digitalWrite(LEDpin, HIGH); }
digitalWrite(LEDpin, HIGH);
digitalWrite(LEDpin1, HIGH);
if (x > 120){
} // all are correct
digitalWrite(LEDpin2, HIGH);

Laporan yang dievaluasi dalam kurung memerlukan penggunaan satu atau lebih operator:

Operator Perbandingan

x == y (x is equal to y)
x != y (x is not equal to y)
x < y (x is less than y)
x > y (x is greater than y)
x <= y (x is less than or equal to y)
x >= y (x is greater than or equal to y)
peringatan:

Hati-hati menggunakan tanda tunggal sama dengan (mis  if (x = 10)). Tanda sama dengan adalah operator penugasan, maknanya set x 10 (menempatkan nilai 10 ke dalam variabel x). Sebaliknya menggunakan tanda sama dengan ganda (misalnya  if (x == 10) ), yang merupakan operator perbandingan, dan tes apakah x sama dengan 10 atau tidak. Pernyataan terakhir ini hanya benar jika x sama dengan 10, namun mantan pernyataan akan selalu benar.

Hal ini karena program C mengevaluasi pernyataan if (x=10)  sebagai berikut: 10 ditugaskan untuk x (ingat bahwa tanda sama tunggal operator penugasan), sehingga x sekarang berisi 10. Kemudian 'jika' bersyarat mengevaluasi 10, yang selalu mengevaluasi ke BENAR, karena setiap nomor non-nol bernilai BENAR. Akibatnya, if (x = 10) akan selalu mengevaluasi BENAR, yang bukan hasil yang diinginkan ketika menggunakan 'If' pernyataan. Selain itu, variabel x akan ditetapkan ke 10, yang juga tidak tindakan yang diinginkan.

If juga dapat menjadi bagian dari struktur pengendalian percabangan menggunakan if ... else].




Fungsi Struktur Loop pada Arduino

Setelah membuat fungsi setup(), yang berfungsi sebagai inisialisasi dan penetapan nilai awal,fungsi loop() melakukan pekerjaan pengulangan, yang memungkinkan program untuk mengubah dan menanggapi perintah. Digunakan untuk secara aktif mengontrol papan Arduino.

Contoh 

 
const int buttonPin = 3;

// setup initializes serial and the button pin
void setup()
{
  Serial.begin(9600);
  pinMode(buttonPin, INPUT);
}

// loop checks the button pin each time,
// and will send serial if it is pressed
void loop()
{
  if (digitalRead(buttonPin) == HIGH)
    Serial.write('H');
  else
    Serial.write('L');

  delay(1000);
}



Fungsi Stuktur Setup pada Arduino

Fungsi Setup() dibuat ketika sketsa program akan dimulai. digunakan untuk menginisialisasi variabel, mode pin, mulai menggunakan library, dll. Fungsi pengaturan hanya akan berjalan sekali, setelah PowerUp atau reset pada board Arduino.

Contoh

 
int buttonPin = 3;

void setup()
{
  Serial.begin(9600);
  pinMode(buttonPin, INPUT);
}

void loop()
{
  // ...
}


Thursday, 24 November 2016

Sketch Arduino

Dalam panduan untuk memulai (Windows, Mac OS X, Linux),ketika Anda upload sketsa akan ditujukan oleh arduino dengan LED berkedip. Dalam tutorial ini, Anda akan belajar bagaimana setiap bagian dari sketsa yang bekerja.


sketsa adalah nama yang menggunakan Arduino untuk suatu program. Ini adalah unit kode yang diupload ke dan berjalan pada papan Arduino.

Comments

Beberapa baris pertama dari sketsa Blink adalah komentar:

/*
 * Blink
 *
 * The basic Arduino example.  Turns on an LED on for one second,
 * then off for one second, and so on...  We use pin 13 because,
 * depending on your Arduino board, it has either a built-in LED
 * or a built-in resistor so that you need only an LED.
 *
 * http://www.arduino.cc/en/Tutorial/Blink
 */

Semuanya komentar antara /* dan  */ diabaikan oleh Arduino ketika menajalankan sketsa ( tanda * pada awal setiap baris hanya ada untuk membuat komentar terlihat cantik, dan tidak diperlukan). Itu ada bagi orang-orang membaca kode: untuk menjelaskan program apa tidak, cara kerjanya, atau mengapa itu ditulis cara itu. Ini adalah praktik yang baik untuk berkomentar sketsa Anda, dan untuk menjaga komentar up-to-date ketika Anda mengubah kode. Hal ini akan membantu orang lain untuk belajar dari atau memodifikasi kode Anda.

Ada gaya lain untuk komentar singkat, single-line. Ini dimulai dengan // dan melanjutkan ke akhir baris. Misalnya, di baris:

int ledPin = 13;                // LED dikoneksikan ke pin 13

komentar ' LED dikoneksikan ke pin 13 '

Variables

Variabel adalah tempat untuk menyimpan sepotong data. Memiliki nama, jenis, dan nilai. Misalnya, garis dari sketsa Blink di atas mendeklarasikan variabel dengan nama ledPin, jenis int, dan nilai awal dari 13. Ini digunakan untuk menunjukkan pin Arduino terhubung ke LED. Setiap kali nama ledPin muncul dalam kode, nilainya akan diambil. Dalam hal ini, orang yang menulis program bisa memilih untuk tidak repot-repot menciptakan variabel ledPin dan bukannya telah hanya ditulis 13 di mana-mana yang mereka butuhkan untuk menentukan nomor pin. Keuntungan dari menggunakan variabel adalah bahwa lebih mudah untuk memindahkan LED untuk pin yang berbeda: Anda hanya perlu mengedit satu baris yang memberikan nilai awal untuk variabel.

Seringkali, bagaimanapun, nilai variabel akan berubah saat sketsa berjalan. Misalnya, Anda bisa menyimpan nilai dibaca dari input ke dalam variabel. informasi lebih lanjut di tutorial Variabel.

Functions


Sebuah fungsi (atau dikenal sebagai prosedur atau sub-rutin) adalah bagian yang bernama kode yang dapat digunakan dari tempat lain di sketsa. Misalnya, inilah definisi setup() fungsi dari contoh sketsa Blink:

void setup()
{
  pinMode(ledPin, OUTPUT);      // sets the digital pin as output
}

Baris pertama memberikan informasi tentang fungsi, seperti namanya, "setup". Teks sebelum dan sesudah nama menentukan jenis kembali dan parameter: ini akan dijelaskan nanti. Kode antara { dan } disebut body fungsi: apa fungsi yang akan dikerjakan.

Anda dapat memanggil fungsi yang sudah ditetapkan (baik dalam sketsa atau sebagai bagian dari bahasa Arduino). Sebagai contoh, pinMode(ledPin, OUTPUT); memanggil fungsi pinMode(), lewat itu dua parameter: ledPin dan OUTPUT. Parameter ini digunakan oleh fungsi pinMode() untuk menentukan pin dan modus untuk mengatur.

pinMode(), digitalWrite(), dan delay()

fungsi pinMode() adalah mengkonfigurasi pin baik sebagai input atau output. Untuk menggunakannya, Anda harus mengkonfigurasi jumlah pin untuk INPUT konstan atau OUTPUT. Ketika dikonfigurasi sebagai input, pin dapat mendeteksi keadaan sensor seperti tombol tekan; ini dibahas dalam tutorial kemudian. Sebagai output, dapat menggerakkan sebuah aktuator seperti LED.

The digitalWrite() fungsi output nilai pada pin. Misalnya, baris:

digitalWrite(ledPin, HIGH);

mengatur ledPin (pin 13) ke HIGH, atau 5 volt. Menulis LOW untuk pin menghubungkan ke tanah, atau 0 volt.

delay() menyebabkan Arduino menunggu jumlah tertentu milidetik sebelum melanjutkan ke baris berikutnya. Ada 1000 milidetik dalam satu detik, sehingga garis:

delay(1000);

setup () dan loop ()

Ada dua fungsi khusus yang merupakan bagian dari setiap sketsa Arduino: setup() dan loop(). setup() disebut sekali, ketika sketsa dimulai. Ini adalah tempat yang baik untuk melakukan tugas-tugas setup seperti pengaturan mode pin atau menginisialisasi perpustakaan. loop() fungsi disebut berulang dan jantung yang paling sketsa. Anda harus menyertakan fungsi dalam sketsa Anda, bahkan jika Anda tidak membutuhkan mereka untuk apa pun.