Lab 3 Digital Output
จุดประสงค์การเรียนรู้
เพื่อใช้งานสัญญาณDigital OutputในการควบคุมการทำงานของหลอดLED
สาระการเรียนรู้
1. สัญญาณ Digital
เป็นสัญญาณที่มีความเที่ยงตรงที่ค่อนข้างสูง มีได้ 2 ค่า คือ HIGH กับ LOW หรือ 1 กับ 0 นั่นเอง
2. คำสั่งการใช้งาน
รูปแบบการใช้งานคำสั่งในภาษาซีของArduino IDEในเนื้อหานี้ จะใช้คำสั่งดังต่อไปนี้
วัสดุอุปกรณ์
1. ไมโครสวิตซ์ ชนิดกดติดปล่อยดับ จำนวน 1 ตัว
2. ตัวต้านทาน 10 กิโลโอห์ม จำนวน 1 ตัว
3. บอร์ด ESP32 Devkit V.1 จำนวน 1 บอร์ด
4. สายMicro USB จำนวน 1 เส้น
5. Breadboard
6. สายแพร Male-Male
7. หลอด LED จำนวน 3 หลอด
8. ตัวต้านทาน 220 โอห์ม จำนวน 3 ตัว
วิธีทำการทดลอง
1. ต่อวงจรเพิ่มเติมจากLab1 โดยใช้หลอด LED จำนวน 1 หลอด ต่อเข้ากับตัวต้านทานดังนี้ โดยขาสั้นLED(ขั้ว- หรือขั้วCathode)ต่อเข้ากับGND ของบอร์ดESP32 และขายาวLED(ขั้ว+หรือขั้วAnode)ต่อเข้ากับตัวต้านทาน 220 โอห์ม แล้วต่อเข้าที่พอร์ตD5 ของบอร์ดESP32 ดังตาราง Datasheet และรูปการต่อวงจรด้านล่าง
2. ทำการCopy Codeด้านล่างก่อนUpload code Arduino IDE ลงไปใบนบอร์ด ESP32 Devkit v1 ควรเลือกที่Tool -> Board -> ESP32 Arduino ->ESP32 Dev Module (ดังภาพประกอบด้านล่าง)
Arduino IDE Code
void setup() {
pinMode(5,OUTPUT); // port5 output
}
void loop() {
digitalWrite(5,HIGH); // port5 LED on
delay(100); // time 100 ms
digitalWrite(5,LOW); // port 5 LED off
delay(100); // time 100 ms
}
3.หลังจากนั้นให้เข้ามาที่ Tool -> Port แล้วเลือกพอร์ตCom portที่เชื่อมกับUSB ดังรูปข้างล่าง
** กรณีใช้งานใน Ubuntu พอร์ตที่ใช้อาจจะเป็นพอร์ตttyUSB0 ซึ่งจะต้องเลือกเป็นพอร์ตชื่อนี้แทนCom port และก่อนกดUpload ให้ทำการเปิดTerminal โดยเข้าไปที่desktop คลิกขวาตรงพื้นที่ว่าง แล้วเลือก Open Terminal หลังจากนั้นให้พิมพ์ข้อความในTerminalดังนี้เพื่อทำการเปิดพอร์ตUSB : sudo chmod 666 /dev/ttyUSB0 หลังจากนั้นให้กดEnter และทำการกรอกรหัสผ่านของเครื่องพร้อมกับกดปุ่มEnterอีกครั้ง หลังจากนั้นก็Upload codeในArduino IDE
4.ทำการกดปุ่มUpload ที่เป็นรูปหัวลูกษร หรือจะกด Ctrl+u ที่คีย์บอร์ดเพื่อทำการUploadโปรแกรมไปที่บอร์ดESP32 ดังรูปข้างล่าง
5.หลังจากที่Uploadโปรแกรมแล้วจะจะสังเกตเห็นหลอดไฟได้กระพริบติดดับสลับกันอย่างต่อเนื่อง
ตอนที่ 2 ต่อวงจรเพิ่มเติมดังDatasheetและรูปข้างล่าง
หลังจากต่อวงจรเสร็จให้ทำการCopy Code และทำการUpload codeลงในบอร์ดESP32 จะเห็นได้ว่าหลอดLEDทั้ง 3 ดวง
ติดดับสลับกันอย่างต่อเนื่อง
Arduino IDE Code V2
void setup() {
pinMode(5,OUTPUT);
pinMode(19,OUTPUT);
pinMode(23,OUTPUT);
}
void loop() {
digitalWrite(5,HIGH);
delay(100);
digitalWrite(5,LOW);
delay(100);
digitalWrite(19,HIGH);
delay(100);
digitalWrite(19,LOW);
delay(100);
digitalWrite(23,HIGH);
delay(100);
digitalWrite(23,LOW);
delay(100);
}