Jumat, 15 Juli 2022

Tugas Algoritma Switch Case

 Switch Case

Kondisi SWITCH CASE yang akan kita pelajari ini bisa dipandang sebagai alternatif penulisan dari kondisi logika IF ELSE IF pada tutorial C++ sebelumnya. Namun tidak semua kondisi IF ELSE IF bisa dikonversi ke dalam bentuk SWITCH CASE yang kita akan bahas dengan lebih detail.

Pengertian Switch case sendiri ialah percabangan kode program dimana kita membandingkan isi sebuah variabel dengan beberapa nilai. Jika proses perbandingan tersebut menghasilkan true, maka block kode program akan di proses.

Kondisi SWITCH CASE terdiri dari 2 bagian, yakni perintah SWITCH dimana terdapat nama variabel yang akan diperiksa, serta 1 atau lebih perintah CASE untuk setiap nilai yang akan diperiksa

Format dasar penulisan switch case :

switch (nama_variabel) {

  case 'nilai_1':

    // Kode program yang dijalankan jika nama_variabel == nilai_1

    break;

  case 'nilai_2':

    // Kode program yang dijalankan jika nama_variabel == nilai_2

    break;

  case 'nilai_3':

    // Kode program yang dijalankan jika nama_variabel == nilai_3

    break;

  ...

  ...

  default:

     // Kode program yang dijalankan jika tidak ada kondisi yang terpenuhi

}

saya akan memberi contoh program yang menggunakan switch case.

saya akan membuat Kalkulator sederhana

komponen yang digunakan :

- keypad 4x4

- Arduino Uno

- I2C modul

- LCD 16x2

Gambar Rangkaian


penjelasan mengenai rangkaian diatas input yang kita gunakan pada pin A4 A5 untuk dihubungkan ke LCD melalui I2C kemudian output yang digunakan ialah keypad 4x4 untuk menampilkan angka dan aritmatika pada layar LCD.

coding Program

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 20, 2);


#include <Keypad.h>

const byte ROWS = 4;

const byte COLS = 4;


char keys [ROWS] [COLS] = {

{'7', '8', '9', '/'},

{'4', '5', '6', '*'},

{'1', '2', '3', '-'},

{'C', '0', '=', '+'}

};

byte rowPins[ROWS] = {2, 3, 4, 5};

byte colPins[COLS] = {6, 7, 8, 9};


Keypad myKeypad = Keypad(

makeKeymap(keys), rowPins, colPins,

ROWS, COLS );

float presentValue = false;

float next = false;float final = false;

String num1, num2; String answer = "0";

char op;


void setup(){

  lcd.init();

  lcd.backlight();

  lcd.setCursor(0,0);

  lcd.print("Kalkulator");

  lcd.setCursor(0,1);

  lcd.print("Sederhana");

  delay(1000);

  lcd.clear();

}

void loop() {

  char key = myKeypad.getKey();

  if (key != NO_KEY && (key == '1' || key =='2' || key == '3' || key == '4' || key == '5'|| key == '6' || key == '7' || key == '8' ||key== '9' || key == '0')){

    if (presentValue != true){

      num1 = num1 + key;

      int numLength = num1.length();

      lcd.setCursor(0, 0);

      lcd.print(num1);

    }

    else{

      num2 = num2 + key;

      int numLength = num2.length();

      int numLength1 = num1.length();

      lcd.setCursor(1 + numLength1, 0);

      lcd.print(num2);

      final = true;

    }

  }

  else if (presentValue == false && key !=

  NO_KEY && (key == '/' || key == '*' || key

  == '-' || key == '+')){

    if (presentValue == false){

      int numLength = num1.length();

      presentValue = true;op = key;

      lcd.setCursor(0 + numLength, 0);

      lcd.print(op);

    }

  }

  else if (final == true && key != NO_KEY && key == '=') {

    switch (op){

      case '+':

        answer = num1.toFloat() + num2.toFloat();

        break;

      case'-' :

        answer = num1.toFloat() - num2.toFloat();

        break;

      case'*' :

      answer = num1.toFloat() * num2.toFloat();

      break;

      case'/':

      answer = num1.toFloat() / num2.toFloat();

      break;

    }

    lcd.clear();

    lcd.setCursor(16, 1);lcd.autoscroll();

    lcd.print(answer); lcd.noAutoscroll();

  }

  else if (key != NO_KEY && key == 'C'){

    lcd.clear();

    presentValue = false;final = false;

    num1 = "";

    num2 = ""; answer = "0";op = ' ';

  }

}

Video Simulasi



Selasa, 12 Juli 2022

Voltmeter 0-50V berbasis Arduino

Apa itu Voltmeter?

