Desain PCB dan Embedded System

Fungsi SCR (Sillicon Controlled Rectifier)

Silicon Controlled Rectifier ( SCR ) adalah salah satu komponen yang mirip dengan transistor karena memiliki tiga buah kaki. Tapi kaki pada SCR tidak sama dengan kaki yang terdapat pada transistor. Kaki yang terdapat pada SCR terdiri dari ; A = Anoda, G = Gate, K = Katoda. Jadi jelaslah bahwa fungsi SCR ini beda dengan transistor.

Read more ...

Teori Dasar MOSFET

MOSFET (Metal Oxide Semiconductor Field Effect Transistor) adalah suatu transistor dari bahan semikonduktor (silikon) dengan tingkat konsentrasi ketidakmurnian tertentu. Tingkat dari ketidakmurnian ini akan menentukan jenis transistor tersebut, yaitu transistor MOSFET tipe-N (NMOS) dan transistor MOSFET tipe-P (PMOS).

Read more ...

Teknologi Sensor Instrumentasi

Anda melakukan pengukuran dengan instrumen. Instrumentasi membantu perkembangan ilmu pengetahuan dan teknologi. Ilmuawan dan insinyur di seluruh dunia menggunakan instrumen untuk mengamati, mengendalikan, dan memahami perubahan fisik. Kualitas kehidupan kita bergantung pada instrumentasi - dari riset dasar sains dan obat-obatan hingga desain, tes, dan manufaktur elektronik, bahkan mesin dan kendali proses pada berbagai industri.

Read more ...

Migrasi Elektro-elektron

Untuk mengetahui bagaimana elektron-elektron dapat bermigrasi dari satu tempat ke tempat lain maka kita harus melakukan percobaan sederhana berikut. Letakkan potongan-potongan kecil kertas aluminium foil di meja. Anda juga dapat menggunakan gabus penutup botol untuk menggantikan potongan-potongan aluminium foil tersebut. Gosoklah sebuah pena yang terbuat dari plastik dengan kain wol kering selama 15-20 detik. Peganglah pena plastik tersebut sejauh beberapa milimeter di atas potongan-potongan kertas. Potongan-potongan kertas itu akan melompat dan menempel di permukaan pena. Beberapa di antara potongan tersebut dapat melompat naik-turun hingga beberapa kali.

Read more ...

Internet of Things

Dengan semakin berkembangnya infrastruktur internet, maka kita menuju babak berikutnya, di mana bukan hanya smartphone atau komputer saja yang dapat terkoneksi dengan internet. Namun berbagai macam benda nyata akan terkoneksi dengan internet.

Read more ...

Blinking LED – Blinking LED tanpa delay( )

LED (Light Emitting Diode) adalah sebuah komponen diode yang dapat memancarkan cahaya. LED sudah umum dijumpai pada berbagai perangkat elektronik, mulai sebagai indikator power adaptor, hingga display papan iklan

TMN Studio – Electronics

Membuat LED blinking terlihat mudah di Arduino, kita menyalakan beberapa saat, kemudian mematikan, lalu terus siklus berulang-ulang. Akan tetapi, kondisi tunggu ini membuat Arduino berhenti mengeksekusi perintah lainnya. Jadi ketika fungsi delay( ) diekseskusi, maka terjadi kondisi tunggu ini sedangkan instruksi selanjutnya baru dapat diproses setelah interval delay terlampaui. Kita akan membuat blinking LED ketika itu instruksi lainnya sedang dieksekusi.

Berikut ini kode untuk blinking LED pada Arduino tanpa menggunakan fungsi delay():

// Variable for keeping the previous LED state
int previousLEDstate = LOW;
unsigned long lastTime = 0; // Last time the LED changed state
int interval = 200; // interval between the blinks in milliseconds
void setup() {
// Declare the pin for the LED as Output
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
// Here we can write any code we want to execute continuously
// Read the current time
unsigned long currentTime = millis();
// Compare the current time with the last time
if (currentTime - lastTime >= interval) {
// First we set the previous time to the current time
lastTime = currentTime;
// Then we inverse the state of the LED
if (previousLEDstate == HIGH) {
digitalWrite(LED_BUILTIN, LOW);
previousLEDstate = LOW;
} else {
digitalWrite(LED_BUILTIN, HIGH);
previousLEDstate = HIGH;
}
}
}

