Mau tidak mau, suka tidak suka karena resiko profesi harus update terus. Akhirnya… bisa juga membuat Flip Flop yang dikendalikan oleh Arduino, yang sebelumnya sudah membuat Flip Flop berpengendali mikrokontroler dan juga berpengendali PLC.
Pada jejak kali ini akan mencoba membuat pengendali Flip Flop Berbasis Arduino dengan harapan menjadi dasar untuk memahami pemograman untuk pengendali berbasis Arduino yang lainnya.
Membuat Flip Flip tanpa Tombol

List Program
// kita buat variabel untuk nomor pin supaya lebih mudah merujuknya
const int pinLed1 = 12;
const int pinLed2 = 13; // variabel untuk menyimpan nilai input pin button
void setup()
{
// set pin untuk LED ke mode output
pinMode(pinLed1, OUTPUT);
pinMode(pinLed2, OUTPUT);
}
void loop()
{
digitalWrite(pinLed1, LOW);
digitalWrite(pinLed2, HIGH);
delay(1000);
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, LOW);
delay(1000);
}
Membuat Flip Flop dengan Tombol
Seperti biasa sebelum membuat program dibuat dulu flowchart atau diagram alir untuk pengendali Flip Flop Berbasis Arduino. Bentuk Flowchart sama dengan pengendali Flip Flop berbasis mikrokontroler dan yang lainnya yang ditunjukkan gambar di bawah ini.

Rangkaian untuk simulasi pengendali Flip Flop Berbasis Arduino yang dibuat pada aplikasi Proteus seperti gambar di bawah ini.

Gambar rangkaian pada perangkat lunak Proteus tidak akan berbentuk simulasi tanpa ada program yang dimasukan ke komponen mikrokontroler tersebut. Untuk membuat program sesuai rangkaian yang dibuat bisa menggunakan perangkat lunak Arduino 1.8.7, karena dengan Arduino 1.8.7 bisa menyimpan file dengan format HEX dan dapat diintegrasikan ke perangkat lunak Proteus.
Daftar program untuk sistem di atas menggunakan Bahasa Arduino IDE seperti berikut ini.
// kita buat variabel untuk nomor pin supaya lebih mudah merujuknya
const int pinStart = A0;
const int pinStop = A1;
const int pinLed1 = 12;
const int pinLed2 = 13; // variabel untuk menyimpan nilai input pin button
int nilaiStart = 0;
int nilaiStop = 0;
int i = 0;
void setup()
{
// set mode input pada pin untuk button, tidak wajib
pinMode(pinStart, INPUT);
pinMode(pinStop, INPUT); // set pin untuk LED ke mode output
pinMode(pinLed1, OUTPUT);
pinMode(pinLed2, OUTPUT);
}
void loop()
{
// baca nilai pin untuk button
nilaiStart = digitalRead(pinStart); // cek apakah button ditekan
if (nilaiStart == LOW)
{
while (i<1)
{
nilaiStop = digitalRead(pinStop); // nyalakan LED
digitalWrite(pinLed1, LOW);
digitalWrite(pinLed2, HIGH);
delay(1000);
if (nilaiStop == LOW) {break;} //Tombol Stop ditekan
digitalWrite(pinLed1, HIGH);
digitalWrite(pinLed2, LOW);
delay(1000);
if (nilaiStop == LOW) {break;} //Tombol Stop ditekan
}
}
else
{
// kalo nilai pin LOW // matikan LED
digitalWrite(pinLed1, LOW);
digitalWrite(pinLed2, LOW);
}
}
Untuk mengetahui pengaturan dan cara kerja rangkaian dapat dilihat dalam video di bawah ini.