Voltmeter adalah alat ukur yang digunakan untuk mengukur beda potensial atau tegangan listrik dari dua titik potensial listrik. Pada peralatan elektronik, voltmeter digunakan sebagai pengawasan nilai tegangan kerja. Voltmeter tersusun atas beberapa bagian yaitu terminal positif dan negatif, batas ukur, setup pengatur fungsi, jarum penunjuk serta skala tinggi dan skala rendah.



Cara kerja Voltmeter

Pada rangkaian listrik, voltmeter merupakan suatu alat untuk mengukur besar tegangan listrik. Pergerakan jarum penunjuk pada voltmeter terjadi karena adanya gaya magnet yang timbul sebagai hasil interaksi antara medan magnet dan kuat arus listrik. Simpangan yang dihasilkan oleh pergerakan jarum sebanding dengan kuat arus listrik yang mengalir. Arus listrik yang terukur merupakan arus listrik yang melalui kumparan yang diletakkan di antara medan magnet. Peningkatan arus berarti peningkatan simpangan pergerakan jarum sehingga akan menunjuk ke nilai pengukuran tegangan yang lebih besar. Voltmeter dipasang secara paralel dengan komponen yang akan diukur dalam rangkaian listrik.

Setelah kita mengenal sedikit mengenai voltmeter, kita akan membuat voltmeter sederhana menggunakan Software Proteus dan Arduino Uno.

voltmeter digunakan untuk mengukur suatu tegangan di sebuah rangkaian. cara mengukur menggunakan voltmeter kita rangkaian membentuk sebuah rangkaian paralel kemudian kita bisa mengukur tegangan dirangkaian tersebut.

kita membuat voltmeter yang berspesifikasi 0-50V maksud dari itu voltmeter tersebut dapat mengukur tegangan diantara 0V hingga 50V.

ada beberapa komponen yang diperlukan untuk membuat voltmeter sederhana ini yaitu :

- Arduino Uno

- Resistor

- Potensiometer

- LCD 16x2

Skematik rangkaian


Penjelasan Rangkaian
Pada rangkaian tersebut kita menghubungkan Arduino ke beberapa komponen seperti halnya ke LCD dan Ke sumber tegangannya. Alasan kenapa dua buah resistor dibuat paralel karena voltmeter ketika mengukur tegangan harus paralel dan dikarena jika suatu rangkaian paralel akan mempunyai tegangan yang sama. Kita menggunakan kaki A0 sebagai input ke arduino agar bisa membaca tegangan yang masuk lalu ditampilkan ke LCD hasil dari pembacaan arduino yang mendapatkan tegangan.

Coding Program
 
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);   
float vin=0.0;
float temp=0.0;
float r1=100000.0;                       
float r2=10000.0;                      

void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2);                    
  lcd.print("Riyan Ade");     
  delay(1000);
  lcd.clear();
  lcd.print("DC VoltMeter");
}

void loop() {
  int analog_val=analogRead(A0);   
  temp = (analog_val * 5.0)/1024.0;   
  vin = temp/(r2/(r1+r2));
  if(vin<0.1)
  {
    vin=0.0;
  }
  lcd.setCursor(0, 1);        
  lcd.print("Voltage = ");   
  lcd.println(vin);
  delay(300);
}

Video Simulasi



Pada simulasi tersebut, kita Software dijalankan LCD akan membaca tegangan yang masuk kedalam Arduino, untuk mengatur tegangannya kita menggunakan potensiometer dengan mengatur potensionya agar tampilan lcd berubah menyesuaikan pada potensiometer yang diatur.

Program Perulangan Menggunakan Led berbasis Arduino

 

Perulangan For, While dan Do-While Pada Bahasa C

Perulangan atau biasa disebut juga looping sangat sering digunakan dalam bahasa program, dengan adanya ini ketika kita ingin membuat banyak kondisi maka gunakanlah perulangan agar kode menjadi lebih praktis dan mudah. Terdapat tiga perulangan yaitu perulangan For, perulangan While, dan perulangan Do-While.

Dalam perulangan terdapat tiga hal yang diperlukan yaitu :

1. Kondisi Awal atau bisa disebut juga sebagai inisialisasi.
2. Syarat Kondisi, yang diperlukan agar suatu perulangan berhenti.
3. Iterasi, suatu syarat bagaimana suatu kondisi berjalan yaitu bertambah atau berkurang

Perulangan For

Perulangan for adalah perulangan yang simple dan banyak digunakan karena strukturnya yang mudah dipahami, berikut adalah cara untuk mendeklarasikan perulangan For :

for (kondisi awal; syarat kondisi; iterasi;)
{
Pernyataan atau statement
}

Perulangan While

