Rangkaian LED Aktif-Low dan LED Aktif-High dan Contoh Program Kontrol LED Untuk AVR-GCC dan Arduino

led_hi_lo

Perhatikan gambar di samping. Gambar sebelah kiri adalah rangkaian LED Aktif-Low, dan gambar sebelah kanan adalah rangkaian LED Aktif-High. Rangkaian terdiri dari sebuah resistor yang diseri dengan sebuah LED.

Pada rangkaian LED Aktif-Low, LED akan menyala jika diberi logika 0 (LOW) dan akan mati jika diberi logika 1 (HIGH).

Ketika diberi logika 0, maka tegangan pada kaki anoda LED lebih positif dibandingkan dengan kaki katoda. Selisih tegangan pada kaki anoda dan katoda LED ini melebihi tegangan jatuh LED, sehingga LED pun menghantar (dialiri arus listrik) dan menyala. Sebaliknya, ketika diberi logika 1, maka kaki anoda LED tidak lebih positif daripada kaki katoda, oleh karenanya LED tidak menghantar (tidak dialiri arus listrik) sehingga LED pun tidak menyala.

Pada rangkaian LED Aktif-High, LED akan menyala jika diberi logika 1 (HIGH) dan akan mati jika diberi logika 0 (LOW).

Ketika diberi logika 1, maka tegangan pada kaki anoda LED lebih positif dibandingkan dengan kaki katoda LED. Selisih tegangan pada kaki anoda dan katoda LED ini melebihi tegangan jatuh LED, sehingga LED pun menghantar (dialiri arus listrik) dan menyala. Sebaliknya, ketika diberi logika 0, maka tegangan pada kaki anoda LED tidak lebih positif daripada kaki katoda LED, oleh karenanya LED tidak menghantar (tidak dialiri arus listrik) sehingga LED pun tidak menyala.

Fungsi resistor seri pada rangkaian diatas adalah sebagai pembatas arus. Anda bisa menggunakan resistor dengan nilai yang aman mulai 150 ohm, 180 ohm, 220 ohm, hingga 2K2 ohm tergantung dari tipe LED yang Anda gunakan dan seberapa tingkat kecerahan yang Anda inginkan.

Dengan asumsi bahwa rangkaian LED Aktif-Low terhubung ke PORTB.0 dan rangkaian LED Aktif-High terhubung ke PORTB.1, berikut adalah contoh program kontrol LED untuk AVR-GCC.

Contoh Program Kontrol LED (AVR-GCC)

#define F_CPU 1000000L

#include <avr/io.h>
#include <util/delay.h>

#define ON 1
#define OFF 0

//macro LED ON/OFF untuk LED Aktif-Low
#define LED_AL(x)((x)==(ON)?(PORTB&=~_BV(PB0)):(PORTB|=_BV(PB0)))

//macro LED ON/OFF untuk LED Aktif-High
#define LED_AH(x)((x)==(ON)?(PORTB|=_BV(PB1)):(PORTB&=~_BV(PB1)))

int main(void)
{
  PORTB = 0b00000001; //PB1=0, PB0=1 --> kedua LED OFF
  DDRB = 0b00000011;  //PB0 dan PB1 sebagai output

  while(1)
  {
    LED_AL(ON); LED_AH(ON);   //kedua LED ON
    _delay_ms(500);           //delay 1/2 detik
    LED_AL(OFF); LED_AH(OFF); //kedua LED OFF
    _delay_ms(500);           //delay 1/2 detik
  }
}

Contoh Program Kontrol LED (Arduino)

Dengan asumsi bahwa rangkaian LED Aktif-Low terhubung ke pin-11 dan rangkaian LED Aktif-High terhubung ke pin-12, berikut adalah contoh program pengendalian LED untuk Arduino.

void setup()
{
  pinMode(11, OUTPUT); //pin-11 sebagai output
  pinMode(12, OUTPUT); //pin-12 sebagai output
}

void loop()
{
  digitalWrite(11, LOW);  //LED Aktif-Low ON
  digitalWrite(12, HIGH); //LED Aktif-High ON
  delay(500);             //delay 1/2 detik
  digitalWrite(11, HIGH); //LED Aktif-Low OFF
  digitalWrite(12, LOW);  //LED Aktif-High OFF
  delay(500);             //delay 1/2 detik
}

