LAB 11 สร้างเมนู
LAB 11 สร้างเมนู
ในบทที่ผ่านมาหากเราต้องการจะใช้โปรแกรมวัดค่า จำเป็นต้องกลับมาอัพโหลดโค้ดใหม่ ทำให้การงานค่อนข้างยุ่งยากและเสียเวลา ในบทนี้เราจึงจะสร้างเมนูเพื่อใช้งานโปรแกรมได้หลากหลายรูปแบบในการอัพโหลดคราวเดียว
บทความนี้จะใช้หลักการอ่านค่า analog จาก0-1023 อ่านจากvr หรือ Knob ซึ่งต่ออยู่ Pin analog 7 มาแปลงเป็นค่า 0 - 8 คือจำนวนเมนูที่ต้องการใช้งาน พร้อมทั้งแสดงเมนูและค่า analog อยู่ที่หน้าจอ Oled
#include <Servo.h> //เรียกใช้งาน library เซอโว#include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h>#define display_RESET 4 Adafruit_SSD1306 display(display_RESET);const int buttonPin = 2; //ประกาศตัวแปร buttonPin แทน Pin ของปุ่มกด ซึ่งต่อไว้กับ D2void setup() { display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3D (for the 128x64)}void loop(){int sw = digitalRead(buttonPin); // ให้ sw อ่านค่า digital จากพอร์ต 2(button) int nob = analogRead(5); // ให้ nob เทียบเท่าค่า A7 int menu = map(nob, 0, 1023, 0, 8); // เทียบอัตราส่วนของพอร์ต A7 จาก 0-1023 เพื่อทำเป็นเมนู 0-8 display.clearDisplay(); // ล้างค่าหน้าจอ display.setTextColor(WHITE, BLACK); //สีอักษรเป็นสีขาว ,พื้นหลังดำ display.setCursor(0, 0); // เซตตำแหน่ง 0,0 display.setTextSize(2); // เซตขนาดอักษรมีขนาดเป็น 2 display.print(" "); // วรรค display.println(menu); // แสดงค่า Menu ที่ได้จากการ map nob ให้เหลือ 0-12 display.setTextSize(1); // เซตขนาดอักษรมีขนาดเป็น 2 display.println(" TKL ROBOT.com"); // พิมพ์คำว่า TKL ROBOT.com display.print(" "); // วรรค display.print(nob); // แสดงค่าที่อ่านได้จาก nob หรือ Analog7 display.println(" MeNu"); // display.display(); //////////////////////// สร้างฟังก์ชั่นใช้งานเมนู/////////////////////////// if ((sw == 1) and (menu == 0)){menu0();} //ถ้าปุ่มถูกกด และเมนูเป็น 0 ให้เรียกใช้ฟังก์ชั่นเมนู 0 if ((sw == 1) and (menu == 1)){menu1();} //ถ้าปุ่มถูกกด และเมนูเป็น 1 ให้เรียกใช้ฟังก์ชั่นเมนู 1 if ((sw == 1) and (menu == 2)){menu2();} if ((sw == 1) and (menu == 3)){menu3();} if ((sw == 1) and (menu == 4)){menu4();} if ((sw == 1) and (menu == 5)){menu5();} if ((sw == 1) and (menu == 6)){menu6();} if ((sw == 1) and (menu == 7)){menu7();} if ((sw == 1) and (menu == 8)){menu8();} //ถ้าปุ่มถูกกด และเมนูเป็น 8 ให้เรียกใช้ฟังก์ชั่นเมนู 8}void menu0() { //สร้างฟังชั่นเมนู 0 เขียนคำสั่งเมนู 0 ในปีกกานี้}void menu1() { //สร้างฟังชั่นเมนู 1 เขียนคำสั่งเมนู 1 ในปีกกานี้}void menu2() { //สร้างฟังชั่นเมนู 2 เขียนคำสั่งเมนู 2 ในปีกกานี้}void menu3() { //สร้างฟังชั่นเมนู 3 เขียนคำสั่งเมนู 3 ในปีกกานี้}void menu4() { //สร้างฟังชั่นเมนู 4 เขียนคำสั่งเมนู 4 ในปีกกานี้}void menu5() { //สร้างฟังชั่นเมนู 5 เขียนคำสั่งเมนู 5 ในปีกกานี้}void menu6() { //สร้างฟังชั่นเมนู 6 เขียนคำสั่งเมนู 6 ในปีกกานี้}void menu7() { //สร้างฟังชั่นเมนู 7 เขียนคำสั่งเมนู 7 ในปีกกานี้}void menu8() { //สร้างฟังชั่นเมนู 8 เขียนคำสั่งเมนู 8 ในปีกกานี้}