#include <Servo.h> //เรีกใช้ library ที่ต้องการ
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 display = Adafruit_SSD1306(128,64,&Wire);//กำหนดค่าเริ่มต้นในตัวแปร display
Servo myservo; //ให้ Servo ชื่อ myservo
int servo_pin = 9,sw1 = 13,sw2 = 12,val1 = 0,val2 = 0,pos = 0; //กำหนดค่าตัวแปร
void setup() {
myservo.attach(servo_pin); //เรียกใช้ฟังก์ชัน attach
pinMode(4,OUTPUT); //กำหนดให้ขา 4 เป็น OUTPUT
pinMode(sw1,INPUT_PULLUP); //กำหนดให้ sw1 เป็น INPUT_PULLUP
pinMode(sw2,INPUT_PULLUP); //กำหนดให้ sw2 เป็น INPUT_PULLUP
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //เปิดใช้งานหน้าจอ
}
void loop() {
int dtwait = 15; //กำหนดให้ dtwait มีค่า delay การหมุนคือ 15
val1 = digitalRead(sw1); //รับค่าปุ่มกดที่1
val2 = digitalRead(sw2); //รับค่าปุ่มกดที่2
if(val1==0 && pos<180){ //ถ้า sw1 มีค่า 0 ค่าของ potenmiter จะน้อยกว่า180
digitalWrite(4,HIGH); //ไฟติด
delay(100); //หน่วงเวลาที่ 100 มิลลิวินาที
digitalWrite(4,LOW); //ไฟดับ
delay(100);
pos+=1;
}
if(val2==0 && pos>0){ //ถ้า sw2 มีค่า 0 ค่าของpotenmiter จะมากกว่า 0
digitalWrite(4,HIGH); //ไฟติด
delay(100);
digitalWrite(4,LOW); //ไฟดับ
delay(100);
pos-=1;
}
myservo.write(pos); //เรียกใช้งานการหมุน
delay(dtwait); //ค่าหน่วงเวลาที่ dtwait
display.clearDisplay(); //clearจอ
display.setTextColor(WHITE,BLACK); //สีข้อความ
display.setCursor(0,0); //ตำแหน่งแสดงข้อความ
display.setTextSize(2); //ขนาดข้อความ
display.print(String()+F("DEGREE ")+pos); //แสดงข้อความ
display.setCursor(0,20); //ตำแหน่งแสดงข้อความ
display.setTextSize(2); //ขนาดข้อความ
display.print("65050091");//แสดงข้อความ
display.println("65050095");
display.println("65050102");
display.display(); //แสดงจอภาพ
}