#include <ESP32Servo.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Stepper.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define led 32
Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
const int stepsPerRevolution = 200;
const int servoPin = 18;
Servo servo;
Stepper myStepper(stepsPerRevolution, 15, 2, 0, 4);
void setup() {
pinMode(led, OUTPUT);
myStepper.setSpeed(60);
Serial.begin(9600);
servo.attach(servoPin, 500, 2400);
Wire.begin(21, 22);
lcd.init();
lcd.backlight();
Serial.begin(9600);
if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("failed to start SSD1306 OLED"));
while (1);
}
delay(2000);
oled.clearDisplay();
oled.setTextSize(1);
oled.setTextColor(WHITE);
oled.setCursor(0, 2);
oled.println("Weerapat");
oled.display();
}
int pos = 0;
void loop() {
digitalWrite(led, HIGH);
for (pos = 0; pos <= 180; pos += 1) {
servo.write(pos);
delay(15);
}
for (pos = 180; pos >= 0; pos -= 1) {
servo.write(pos);
delay(15);
}
lcd.setCursor(0,0);
lcd.print("Hello");
lcd.setCursor(0, 1);
lcd.print("Weerapat");
delay(2000);
lcd.clear();
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(500);
Serial.println("counterclockwise");
myStepper.step(-stepsPerRevolution);
delay(500);
}