0% menganggap dokumen ini bermanfaat (0 suara)
138 tayangan16 halaman

Proyek LED Sederhana Menggunakan Arduino

Artikel ini menjelaskan lima proyek LED sederhana menggunakan Arduino, termasuk cara membuat dua LED berkedip secara bergantian dan mengontrol LED menggunakan tombol tekan untuk menghidupkan dan mematikannya. Diuraikan pula cara menggunakan variabel boolean dan operator negasi untuk mengganti keadaan LED saat tombol ditekan.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
138 tayangan16 halaman

Proyek LED Sederhana Menggunakan Arduino

Artikel ini menjelaskan lima proyek LED sederhana menggunakan Arduino, termasuk cara membuat dua LED berkedip secara bergantian dan mengontrol LED menggunakan tombol tekan untuk menghidupkan dan mematikannya. Diuraikan pula cara menggunakan variabel boolean dan operator negasi untuk mengganti keadaan LED saat tombol ditekan.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOC, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 16

Proyek LED Sederhana

menggunakan Arduino
Jojo 4 April 2014 3 Komentar

Artikel ini merupakan langkah maju untuk belajar lebih banyak tentang
Arduino.Dalam artikel kami sebelumnya, saya telah menulis secara rinci
tentang mengedipkan LED menggunakan Arduino . Kami telah
menunjukkan 5 proyek berbasis arahan sederhana yang menggunakan arduino,
yang akan membantu Anda mempelajari konsep dasarnya.

1. Berkedip Dua LED menggunakan arduino

2. Kontrol LED menggunakan tombol Push

3. Matikan LED menggunakan tombol Push

4. Matikan 2 LED menggunakan tombol Push

1. Berkedip Dua LED menggunakan Arduino


Sebagai seorang pemula, jika Anda telah mencoba program "Hello World " untuk
mengedipkan LED menggunakan Arduino; Anda bisa mencoba mengedipkan dua
LED sebagai proyek berikutnya. Ada 14 pin I / O (input / output) di papan Arduino
uno Anda. Pin ini diberi nomor dari 0 sampai 13. Mereka dapat dikonfigurasi sebagai
input atau output dalam sketsa yang Anda buat untuk arduino. Jika Anda telah
mempelajari program "Hello World" dengan hati-hati, Anda sekarang tahu bahwa
konfigurasi input / output pin harus dilakukan di dalam fungsi setup () .Jadi, inilah
diagram rangkaian yang berkedip 2 led's menggunakan arduino.
Sketsa untuk Blink Dua LED menggunakan Arduino

Const int LED1 = 12;

Const int LED2 = 13;

Pengaturan kosong ()

PinMode (LED1, OUTPUT);

PinMode (LED2, OUTPUT);