Rangkaian LED Aktif-Low dan Aktif-High merupakan rangkaian yang sangat penting dalam bereksperimen mikrokontroler. Tak hanya karena murah dan mudah dirangkai, tapi kedua rangkaian tersebut dapat mewakili berbagai macam rangkaian output, baik yang aktif-low maupun yang aktif-high seperti relay, buzzer, motor, dan solenoid. Selanjutnya tinggal mempelajari dan memahami berbagai macam rangkaian driver output.

Ingin bereksperimen dengan Starduino Board? Silakan mengunjungi situs kami di: http://teknikelektrolinks.com.

Selamat belajar!

Smile

Advertisements

Starduino Board – Layout Baru

starduino_new

Starduino Board kini dengan layout baru yang lebih semarak. Tidak seperti layout sebelumnya yang cenderung sederhana, kini Starduino Board dilengkapi dengan beberapa LED yakni: TX Led, RX Led, dan PIN-13 Led.

TX Led akan menyala dan mati sesuai dengan kondisi pin TX dari mikrokontroler ATmega8. Dengan adanya LED ini, maka kita bisa mengetahui ketika mikrokontroler mengirimkan data serial.

RX Led akan menyala dan mati sesuai dengan kondisi pin RX dari mikrokontroler ATmega8. Ketika ada data serial yang masuk ke mikrokontroler, LED ini akan berkedip-kedip mengikuti deretan logika data serial yang diterima mikrokontroler.

PIN-13 Led adalah LED yang terhubung ke pin 13 dari Starduino Board. Rangkaian LED pada pin 13 ini aktif-tinggi. LED akan menyala jika pin 13 berlogika 1, dan LED akan mati jika pin 13 berlogika 0.

Selain dilengkapi dengan beberapa LED, terminal tegangan input yang sebelumnya menggunakan header 3-pin, kini diganti dengan terminal-screw 2-pin sehingga lebih mudah dalam instalasi dan lebih kokoh.

Bagi Anda yang berminat dengan Starduino Board, silakan langsung mengunjungi situs kami di: http://teknikelektrolinks.com.

Selamat berkarya!

Open-mouthed smile

UP & Running With Starduino Board

starduino_usb_lenovoMemulai praktik pemrograman mikrokontroler dengan Starduino Board sangatlah mudah. Berikut adalah langkah-langkahnya.

Pertama-tama, hubungkan port serial Starduino Board ke port serial PC menggunakan kabel data serial yang telah disediakan dalam paket Starduino Board. Atau jika menggunakan port USB, maka tambahkah kabel data konverter USB-to-Serial seperti yang ditunjukkan pada gambar di atas.

Selanjutnya, jalankan program Arduino.

Pilih Board yang sesuai dengan menggunakan menu sebagai berikut.

starduino_up_running1

Selanjutnya, pilih Serial Port yang digunakan sebagai berikut.

starduino_up_running2

Langkah selanjutnya adalah berinteraksi dengan Starduino Board menggunakan program sederhana untuk membuat lampu berkedip-kedip dan mengirimkan data ke komputer melalui port serial. Berikut adalah sketch Arduino-nya.

starduino_up_running3

Langkah selanjutnya adalah meng-upload program ke Starduino Board dengan meng-klik Button Upload seperti ditunjukkan pada gambar di atas.

Setelah program selesai di upload, maka beberapa detik kemudian lampu LED akan berkedip-kedip dengan selang 1/2 detik ON dan 1/2 detik OFF.

Buka window Serial Monitor dengan meng-klik Button Serial Monitor atau menekan kombinasi kunci Ctrl-Shift-M, maka akan ditampilkan tulisan LOW, HIGH, LOW, HIGH, seiring dengan kedipan lampu LED.

Perhatian!

Starduino Board menggunakan bootloader Arduino. Ketika board direset atau pertama kali dihidupkan, maka bootloader akan dijalankan. Bootloader akan menunggu data dari PC. Jika dalam beberapa detik (sekitar 7 detik) data tidak ada, maka bootloader akan menjalankan program kontrol dalam memori program ATmega8. Jadi jangan heran jika sistem dijalankan, program tidak langsung di-running.

Jika Anda berminat dengan Starduino Board, silakan mengunjungi situs http://teknikelektrolinks.com untuk informasi harga dan pemesanan.

Selamat belajar!

Smile

Starduino Board – Layout Pin I/O

