const int pot = 27; //กำหนดตัวแปร pot แทนขา 27
const int led = 32; //กำหนดตัวแปร led แทนขา 32
int potVal; //ตัวแปร potVal เก็บค่าที่อ่านจาก pot
int level; //ตัวแปร level เก็บค่าที่ map จาก potVal
void setup() { //ตั้งค่าเริ่มต้นทำงานครั้งเดียว
pinMode(pot, INPUT); //ตั้งค่า pot ให้ทำงานเป็นอินพุต
pinMode(led,OUTPUT); //ตั้งค่า led ให้ทำงานเป็นเอาต์พุต
Serial.begin(115200); //ตั้งค่าความเร็ว 115200 บิตต่อวินาที ในการสื่อสารข้อมูล
}
void loop() { //ทำงานซ้ำไปเรื่อยๆ ไม่สิ้นสุด
potVal = analogRead(pot); //อ่านค่าจาก pot 0-4095
level = map(potVal,0,4095,0,255); //map ค่าที่อ่านได้ให้เป็นช่วง 0-255
analogWrite(led, level); //สั่งให้ LED สว่างตามค่า level ที่กำหนด
Serial.print("ค่าที่อ่านได้: "); //แสดงข้อความออกทาง Serial Monitor
Serial.println(level); //แสดงค่าตัวแปรออกทาง Serial Monitor
delay(100); //หยุดรอก่อนทำคำสั่งถัดไป 100 ms
}
//ขยายความรู้
//map() คือ ฟังก์ชันสำหรับ แปลงช่วงตัวเลข
//analogWrite() คือ คำสั่งที่ใช้สร้างสัญญาณ PWM เพื่อปรับระดับความแรงของอุปกรณ์
//โจทย์กิจกรรมที่ 4
//ต่อวงจร Potentiometer ด้วย Breadboard
//map ค่า pot ให้เหลือจาก 0-4095 เป็น 0-255