Void loop ()
{

DigitalWrite (LED1, HIGH);

Keterlambatan (1000);

DigitalWrite (LED1, LOW);

DigitalWrite (LED2, HIGH);

Keterlambatan (1000);

DigitalWrite (LED2, LOW);

Satu-satunya perbedaan dalam sketsa ini adalah penggunaan 2 pin pada mode
output. Saya telah menggunakan nomor pin 12 dan 13 sebagai output. Saya telah
mengkonfigurasi mereka sebagai output di dalam fungsi setup () . Di dalam loop
() , saya telah menulis perintah untuk berkedip LED secara alternatif. Saat LED1
menyala, LED2 akan OFF. Setelah 1 detik LED1 akan mati dan pada saat
bersamaan LED2 akan menyala. Tunggu 1 detik lagi dan Anda akan melihat LED2
mematikan OFF dan LED1 menyala. Siklus ini berulang.

Saya telah menambahkan foto setup praktis yang saya buat di bawah ini.
Anda bisa menonton video dari sirkuit yang sama di bawah ini.

2.Control LED dengan Push Button


Jika Anda amati dengan saksama, sejauh ini kami hanya bermain dengan beberapa
keluaran. Kami membuat satu LED berkedip dan kemudian kami melangkah maju
untuk membuat dua LED berkedip. Dalam kedua kasus tersebut, kami menulis
perintah perangkat lunak untuk membuat ketukan arduino kami dipimpin secara
otomatis pada selang waktu 1 detik. Bagaimana
jika kita ingin
mengendalikan waktu ON dan OFF pimpinan berdasarkan masukan
pengguna? Artinya, saya ingin memberi masukan secara manual dan
berdasarkan input LED saya harus menyala ON dan OFF. Kita bisa
menggunakan tombol push switch untuk memberi masukan kepada pengguna
arduino. Sebenarnya, kita bisa menggunakan jenis saklar sederhana seperti Push to
On atau Push to Off atau tombol push mini. Dalam contoh ini saya menggunakan
tombol push push " normal terbuka ". Saklar tombol push yang biasanya terbuka
akan berada dalam keadaan terbuka secara default. Peralihan ini akan ditutup untuk
saat kita menyimpan aktuatornya ditekan. Jika Anda ingin tahu lebih banyak tentang
cara kerja tombol push switch yang berbeda, Anda dapat membaca artikel rinci
tentang tombol tekan .

Saya telah menambahkan diagram rangkaian untuk mengendalikan LED dengan


arduino menggunakan tombol tekan. Untuk menghubungkan tombol push ke
arduino, kita memerlukan salah satu pin I / O digital yang dikonfigurasi sebagai input
digital. Dalam contoh ini, saya telah menetapkan pin nomor 7 sebagai input
digital. Jadi kita harus menghubungkan tombol push ke pin 7 dari arduino seperti
yang ditunjukkan di sirkuit. Tegangan referensi harus dihubungkan ke salah satu
ujung saklar dan ujung saklar lainnya harus dihubungkan ke ground. Untuk
menghindari hubungan arus pendek antara nomor pin 7 dan ground, Anda
harus menghubungkan resistor (lebih disukai 10K ohm) di antaranya. Tegangan
referensi digunakan untuk mendeteksi keadaan ON atau keadaan tertutup dari
tombol tekan.Dewan Arduino memiliki referensi +5 volt yang tersedia
pada klem pin daya. Saat tombol push ditekan, garis tegangan referensi akan
terhubung ke pin nomor 7. Tegangan ini akan jatuh ke resistor 10K ohm . Jadi saat
menekan tombol ditekan, +5 volt tersedia di pin 7 dan ini akan dianggap
sebagai HIGH state. Di sisi lain, saat tombol push dilepaskan (berada dalam
keadaan normal terbuka), tidak ada garis tegangan referensi yang terhubung pada
pin 7. Pada keadaan ini, tegangan resistor 10K adalah 0 volt (ground
potential). Potensi yang sama juga ada pada pin 7 dan akan dianggap sebagai
state LOW . Ini adalah bagaimana ardunio membedakan antara tombol saklar
tombol tertutup (ON) dan open (OFF).
Mari kita masuk ke sisi program mengendalikan LED dengan menggunakan tombol
tekan. Dalam program ini, sorot adalah instruksi untuk membaca status tombol
tekan. APL (bahasa pemrograman Arduino) memiliki sebuah instruksi
bernama digitalRead () - yang membaca input digital yang diberikan pada pin
input yang dikonfigurasi. Dalam program kami, instruksi ini membaca status pada
pin 7 dan mengembalikan nilai sesuai dengan yang telah dibaca. Dalam contoh kita
instruksi ini membaca level tegangan pada pin nomor 7; Kembali TINGGI jika +5
volt dan kembali RENDAH jika 0 volt nya. Karena mengembalikan nilai, kita harus
menetapkan instruksi ini ke variabel saat kita menulis program. Kami telah
menggunakan variabel val untuk menyimpan nilai yang dikembalikan oleh instruksi
digitalRead (). Tombol push switch terhubung ke pin 7 dan kami telah menugaskan
pin 7 ini ke variabel bernama SW di dalam sketsa kami. Di dalam fungsi setup () ,
kita telah mengkonfigurasi pin 7 ini (variabel SW) sebagai masukan menggunakan
instruksi pinMode () . Jadi inilah programnya.

Const int LED = 13;

Const int SW = 7;

Int val = 0;

Pengaturan kosong ()

PinMode (LED, OUTPUT);

PinMode (SW, INPUT);


}

Void loop ()

Val = digitalRead (SW);

Jika (val == HIGH)

DigitalWrite (LED, HIGH);

lain

DigitalWrite (LED, RENDAH);

3.Toggle LED menggunakan tombol tekan


Mari masuk ke proyek berikutnya yang bahkan lebih menarik. Di sini kita akan
mengganti LED dengan menggunakan tombol tekan. Beralih berarti mengubah
keadaan. Tujuan kami di sini adalah menghidupkan LED ON dengan menekan
tombol tekan pertama dan mematikan LED OFF dengan menekan tombol tekan
berikutnya. Siklus ON dan OFF ini harus dilanjutkan dengan setiap menekan tombol
tekan. Diagram rangkaian yang sama yang diberikan di atas cukup untuk melakukan
proyek ini karena kita tidak memanipulasi koneksi perangkat keras apapun. Kita
hanya perlu mengganti software kita (sketsa) untuk mengubah perilaku rangkaian
ini.