Starduino Board menggunakan ATMEL AVR ATmega8 sebagai mikrokontrolernya. Sedikit berbeda dengan Arduino Duemilanove yang memiliki 6 buah pin PWM, Starduino hanya memiliki 3 buah pin PWM. Arduino Duemilanove menggunakan ATmega328. Namun demikian, kecuali 3 pin PWM tersebut, fungsi semua pin Starduino adalah sama dengan Arduino Duemilanove.

Gambar berikut ini menunjukkan nomor-nomor pin dari masing-masing terminal pada Starduino Board. Nomor-nomor tersebut sesuai dengan pemetaan pin I/O pada Arduino.

starduino_layout

Pin bernomor 0-7 pada terminal bagian atas adalah pin-pin digital, demikian juga dengan pin nomor 8-13 pada terminal bagian bawah. Pin digital 9, 10, dan 11 dapat digunakan sebagai keluaran berupa sinyal PWM.

Pin 0-5 (Analog In) adalah pin-pin analog input yang mewakili ADC0-ADC5. Selain digunakan sebagai masukan analog, pin-pin ini juga dapat difungsikan sebagai pin digital dengan nama A0-A5.

Penggunaan nomor ini merupakan salah satu kelebihan konsep yang dimiliki oleh Arduino. Untuk mendayagunakan pin digital, Arduino memiliki beberapa fungsi spesial yang sangat mudah dipahami dan digunakan. Berikut adalah contoh program sederhana pengaksesan pin digital.

void setup()
{
pinMode(7, OUTPUT); //pin 7 sebagai keluaran
}

void loop()
{
digitalWrite(7, HIGH); //pin 7 = HIGH
delay(500); //delay 500ms
digitalWrite(7, LOW); //pin 7 = LOW
delay(500); //delay 500ms
}
 

Sangat mudah, sehingga meskipun kita tidak mengetahui konfigurasi pin ATmega8, kita dapat mengakses pin-pin tersebut secara langsung dengan menggunakan fungsi-fungsi yang telah disediakan oleh Arduino. Tak hanya mudah, fungsi-fungsi Arduino telah digunakan dan diuji oleh ratusan ribu atau bahkan mungkin jutaan orang, sehingga tidak perlu diragukan kualitas programnya.

Nah, jika Anda berminat dengan Starduino Board, silakan mengunjungi situs http://teknikelektrolinks.com untuk mengetahui informasi harga dan pemesanan.

Selamat belajar!

STARDUINO BOARD + WAVECOM FASTRACK GSM MODEM

starduino_gsm_modem

Aplikasi SMS Alarm dan SMS Control berbasis mikrokontroler kini semakin marak dengan semakin murahnya harga modem. Tak perlu repot lagi mencari HP jadul seperti Siemens C35, M35, dan sekelasnya, karena kini ada modem GSM Wavecom Fastrack yang sebanding harganya dengan HP jadul.

Jika Anda pengguna Starduino Board, Anda dapat menghubungkan Starduino Board dengan modem gsm Wavecom Fastrack seperti gambar disamping ini. Dengan Starduino Board, aplikasi sistem SMS Alarm dan SMS Control dapat dikembangkan dengan mudah.

Ada sedikit ketidaknyamanan dalam pengaplikasian modem dengan Starduino Board, yakni: ketika mengisi program, maka Starduino Board harus terhubung dengan port serial komputer. Setelah program masuk, lepas kabel serial komputer dan hubungkan kabel serial modem ke Starduino Board. Proses tersebut akan terjadi berulang-ulang selama proses pengembangan program.

Untuk mengatasi masalah tersebut, dapat digunakan software-software port serial yang dapat dimanfaatkan untuk mengemulasikan kerja modem. Salah satunya adalah Docklight. Bukan 100% freeware, tapi cukup berguna untuk keperluan tersebut.

Berikut adalah foto sistem kontrol dan alarm berbasis SMS dengan 1 buah input dan 5 buah output relay.

Berikut ini saya berikan contoh pemrograman Arduino untuk mengirimkan SMS menggunakan perintah AT+CMGS.

Serial.flush();
Serial.print(“AT+CMGS=”);
Serial.print(“081231784018”);
Serial.write(13);
Serial.print(“Perhatian! Sensor I Aktif!”);
Serial.write(26);
delay(5000);

Selamat berkarya!

Open-mouthed smile