Note:

Sebagian besar Arduino memiliki LED pada pin 13, namun sebagian tipe Arduino lain tidak selalu pada pin 13. Untuk lebih memastikan pin LED yang digunakan, maka kita menggunakan konstanta LED_BUILTIN. Hal ini telah didefinisikan dalam bahasa Arduino dan akan selalu setara dengan pin LED Arduino tipe apapun.

Perbedaan paling mencolok antara program blinking LED normal, dan program yang telah kita pelajari adalah pada program ini kita tidak menggunakan fungsi delay(). Fungsi delay() secara sederhana hanya menghentikan eksekusi kode hingga waktu yang diinginkan tercapai. Di sini kita menggunakan waktu internal Arduino; ketika waktu telah tercapai maka kita mengubah state.

Waktu internal sejak memulai Arduino dapat diakses dengan fungsi millis(), dimana akan mengembalikan waktu dalam milidetik - sejak program mulai dijalankan.

Pendekatan ini disebut juga non-blocking, karena tidak memblokir eksekusi kode. Sebaliknya, fungsi delay() sebagai blocking, digunakan untuk memblokir eksekusi kode hingga waktu tertentu telah tercapai.

Code Breaking

Kode mencatat jumlah waktu berlalu dan mengubah kondisi LED jika waktu telah tercapai. Kita membutuhkan sedikit variabel. Variabel previousLEDstate akan menyimpan kondisi LED terakhir. Variabel lastTime mencatat ketika kondisi LED berubah dari HIGH ke LOW atau LOW ke HIGH. Ketika kita mengubah pin menjadi HIGH, akan menghasilkan output 5V. Ketika pin dalam kondisi LOW, akan menghasilkan output 0V.

Variabel interval berguna untuk menyimpan interval dalam milidetik perubahan kondisi LED.

// Variable for keeping the previous LED state
int previousLEDstate = LOW;
unsigned long lastTime = 0; // Last time the LED changed state
int interval = 200; // interval between the blinks in milliseconds
Dalam fungsi setup(), kita mengatur pin LED sebagai output:
void setup() {
// Declare the pin for the LED as Output
pinMode(LED_BUILTIN, OUTPUT);
}

Bagian terpenting adalah fungsi loop(). Tahap pertama mencatat waktu sejak pertama kali Arduino mengeksekusi program. Fungsi millis() mengembalikan angka yang besar; variabel yang memperoleh data dari fungsi ini selalu dideklarasikan sebagai long atau unsigned long. Variabel unsigned hanya mengambil nilai positif saja dari nol hingga maksimum ruang yang dialokasikan. Misal, variabel dengan tipe normal long dapat memiliki rentang nilai dari - 2,147,483,648 hingga 2,147,483,648, sedangkan unsigned long memiliki rentang nilai dari 0 hingga 4,294,967,295.

unsigned long currentTime = millis();

Sekarang kita perlu melihat apakah waktu telah tercapai sejak waktu terakhir dimana kondisi LED berubah. Untuk hal ini, kita membandingkan waktu sebelumnya. Jika ada perbedaan antara waktu saat ini dan waktu terakhir lebih besar dari interval yang dideklarasikan, kita dapat mengeksekusi perubahan kondisi LED:

if (currentTime - lastTime >= interval)

Ketika interval telah terlampaui, kita akan mencatat waktu baru menjadi waktu sebelumnya. Dengan melakukan cara ini, kita me-reset waktu untuk dibandingkan kembali. Kemudian, kita mengecek kondisi LED sebelumnya dan mengatur LED ke kondisi sebaliknya. Jika LOW, maka kita mengatur LED mejadi kondisi HIGH dan jika HIGH, maka mengatur LED menjadi kondisi LOW. Variabel yang menyimpan kondisi LED sebelumnya, yakni previousLEDstate juga diatur dalam kondisi LED yang terkini:

lastTime = currentTime;
// Then we inverse the state of the LED
if (previousLEDstate == HIGH) {
digitalWrite(LED, LOW);
previousLEDstate = LOW;
} else {
digitalWrite(LED, HIGH);
previousLEDstate = HIGH;
}

Who's Online

We have 103 guests and no members online

TMN Trending Hashtags

There are no trending hashtags at this moment.

TMN Discussions

TMN Events Calendar