Berikut adalah sketsa untuk mengaktifkan LED menggunakan tombol tekan.

Const int LED = 13;

Const int SW = 7;

Negara boolean = benar; // mendeklarasikan variabel state sebagai boolean

Int val = 0;

Pengaturan kosong ()

PinMode (LED, OUTPUT);

PinMode (SW, INPUT);

}
Void loop ()

Val = digitalRead (SW);

Penundaan (120); // Software debouncing menggunakan delay 120ms

Jika (val == HIGH)

{State =! State; // Puji negara variabel menggunakan! operator

DigitalWrite (LED, negara bagian);

Saya menggunakan tombol push push " normal terbuka " untuk menerapkan
rangkaian. Ini berarti menekan tombol tekan selalu memberi kita status
" HIGH ".Dengan kata lain, kita harus merasakan keadaan tertutup tombol tekan
untuk menghidupkan LED ON dan OFF . Menghidupkan LED ON dan mematikan
LED OFF keduanya tergantung pada satu event - tekan pada aktuator saklar
tombol tekan(keadaan tertutup - bila voltase pada saklar = TINGGI). Kita bisa
melakukan program ini dengan berbagai cara. Program yang efisien selalu akan
memiliki lebih sedikit baris kode. Dalam program ini, saya menggunakan instruksi
boolean dan operator pelengkap. Dalam program variabel
bernama negara dinyatakan sebagai boolean dan saya diinisialisasi
sebagai benar . Anda bisa membaca lebih lanjut tentang instruksi
boolean untuk mendapatkan ide yang dalam. Instruksi boolean hanya memiliki dua
nilai yang mungkin, benar atau salah . Sorotan berikutnya dari program ini adalah
dengan menggunakan operator komplemen ( ! ). Ini adalah operator negasi yang
sama yang kita lihat di 8.051 dan pengendali mikro lainnya.Sebagai contoh, kita
memiliki sebuah instruksi yang disebut CPL dalam set instruksi 8051 . Instruksi
ini memuji nilai akumulator (0 dengan 1 dan 1 dengan 0's). Dalam elektronika digital,
gerbang NOT melakukan tugas yang sama.

Jadi di sini adalah kerja program. Kami menginisialisasi


variabel state sebagai true. Baris kode lainnya sama seperti yang kita gunakan
pada program sebelumnya.Anda sudah tahu apa yang tertulis di dalam setup
() . Mari kita datang ke loop () .Kami merasakan masukan switch
dengan digitalRead (SW) dan menyimpannya dalam variabel
integer val . Sekarang kita periksa tombol tekan tekan dengan terus menerus
mengecek apakah val variabel pernah mendaftarkan HIGH . Jika pernah mencatat
tinggi, kami memuji status variabel keadaan dan menyimpannya ke variabel
yang sama. Sekarang jika variabel negara TRUE sebelumnya, sudah dipuji
oleh FALSE. Kami menulis status variabel status ke LED. Berdasarkan nilai
variabel state LED akan menyala ON dan OFF. LED akan menyala jika variabel
keadaan memegang TRUE dan LED akan berubah jika variabel keadaan
memegang FALSE.Proses membaca tombol push ini beralih dan memuji variabel
keadaan kontinyu.

Catatan: - Dalam program kami, tekan tombol tekan pertama benar-benar


mematikan LED OFF. Ini akan menyala hanya dengan menekan tombol tekan
kedua.Dari situ akan bergantian antara ON dan OFF dengan menekan masing-
masing menekan tombol. Jika Anda ingin menghidupkan dengan menekan tombol
tekan pertama, Anda hanya perlu membuat perubahan dalam pernyataan deklarasi
boolean. Deklarasikan variabel sebagai FALSE pada awalnya.

Catatan2: - Anda mungkin telah mencatat penundaan (120); Instruksi di


bawah val = digitalRead (SW); petunjuk. Ini disebut software debouncing
technique . Ini aspek praktis dari sirkuit. Jika Anda menulis program berdasarkan
teori, Anda tidak memerlukan instruksi penundaan di sini. Tapi ada masalah
praktis. Anda dapat mengunggah kode tanpa instruksi penundaan ini dan melihat
perilaku rangkaian.Beberapa tombol tekan tekan akan benar-benar beralih dan
beberapa lainnya tidak akan menghasilkan hasil yang diharapkan. Perilaku ini
disebabkan 2 alasan. 1)Tombol push adalah saklar mekanis. Satu tombol tekan
tekan akan menghasilkan serangkaian pulsa tinggi (bcz getaran yang dibuat saat 2
bagian mekanis saling kontak) dalam praktik. 2 ) Arduino adalah platform prototyping
yang sangat cepat.Sebenarnya bukan arduino, pengontrol mikronya digunakan di
papan yang benar-benar cepat. Dalam sebuah arduino
uno, Atmega328 digunakan yaitu 20kemampuan eksekusi MIPS . Ini berarti
controller bisa mengeksekusi 20 juta instruksi per detik. Ini sangat sangat cepat dari
yang bisa kita bayangkan. Jadi arduino akan merasakan semua rangkaian pulsa
tinggi yang dibuat oleh satu tombol tekan. Tapi kita tidak butuh arduino untuk
merasakan semua pulsa ini . Kita hanya perlu 1 pulsa HIGH per menekan
tombol tekan. Ini adalah masalah yang diciptakan oleh tombol pemantul dan kita
menghilangkan masalah ini melalui teknik debouncing. Ada 2 jenis teknik
debouncing. Disini kami menerapkan software debouncing. Anda bisa membaca
lebih lanjut tentang teknik debouncing di artikel kami.

