#include <Servo.h>
#include <LCD_I2C.h>
#define SW1 8
#define SW2 7
#define SW3 6
#define SW4 5
#define BUZZER 10
#define LED1 11
#define LED2 12
#define LED3 13
#define EN 4
#define DIR 2
#define STEP 3
int steps = 200;
LCD_I2C lcd(0x27, 16, 2);
Servo myservo;
void setup() {
myservo.attach(9, 550, 2350);
lcd.begin();
lcd.backlight();
pinMode(SW1,INPUT);
pinMode(SW2,INPUT);
pinMode(SW3,INPUT);
pinMode(SW4,INPUT);
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
pinMode(EN,OUTPUT);
pinMode(DIR,OUTPUT);
pinMode(STEP,OUTPUT);
pinMode(BUZZER,OUTPUT);
myservo.write(90);
delay(500);
digitalWrite(BUZZER,1);
delay(1000);
digitalWrite(BUZZER,0);
lcd.setCursor(0, 0);
lcd.print(" KKIN 2022 ");
lcd.setCursor(0, 1);
lcd.print(" Electronics ");
delay(2000);
lcd.clear();
}
void loop() {
lcd.setCursor(0, 0);
lcd.print("adc: ");
lcd.print(analogRead(A0));
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("tekan tombol ");
if (digitalRead(SW1)==1){
myservo.write(0); //servo 0 derajad
digitalWrite(LED1,1);
digitalWrite(LED2,0);
digitalWrite(LED3,0);
delay(500);
}
if (digitalRead(SW2)==1){
myservo.write(180); //Servo 180 derajad
digitalWrite(LED1,0);
digitalWrite(LED2,1);
digitalWrite(LED3,0);
delay(500);
}
if (digitalRead(SW3)==0){
digitalWrite(LED1,0);
digitalWrite(LED2,0);
digitalWrite(LED3,1);
digitalWrite(DIR, HIGH);
for(int x = 0; x < steps; x++)
{
digitalWrite(STEP, HIGH);
delayMicroseconds(2000);
digitalWrite(STEP, LOW);
delayMicroseconds(2000);
}
delay(500);
}
if (digitalRead(SW4)==0){
digitalWrite(LED1,0);
digitalWrite(LED2,0);
digitalWrite(LED3,0);
digitalWrite(DIR, LOW);
for(int x = 0; x < steps; x++)
{
digitalWrite(STEP, HIGH);
delayMicroseconds(2000);
digitalWrite(STEP, LOW);
delayMicroseconds(2000);
}
delay(500);
}
}