//จงอธิบายโค๊ดในแต่ละบรรทัดให้ถูกต้อง (10 คะแนน)
#define LEDRED 13 // ประกาศตัวแปรแบบค่าคงที่ ชื่อ LEDRED มีค่าที่เก็บคือ 13
#define LEDGREEN 11 // ประกาศตัวแปรแบบค่าคงที่ ชื่อ LEDGREEN มีค่าที่เก็บคือ 11
const int buttonPin = 4; // ประกาศตัวแปรที่มีค่าคงที่ ชื่อ buttonPin และมีชนิดข้อมูลเป็นจำนวนเต็ม = 4
int buttonState = 0; //ตัวแปรที่ประกาศ สามารถเก็บค่าที่เป็นจำนวนเต็มบวก, จำนวนเต็มลบ, หรือศูนย์. ชื่อ buttonState มีค่าจำนวนเต็ม = 0
void setup() { //ฟังก์ชันนี้จะถูกเรียกทันทีเมื่อไมโครคอนโทรลเลอร์ ถูกเปิดหรือรีเซ็ต setup() มักถูกใช้เพื่อกำหนดค่าเริ่มต้น, ตั้งค่าขา, หรือทำการเตรียมตัวให้พร้อมทำงานในการทำงานหลัก
Serial.begin(115200); //เป็นฟังก์ชันที่ใช้ในภาษาโปรแกรม สำหรับเริ่มต้นการใช้งานโมดูลการสื่อสารทางซีเรียล บนบอร์ด Arduino หรือไมโครคอนโทรลเลอร์อื่นๆ ที่รองรับการสื่อสารซีเรียล Serial.begin(115200)
pinMode(LEDRED, OUTPUT); //เป็นฟังก์ชัน ที่ใช้เพื่อกำหนดโหมดการทำงานของขา บนไมโครคอนโทรลเลอร์ หรือบอร์ด ที่มีฟังก์ชันนี้จะบอกแก่ไมโครคอนโทรลเลอร์ว่าต้องจัดการขาที่กำหนดให้เป็นอินพุต (input) หรือเอาต์พุต (output)
//เป็นหมายเลขของขาที่ต้องการกำหนด หรือ ชื่อของ LEDRED , Mod Output
pinMode(LEDGREEN, OUTPUT); //เป็นหมายเลขของขาที่ต้องการกำหนด หรือ ชื่อของ LEDGREEN , Mod Output
pinMode(buttonPin, INPUT); //เป็นหมายเลขของขาที่ต้องการกำหนด หรือ ชื่อของ buttonPin , Mod input
}
void loop() { //เป็นฟังก์ชันหลักที่ถูกเรียก ในทุกๆ รอบการทำงานของโปรแกรม หรือโปรแกรมที่ใช้ ฟังก์ชันนี้เป็นส่วนหลักที่ทำงานซ้ำๆ ไปเรื่อยๆ ขณะที่ Arduino กำลังทำงาน
buttonState = digitalRead(buttonPin); //ตัวแปรที่ประกาศด้วยจำนวนเต็ม ชื่อ buttonState เพื่ออ่านค่าจากขาดิจิทัล (buttonPin) บนไมโครคอนโทรลเลอร์ หรือบอร์ดที่ใช้ ฟังก์ชันนี้จะคืนค่าเป็น HIGH (1) หรือ LOW (0) ซึ่งแสดงถึงสถานะของขาดิจิทัลที่กำหนด
switch (buttonState) { //เป็นโครงสร้างควบคุมการทำงานของโปรแกรมในภาษาโปรแกรมต่าง ๆ ที่ใช้ในการตรวจสอบค่าของตัวแปรหรือค่าที่รับมา และทำการปฏิบัติตามเงื่อนไขที่ตรงกับค่าที่ได้รับนั้น โดยทั่วไปแล้ว switch-case จะมีโครงสร้างพื้นฐานดังนี้: ตรวจสอบค่าหรือตัวแปรที่กำหนด หากค่าหรือตัวแปรตรงกับเงื่อนไขที่กำหนดไว้ (case) โปรแกรมจะทำงานตามคำสั่งที่กำหนดไว้ใน case นั้น หากไม่ตรงกับ case ใด ๆ โปรแกรมจะทำงานตามคำสั่งที่กำหนดไว้ใน default (ถ้ามี)
// กำหนดไว้ว่า ถ้ามีการกดสวิตช์หลอดไฟ LEDRED จะติด แต่ถ้ากดสวิตช์อีกครั้งหลอดไฟ LEDGREEN ก็จะติดแทน
case HIGH: // โครงสร้างควบคุมการทำงาน switch-case ที่ใช้ในการตรวจสอบค่าหรือตัวแปรที่รับมา และทำการปฏิบัติตามเงื่อนไขที่ตรงกับค่าที่ได้รับนั้น เมื่อใช้ switch-case โปรแกรมจะตรวจสอบค่าหรือตัวแปรที่กำหนด และทำการปฏิบัติตามคำสั่งที่กำหนดไว้ใน case ที่ตรงกับค่าหรือตัวแปรนั้น หากไม่ตรงกับ case ใดๆ โปรแกรมจะทำการปฏิบัติตามคำสั่งที่กำหนดไว้ใน default (ถ้ามี)
digitalWrite(LEDRED, HIGH); //เมื่อเราใช้ digitalWrite โดยระบุด้วยพารามิเตอร์ตัวแรกเป็นหมายเลขของขาข้อมูลที่ต้องการเขียนค่าไฟฟ้าลงไป และพารามิเตอร์ตัวที่สองเป็นค่าที่ต้องการเขียนลงไป ซึ่งสามารถทำให้ขาข้อมูลนั้นมีสถานะเป็น HIGH (มีไฟฟ้า) หรือ LOW (ไม่มีไฟฟ้า) ซึ่งอยู่ระหว่าง 5V และ 0V ตามลำดับ
//(LEDRED, HIGH) ทำให้หลอดไฟสีแดงติด หรือก็คือแสดงผลถูก ตรงตามเงื่อนไขที่ตั้งไว้ เมื่อตรงตามเงื่อนไข case HiGH ให้ทำการหยุด การประมวลผล (break)
digitalWrite(LEDGREEN, LOW); //เมื่อเราใช้ digitalWrite โดยระบุด้วยพารามิเตอร์ตัวแรกเป็นหมายเลขของขาข้อมูลที่ต้องการเขียนค่าไฟฟ้าลงไป และพารามิเตอร์ตัวที่สองเป็นค่าที่ต้องการเขียนลงไป ซึ่งสามารถทำให้ขาข้อมูลนั้นมีสถานะเป็น HIGH (มีไฟฟ้า) หรือ LOW (ไม่มีไฟฟ้า) ซึ่งอยู่ระหว่าง 5V และ 0V ตามลำดับ
//(LEDGREEN, LOW) ทำให้หลอดไฟสีเขียวดับ หรือก็คือไม่แสดงผล
break; //"break" ใช้ในคำสั่ง switch-case ในภาษาโปรแกรม เมื่อโปรแกรมทำงานแล้วพบคำสั่ง break จะทำให้โปรแกรมออกจาก switch-case นั้นๆ ทันที โดยไม่ต้องทำการตรวจสอบ case อื่น ๆ ที่เหลืออีกต่อไป
case LOW:
digitalWrite(LEDRED, LOW); //เมื่อเราใช้ digitalWrite โดยระบุด้วยพารามิเตอร์ตัวแรกเป็นหมายเลขของขาข้อมูลที่ต้องการเขียนค่าไฟฟ้าลงไป และพารามิเตอร์ตัวที่สองเป็นค่าที่ต้องการเขียนลงไป ซึ่งสามารถทำให้ขาข้อมูลนั้นมีสถานะเป็น HIGH (มีไฟฟ้า) หรือ LOW (ไม่มีไฟฟ้า) ซึ่งอยู่ระหว่าง 5V และ 0V ตามลำดับ
//(LEDRED, LOW) ทำให้หลอดไฟสีแดงดับ หรือก็คือไม่แสดงผล
digitalWrite(LEDGREEN, HIGH); //เมื่อเราใช้ digitalWrite โดยระบุด้วยพารามิเตอร์ตัวแรกเป็นหมายเลขของขาข้อมูลที่ต้องการเขียนค่าไฟฟ้าลงไป และพารามิเตอร์ตัวที่สองเป็นค่าที่ต้องการเขียนลงไป ซึ่งสามารถทำให้ขาข้อมูลนั้นมีสถานะเป็น HIGH (มีไฟฟ้า) หรือ LOW (ไม่มีไฟฟ้า) ซึ่งอยู่ระหว่าง 5V และ 0V ตามลำดับ
//(LEDGREEN, HIGH) ทำให้หลอดไฟสีเขียวติด หรือก็คือแสดงผลถูก ตรงตามเงื่อนไขที่ตั้งไว้ เมื่อตรงตามเงื่อนไข case LOW ให้ทำการหยุด การประมวลผล (break)
break; //"break" ใช้ในคำสั่ง switch-case ในภาษาโปรแกรม เมื่อโปรแกรมทำงานแล้วพบคำสั่ง break จะทำให้โปรแกรมออกจาก switch-case นั้นๆ ทันที โดยไม่ต้องทำการตรวจสอบ case อื่น ๆ ที่เหลืออีกต่อไป
}
}