Dalam perulangan while, pada prosesnya harus membuat variabel dengan nilai sebagai kondisi awal, lalu memerlukan syarat kondisi terlebih dahulu untuk melakukan looping dan diakhir kondisi diberikan iterasi.

Kondisi awal
while (syarat kondisi)
{
statement;
iterasi;
}

Perulangan Do-While

Sedangkan pada perulangan Do-While, perulangan ini melakukan terlebih dahulu perulangan lalu membaca syarat kondisinya, perhatikan struktur Do-While berikut

do
{
statement;
iterasi;
}
while(syarat kondisi);

Contoh program yang menggunakan Perulangan;


Pada flowchat diatas Kondisi awal ditentukan dulu selanjutnya dilakukan proses perubahan pada kondisi awal. Jika kondisi setelah perubahan dilakukan sesuai dengan kondisi yang ditetapkan, maka perintah/instruksi atau source code akan terus dieksekusi secara berulang. 

for (statement;kondisi;statement)
{
//eksekusi code
}

Penjelasan format :
  1.  Statemen awal diisi dengan kondisi awal, dapat berisi inisialisasi variabel atau  berisi data (misal, z=0).
  2. Statemen akhir diisi perubahan atau proses yang  terjadi pada variabel atau data yang ada pada statemen diawal (misal z=z+1).
  3. Kondisi, ini berisi kondisi dimana setelah perulangan dilakukan,  ketika  kondisi yang muncul setelah perulangan sudah  tidak  sesuai dengan kondisi yang ditentukan, maka perulangan tidak dieksekusi lagi.

Kemudian contoh program yang menggunakan perulangan.

Komponen yang digunakan :
- Arduino Uno
- Resistor 220
- Led
Skematik Rangkaian :
Penjelasan Rangkaian
Pada rangkain tersebut Pin 3 dihubungkan ke kaki positif Led lalu kaki negatif Led dihubungkan ke GND/Ground.