4. Matikan 2 LED menggunakan tombol tekan


Proyek kami selanjutnya adalah mengaktifkan 2 LED menggunakan satu tombol
tekan. Disini kita membutuhkan satu lagi LED dan sedikit tweak pada software.Saya
telah menambahkan diagram rangkaian dan program di bawah ini. Aku menghargai
kecerdasanmu Anda tidak memerlukan penjelasan untuk rangkaian dan program ini
setelah belajar sebanyak ini.

Saya
telah menambahkan sketsa di bawah ini. Baca sketsa dengan hati-hati. Kita hanya
perlu menambahkan beberapa baris ke atas program. Benar-benar sesederhana itu.
Const int LED1 = 13;

Const int LED2 = 12;

Const int SW = 7;

Negara boolean = benar; // mendeklarasikan variabel state sebagai boolean

Int val = 0;

Pengaturan kosong ()

PinMode (LED1, OUTPUT);

PinMode (LED2, OUTPUT);

PinMode (SW, INPUT);

Void loop ()

Val = digitalRead (SW);


Keterlambatan (100); // Software debouncing

Jika (val == HIGH)

{State =! State; // Memuji status LED

DigitalWrite (LED1, negara bagian);

DigitalWrite (LED2,! State);

Saya telah menambahkan sebuah video dari rangkaian yang praktis


diimplementasikan. Anda bisa menontonnya di bawah ini.

Catatan 3: - Saya sudah menulis bahwa ada banyak cara untuk membuat sebuah
program. Program yang sama untuk Toggling LED ini bisa ditulis tanpa
menggunakan variabel boolean. Jika kita tidak menggunakan variabel boolean, kita
tidak dapat menggunakan operator pujian. Ini berarti kita harus menangani tugas
mengganti status LED di dalam kode kita. Saya telah menambahkan sketsa untuk
mengganti LED tanpa menggunakan variabel boolean. Jika Anda melihat lebih
dekat, Anda dapat melihat program ini sangat besar dan menggunakan lebih banyak
variabel dan instruksi dari program kami sebelumnya (dengan variabel
boolean). Tapi kedua sketsa tersebut menghasilkan output yang diinginkan
sama.Jadi program mana yang lebih efisien? Yang dengan garis kode kurang!
Const int LED1 = 13;

Const int LED2 = 12;

Const int SW = 7;

Bendera int;

Int val = 0;

Int state = 1;

Pengaturan kosong ()

PinMode (LED1, OUTPUT);

PinMode (LED2, OUTPUT);

PinMode (SW, INPUT);

Void loop ()
{

Val = digitalRead (SW);

Keterlambatan (100);

If (val == HIGH && state == 1)

DigitalWrite (LED1, HIGH);

DigitalWrite (LED2, LOW);

Bendera = 0;

If (val == LOW && flag == 0)

DigitalWrite (LED1, HIGH);

DigitalWrite (LED2, LOW);

Negara = 0;

}
If (val == HIGH && state == 0)

DigitalWrite (LED1, LOW);

DigitalWrite (LED2, HIGH);

Bendera = 1;

If (val == LOW && flag == 1)

DigitalWrite (LED1, LOW);

DigitalWrite (LED2, HIGH);

Negara = 1;

Saya akan jelaskan kodenya nanti. Tanyakan dalam komentar jika Anda memiliki
keraguan.

Anda mungkin juga menyukai