// library yang digunakan
#include <Stepper.h> // library stepper motor
#include <LiquidCrystal_I2C.h> // library lcd i2c
// deklarasi dan inisiasi stepper motor
const int stepsPerRevolution = 200; // langkah per revolusi atau putaran
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); // pin yang digunakan
// deklarasi dan inisiasi i2c lcd
#define I2C_ADDR 0x27 // lokasi pin i2c arduino
#define LCD_COLUMNS 16 // jumlah kolom pada lcd i2c
#define LCD_LINES 2 // jumlah baris lcd i2c
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES); // lokasi pin i2c lcd
// deklarasi sensor potensiometer
int sensorReading; // deklarasi pembacaan sensor potensiometer
int val; // deklarasi pembacaan sensor setelah melewati penskalaan nilai
// proses sekali jalan pada saat pertama kali ardunio diberi daya
void setup() {
lcd.init(); // inisasi lcd
lcd.backlight(); // menyatakan lampu latar menyala
}
// proses pengulangan
void loop() {
sensorReading = analogRead(A0); // pembacaan nilai potensiometer pada pin A0
val = map(sensorReading, 0, 1023, 0, 100); //menskala nilai potensiometer menjadi 0 s/d 100
lcd.setCursor(2, 0); // lokasi cursor dimulai pada kolom ke 2 dan baris 1
lcd.print("power :"); // menampilkan tulisan "power :" pada lokasi cursor yang ditunjuk
lcd.print(val); // menampilkan tulisan untuk nilai "val" setelah tulisan diatas
lcd.print(" %"); // menampilkan tulisan atau karakter " %" stelah val
if (val > 0) { // kondisi jika nilai val lebih besar dari 0
myStepper.setSpeed(val); // mengatur nilai speed stepper sama dengan nilai val
myStepper.step(stepsPerRevolution); // menjalankan putaran sesuai "stepsPerRevolution"
}
}