Coding Program
void setup(){
 pinMode (3, OUTPUT);
{
void loop(){
for (int i=1; i<10; i++){
digitalWrite (3, HIGH);
delay (500);
digitalWrite (3, LOW);
}
delay(3000);
}

Penjelasan codingan

Pada codingan diatas kita menggunakan perulangan for pada program.Program tersebut menggunakan Pin 3 sebagai Outputnya.Kemudian statement pada perulangan tersebut i berlogika 1 lalu kondisi akan berulangan sebanyak kurang dari 10 dan akan berjalan terus menerus.Isi perulangan tersebut menggunakan pin 3 yang diberi logika 1 dan 0.

video simulasi


penjelasan cara kerja

ketika simulasi dijalan maka Led akan berkedip sebanyak 10 kali dengan delay 0.5 detik ketika sudah mencapai 10 kali akan delay 3  detik kemudian kembali ke perulangan awal.




Senin, 16 Mei 2022

ALGORITMA & PEMROGRAMAN KASUS TEKNIK ELEKTRO

 SIMULASI PENGUKURAN TEGANGAN DC MENGGUNAKAN MIKROKONTROLER BERBASIS ARDUINO DAN PROTEUS 8

Pendahuluan

semakin berkembang teknologi zaman sekarang khususnya pada alat pengukuran. Alat pengukuran terus berkembang dari zaman ke zaman. Awalnya dipakai alat-alat ukur analog dengan penunjukan menggunakan jarum dan membaca dari skala. Kini banyak dipakai alat ukur listrik digital yang praktis dan hasilnya tinggal membaca pada layar display .

Bahkan dalam satu alat ukur listrik dapat digunakan untuk mengukur beberapa besaran, misalnya tegangan AC dan DC, arus listrik DC dan AC, resistansi kita menyebutnya Multimeter. Untuk kebutuhan praktis tetap dipakai alat ukur tunggal, misalnya untuk mengukur tegangan saja, atau daya listrik saja.

Sampai saat ini alat ukur analog masih tetap digunakan karena handal, ekonomis, dan praktis. Namun alat ukur digital makin luas dipakai, karena harganya makin terjangkau, praktis dalam pemakaian, dan penunjukannya makin akurat dan presisi.

Ada beberapa istilah dan definisi pengukuran listrik yang harus dipahami, diantaranya alat ukur, akurasi, presisi, kepekaan, resolusi, dan kesalahan.

Ada dua sistem pengukuran yaitu sistem analog dan sistem digital. Sistem analog berhubungan dengan informasi dan data analog. Sinyal analog berbentuk fungsi kontinyu, misalnya penunjukan temperatur dalam ditunjukkan oleh skala, penunjuk jarum pada skala meter, atau penunjukan skala elektronik.

Sistem digital berhubungan dengan informasi dan data digital. Penunjukan angka digital berupa angka diskret dan pulsa diskontinyu berhubungan dengan waktu. Penunjukan display dari tegangan atau arus dari meter digital berupa angka tanpa harus membaca dari skala meter. Sakelar pemindah frekuensi pada pesawat HT juga merupakan angka digital dalam bentuk digital.

Cara Kerja 

Cara kerja pada alat ukur tegangan DC. Ialah jika probe dihubungkan ke tegangan DC atau disini kita menggunakan Baterai maka mikrokontroler membaca dengan kaki A0 lalu diproses kemudian output dari mikrokotroler tersebut menggunakan LCD 16×2 kemudian muncul tegagangan yang dihasilkan pada sebuah baterai tersebut.Pengukuran ini termasuk pengukuran digital.

Skematik Rangkaian








Komponen 

* LCD 16x2 (LM016L)

* Resistor 10k

* Baterai

* Arduino Uno

Sketch Arduino













Video Simulasi




Selasa, 19 April 2022

Pemrograman Percabangan Bersarang Berbasis Arduino

Apa itu Nested IF / Percabangan Bersarang ?

Percabangan IF sendiri merupakan sebuah pemilihan statement yang akan dieksekusi berdasarkan suatu kondisi. Kondisi tidak hanya satu saja tapi bisa lebih. Pada kali ini kita akan membahasnya lebih detail dan kompleks dengan contoh program IF bersarang.

IF Bersarang (Nested If) merupakan percabangan IF dengan struktur yang lebih kompleks. Dimana didalam sebuah pernyataan IF terdapat pernyataan IF lainnya, Dengan kata lain terdapat sebuah kondisi IF didalam IF. Penggunaan struktur IF Bercabang biasa digunakan untuk pemilihan beberapa pernyataan bertingkat, Ketika sebuah pernyataan IF dijalankan dan bernilai true maka akan terdapat pernyataan if lainnya pada blok tersebut.

Struktur IF Bersarang

if (kondisi 1) { if (kondisi 1.1) { pernyataan; } }else { pernyataan; }

Contoh Program IF bersarang (Nested IF)
#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); 
#define Password_Length 8
int signalPin = 13;
char Data[Password_Length];
char Master[Password_Length] = "123789A";
byte data_count = 0, master_count = 0;
bool Pass_is_good;
char customKey;
const byte ROWS = 4;
const byte COLS = 3;
char hexaKeys[ROWS][COLS] = {
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};
byte rowPins[ROWS] = {9, 8, 7, 6};
byte colPins[COLS] = {5, 4, 3, 2};
Keypad customKeypad = Keypad(makeKeymap(hexaKeys),
rowPins, colPins, ROWS, COLS);
void setup(){
Serial.begin(9600);
lcd.begin(16, 2);
lcd.setCursor(1, 0);
lcd.print("Riyan Ade");
lcd.setCursor(0, 1);
lcd.print("15419642");
delay(5000);
lcd.clear();
pinMode(signalPin, OUTPUT);
}
void loop(){
lcd.setCursor(0,0);
lcd.print("Sandi:");
customKey = customKeypad.getKey();
if (customKey){
Data[data_count] = customKey;
lcd.setCursor(data_count,1);
lcd.print(Data[data_count]);
data_count++;
}
if(data_count == Password_Length-1){
lcd.clear();
if(!strcmp(Data, Master)){
lcd.print("Sandi Benar");
digitalWrite(signalPin, HIGH);
}
else{
lcd.print("Sandi Salah");
digitalWrite(signalPin, LOW);
delay(1000);
}
lcd.clear();
clearData();
}
}
void clearData(){
while(data_count !=0){
Data[data_count--] = 0;
}
return;
}
Mendownload Library Arduino
- Library Keypad.h
- Library LCD 12C.h

Penerapan Percabangan Bersarang

Kali ini saya akan Simulasikan Program yang diatas ada beberapa software pedukung yaitu :

- Software Proteus 8
- Software Arduino IDE

Skematik Rangkaian


Komponen yang digunakan :
- Led
- KeyPad 3x4
- Lcd 16x2
- Arduino Uno

Penjelasan Singkat Hasil Outputnya :

Program keypad 3×4 Arduino ini akan menampilkan nilai angka pada LCD I2C 16×2 sesuai dengan yang ditekan pada keypad dan digunakan untuk menginput password pin yang telah kita buat pada program. 

Apabila password yang kita input telah sesuai pada program, maka LED akan menyala dan Lcd akan tertulis Sandi Benar. Begitu juga sebaliknya apabila password yang kita input tidak sesuai pada program maka LED akan mati dan tampilan pada LCD akan terbaca Sandi Salah

Untuk lebih jelasnya bisa melihant hasil nya di Video dibawah ini