Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore Lab13

Lab13

Published by kowit, 2018-04-02 11:32:04

Description: ใบงานการทดลองที่ 13 การใช้งาน TFT LCD บน Arduino

Search

Read the Text Version

ใบงานการทดลองที่ 13 การใชง้ าน TFT LCD บนอารด์ ุยโนวัตถปุ ระสงคเ์ ชงิ พฤติกรรมเพือ่ ใหน้ ักศึกษาสามารถ 1. เช่อื มตอ่ ขาสัญญาณเพอ่ื ใช้งานการสอื่ สาร SPI ได้อย่างถกู ตอ้ ง 2. เขียนโปรแกรมเพ่อื แสดงผลตัวอกั ษรบนจอ LCD ไดอ้ ยา่ งถกู ตอ้ ง 3. เขยี นโปรแกรมเพอื่ แสดงผลรปู ภาพจากจอแสดงผล LCD ไดอ้ ย่างถกู ต้อง 4. เขียนโปแกรมเพ่ือรับค่าอนิ พตุ จากการสมั ผสั ทจ่ี อแสดงผล LCD ไดอ้ ยา่ งถกู ตอ้ งอปุ กรณ์ประกอบการทดลอง 1 เครอ่ื ง 1 บอร์ด 1. คอมพวิ เตอรท์ ี่มีชอ่ งเสยี บ USB 1 บอรด์ 2. บอร์ด Arduino Mega 2560 1 โมดลู 3. บอรด์ One the all 10 เส้น 4. โมดลู TFT LCD 2.8” 1 เสน้ 4. สายเชอ่ื มตอ่ 5. สาย USB type A to USB type Bลงช่ือผู้ทดลอง 1._____________________________ 2. ____________________________ทฤษฎีทีเ่ กีย่ วขอ้ ง การแสดงผลด้วยไมโครคอนโทรลเลอร์นั้น สามารถทาได้ด้วยกันหลายวิธี ไม่ว่าจะเป็นการแสดงผลผ่านทางหลอดแอลอีดี การแสดงผลผ่านทางเซเวนเซกเมนต์ ผ่านแอลอีดีดอทแมทริกซ์ ซ่ึงการแสดงผลดังที่กล่าวมานน้ั อาจให้ความละเอียดได้ไมส่ ูงนักอีกท้ังมีข้อจากัดต่างๆ ท้ังขนาดของการแสดงผลที่คงท่ี เช่น เซเวนเซกเมนต์ท่ีจะไม่สามารถเพิ่มขนาดของตัวเลขที่แสดงผลได้ แต่ในปัจจุบันเทคโนโลยีการแสดงผลได้พัฒนาไปอย่างมาก ซึ่งอุปกรณ์แสดงผลที่นิยมใช้ในเครื่องใช้อิเล็กทรอนิกส์ ในปัจจุบันน่ันคือ จอ LCD ซ่ึงถูกนาไปใช้อย่างแพร่หลาย เชน่ โทรศพั ท์ หรืออุปกรณ์แสดงผลตา่ งๆ โดยลักษณะของจอแสดงผล LCD ขนาด 2.8” ชนิดTFT (Thin-film transistor) ท่ีนามาใช้ในการทดลองมลี ักษณะดงั เป็น Shield ท่ีสามารถเชื่อมต่อกับอาร์ดุยโนได้โดยตรง ซ่งึ แสดงผลดงั รูปใบงานที่ 13-1 และรปู ใบงานที่ 13-2 หนังสือชดุ ฝกึ ด้านดจิ ิทลั 239

รูปใบงานท่ี 13-1 รายละเอยี ดขาสญั ญาณ I/O ของ TFT Touch Shield รูปใบงานที่ 13-2 รายละเอียดขาสัญญาณ I/O ของ TFT Touch Shield จากรูปใบงานท่ี 13-1 จะเห็นได้ว่าลักษณะภายนอกของจอแสดงผลจะมีลักษณะเป็นจอคล้ายจอแสดงผลบนจอโทรศัพท์ โดยมีขนาด 2.8” โดยมีความละเอียด 240x320 pixel รองรับการแสดงสี 65535สี จึงทาให้มีความยืดหยุ่นในการแสดงผลมากกว่าการใช้อุปกรณ์ท่ัวไป เช่น เซเวนเซกเมนต์ ดอทแมทริกซ์เป็นต้น ซึ่งนอกจากนี้ยังสามารถจัดเก็บและอ่านข้อมูลจาก micro SD card ได้ เน่ืองจากตัว Shield ได้ติดต้ังและเช่ือมต่อช่องสาห รับรองรับ การอ่านไว้เรียบ ร้อยแล้ว ซ่ึงด้านล่างของ Shield จะแสดงได้ดงั รปู ใบงานท่ี 13-2โครงสรา้ งภายในบอร์ด 2.8-inch TFT Touch Shield เป็น Shield ทีมีหน้าจอขนาด 2.8 นิ้วสาหรับต่อกับบอร์ด Arduinoโดยใช้ชิป ILI9341 เป็น LCD driver และติดต่อกับบอร์ด Arduino ผ่านการสื่อสารแบบ SPI ทาให้ประหยัดขาสัญญาณท่ีใช้ในการสื่อสาร นอกจากนี้ยังใช้การส่ือสาร SPI เช่นเดียวกันในการอ่าน microSD card เพ่ือใช้240 หนังสอื ชุดฝึกดา้ นดจิ ทิ ลั

สาหรับเก็บภาพต่างๆ ที่ต้องการแสดงบนจอด้วย รายละเอียดขาสัญญาณ I/O ของ TFT Touch Shieldแสดงดังรูปใบงานที่ 13-3 และตารางใบงานท่ี 13-1 รูปใบงานท่ี 13-3 รายละเอียดขาสัญญาณ I/O ของ TFT Touch Shieldตารางใบงานท่ี 13-1 ชอื่ ขาและรายละเอยี ดของขาขาสัญญาณ รายละเอยี ดTF_CS ดิจทิ ัลอนิ พุตเลอื กการควบคุมการอ่านและเขยี น microSD CardTFT_CS ดิจทิ ัลอินพุตเลอื กการควบคมุ จอ LCDTFT_D/C ดจิ ทิ ลั อนิ พุตเลอื กส่ังงานจอ LCD ให้อย่ใู นในโหมดคาสั่ง หรือโหมดขอ้ มลูBACKLIGHT ดิจิทลั อินพุตเลือก เปิด/ปดิ ไฟ Backlight ของจอ LCDMISO Master Input Slave Output ใช้ในการสอ่ื สารข้อมูลแบบ SPIMOSI Master Output Slave Input ใช้ในการสอ่ื สารข้อมลู แบบ SPISCK Serial Clock ใช้ส่ง(กรณเี ป็น Master) หรอื รบั (กรณีเปน็ Slave) สญั ญาณนาฬิกาในการส่ือสารขอ้ มูลแบบ SPIY- แอนะล็อกเอาต์พตุ สง่ ค่าพิกดั แกน Y จากแผน่ Touch ScreenX- แอนะล็อกเอาต์พุตส่งค่าพิกดั แกน X จากแผน่ Touch ScreenY+ แอนะล็อกเอาต์พุตส่งค่าพิกัดแกน Y จากแผ่น Touch ScreenX+ แอนะล็อกเอาต์พตุ สง่ ค่าพิกดั แกน X จากแผ่น Touch ScreenRESET ดจิ ิทลั อินพุต Reset จอ LCD เพอ่ื เร่มิ ตน้ การแสดงผลจอ LCDการเชื่อมตอ่ เพอื่ ใช้งานการส่อื สาร SPI เบ้ืองตน้ SPI เป็นรูปแบบการเชื่อมต่อแบบอนุกรมซิงโครนัสมีสัญญาณนาฬิกากาหนดจังหวะการทางาน SPI มาจากคาว่า Serial Peripheral Interface เป็นการเช่ือมต่อโดยกาหนดให้มีส่วนควบคุมเป็นตัวหลัก (Master)หน่ึงตัวในการรับส่งข้อมูล และเช่ือมต่อกับอุปกรณ์ตัวรอง (Slave) ได้หลายตัวด้วยการใช้บิตควบคุม สาหรับ หนังสือชุดฝึกดา้ นดจิ ิทลั 241

ไมโครคอนโทรลเลอร์เชื่อมต่อกับอุปกรณ์ต่อพ่วงท่ีมีระยะสายสัญญาณส้ันๆ ลักษณะการเช่ือมต่อแบบ SPIสามารถรับและส่งข้อมูลได้ในเวลาเดียวกัน หรือเรียกว่าเป็นแบบ Full Duplex เน่ืองจากสายส่งและรับสัญญาณแยกจากกัน สายสัญญาณของการเช่ือมตอ่ SPI มี 4 เสน้ ดังต่อไปน้ี  MISO (Master In Slave Out) – สายสาหรบั ส่งข้อมลู จากตัวรองไปยงั ตัวหลัก  MOSI (Master Out Slave In) – สายสาหรบั สง่ ขอ้ มลู จากตวั หลักไปยงั ตัวรอง  SCK (Serial Clock) – สัญญาณนาฬิกาสาหรับควบคุมจงั หวะการรบั สง่ ขอ้ มลู สร้างขนึ้ จากฝัง่ ตัวหลัก  ̅S̅S̅ (Slave Select) – สายสญั ญาณสาหรบั เลอื กอุปกรณต์ วั รองเพือ่ รับสง่ ข้อมูลทางานที่ลอจิก 0 รปู ใบงานที่ 13-4 ลกั ษณะการเชื่อมต่อของอุปกรณผ์ ่าน SPI จากรูปใบงานท่ี 13-4 เป็นการเช่ือมต่อระหว่างอุปกรณ์ 2 ชนิด ตัวหลัก (SPI Master) เป็นไมโครคอนโทรเลอร์สร้างสัญญาณนาฬิกาส่งออกมาทางสายสัญญาณ SCLK เพื่อกาหนดจังหวะการทางานให้กับอุปกรณ์ต่อพ่วง (SPI Slave) โดยถ้าต้องการส่งข้อมูลจากไมโครคอนโทรลเลอร์ไปยังอุปกรณ์ต่อพ่วงจะส่งผ่านทางสาย MOSI ในทางกลับกันไมโครคอนโทรลเลอร์จะรับข้อมูลจากอุปกรณ์ต่อพ่วงทางสาย MISOและใช้สาย ̅S̅S̅ ในการเลือกใช้อุปกรณ์ โดยไมโครคอนโทรลเลอร์ส่งลอจิก 0 ออกมาให้อุปกรณ์ต่อพ่วงรบั ทราบและพรอ้ มติดตอ่ ด้วย รูปใบงานที่ 13-5 ตัวอยา่ งการเช่ือมต่อกับอุปกรณต์ วั รอง (Slave) หลายตวั242 หนงั สอื ชดุ ฝึกด้านดจิ ทิ ลั

จากรูปใบงานท่ี 13-5 เป็นการเช่ือมต่อกับอุปกรณ์ต่อพ่วง 3 ตัว การต่อสายสัญญาณ SCLK, MOSIและ MISO ต่อขนานถึงกันจากอุปกรณ์ตัวหลักไปยังอุปกรณ์ตัวรองทุกตัว ส่วนท่ีแตกต่างคือ แยกต่อสายสัญญาณ ̅S̅S̅ สาหรับเลือกอุปกกรณ์ปลายทางที่จะติดต่อด้วย เม่ืออุปกรณ์ตัวหลักต้องการติดต่อกับอุปกรณ์ตวั รองตวั ใด จะสง่ ลอจิก 0 ไปยังอุปกรณ์ตัวดงั กลา่ วเพียงตวั เดียว ดังนัน้ อปุ กรณ์อ่ืนๆ ที่ไม่เก่ยี วขอ้ งจะไมส่ ่ือสารข้อมูลด้วย วงจรภายใน TFT Touch Shield ชิป ILI9341 ซ่ึงเป็นชิป LCD Controller ได้ใช้ SPI Bus ร่วมกับSD Card โดยใช้ขา TFT_CS และ TF_CS เป็นขา Chip Select เพ่ือระบุว่า Data ใน SPI Bus นั้นเป็น Dataของอุปกรณต์ วั ใด ดงั รูปใบงานท่ี 13-6 รปู ใบงานที่ 13-6 LCD และ SD Card ใช้ SPI Bus รว่ มกันการทดลองยอ่ ยที่ 1 การทดสอบการใช้งาน TFT LCD 2.8” รว่ มกับไลบรารี ในการเขียนโปรแกรม Arduino เพื่อให้ง่ายต่อการใช้งาน TFT Touch Shield เราจาเป็นต้องติดตั้งLibrary ให้กับ Arduino IDE ก่อน ซึ่ง Library สาหรับ TFT Touch Shield จะมีอยู่ด้วยกัน 2 ส่วนคือส่วนสาหรับใช้ในการแสดงผลควบคุมการแสดงผลบนจอ และส่วนที่ใช้สาหรับรับค่าการกด Touch Screenรวมท้งั การ Calibrate หนา้ Touch screen โดยดาเนินการติดตงั้ และทดสอบการใช้งานดังน้ีขนั้ ตอนการทดลอง1.1 เปิดโปรแกรม Arduino IDE1.2 คัดลอกโฟลเดอร์ TFT28_Display_driver_SSV2 และ TFT28_Touch_driver_SSV2 จากแหล่งที่จดั เกบ็ ไว้ ดงั รูปใบงานที่ 13-7 หนังสอื ชุดฝกึ ดา้ นดจิ ิทัล 243

รูปใบงานที่ 13-7 คดั ลอกโฟลเดอร์ไดรเวอร์สาหรับจอ TFT LCD1.3 ไปท่ีไดเรกทอรีของโปรแกรม Arduino/libraries แล้ว Paste โฟลเดอร์ที่คัดลอกมาในข้อท่ี 1.2ดงั รปู ใบงานท่ี 13-8 รูปใบงานท่ี 13-8 วางโฟลเดอรท์ ่ีคัดลอกลงในไดเรกทอรี library244 หนงั สอื ชุดฝกึ ดา้ นดิจิทัล

1.4 ตรวจสอบความถูกต้องโดยหากการคัดลอกสาเร็จและถูกต้อง จะปรากฏโฟลเดอร์เพ่ิมขึ้นสองโฟลเดอร์ดังรปู ใบงานท่ี 13-9 รปู ใบงานท่ี 13-9 ตรวจสอบความถูกตอ้ ง1.5 ตรวจสอบความถูกต้องอีกครง้ั โดยการเปดิ โปรแกรม Arduino IDE แลว้ เข้าไปที่ File > Examples >จะปรากฏชอ่ื ของโฟลเดอรท์ ี่เราไดท้ าการเพิ่มไปในขั้นตอนก่อนหนา้ ดงั รูปใบงานท่ี 13-10 รปู ใบงานที่ 13-10 ตรวจสอบความถูกตอ้ งใน Example หนังสอื ชุดฝกึ ดา้ นดจิ ิทลั 245

1.6 เช่ือมต่อจอ TFT LCD เข้ากับ Arduino โดยเช่ือมต่อขาสัญญาณเข้าด้วยกัน ดังตารางใบงานที่ 13-2 และรปู ใบงานที่ 13-11ตารางใบงานท่ี 13-2 การเชอ่ื มตอ่ ขาสัญญาณระหว่างอารด์ ยุ โน และจอ LCD ขาสัญญาณอาร์ดุยโน (MEGA) ขาสญั ญาณ LCD TFTD4 PIN4 (TF_CS, SD card select input pin)D5 PIN5 (TFT_CS, TFT chip select input pin)D6 PIN6 (TFT_D/C, TFT Data/Cmd control pin)D7 PIN7 (BACKLIGHT, TFT backlight control pin)D50 (MOSI) PIN11 (MISO)D51 (MISO) PIN12 (MOSI)D52 (SCK) PIN13 (SCK)A0 A0 - Touch Screen Y- input pinA1 A1 - Touch Screen X- input pinA2 A2 - Touch Screen Y+ input pinA3 A3 - Touch Screen X+ input pinRST ResetVin 9VGND GND รูปใบงานที่ 13-11 การเชือ่ มต่ออารด์ ุยโนเข้ากับ TFT LCD Shield246 หนังสอื ชดุ ฝึกดา้ นดจิ ิทัล

1.7 เปิดโปรแกรม example เพื่อทดสอบการแสดงผลบนจอ TFT LCD โดยเข้าไปท่ี File > Examples >TFT28_Display_driver_SSV2 > drawCircle ดังรปู ใบงานที่ 13-12 รปู ใบงานที่ 13-12 ทดสอบการแสดงผลจาก Example program1.8 ทดสอบคอมไพลโปรแกรม แล้วอพั โหลดโปรแกรมลงบนอารด์ ยุ โน ดงั รูปใบงานท่ี 13-13 รปู ใบงานที่ 13-13 อพั โหลดโปรแกรมลงบนอาร์ดยุ โน หนังสือชุดฝึกดา้ นดจิ ทิ ัล 247

1.9 ทดสอบคอมไพลโปรแกรมแล้วอพั โหลดโปรแกรมลงบนอาร์ดุยโน ดงั รปู ใบงานท่ี 13-14 รูปใบงานท่ี 13-14 ผลการทางานของโปรแกรม drawCircle โดยจากโปรแกรมจะส่ังงานไปยงั โมดูลจอ TFT LCD และแสดงผลเปน็ วงกลมสวี่ งด้วยกัน ดังรูปใบงานที่ 13-14 โดยแตล่ ะวงกลมเกิดจากคาส่ังแตล่ ะคาสัง่ ดงั น้ี วงกลมท่ี 1 : Tft.drawCircle(100, 200, 40, CYAN); วงกลมที่ 2 : Tft.drawCircle(100, 100, 30, YELLOW); วงกลมท่ี 3 : Tft.fillCircle(200, 200, 30, BLUE); วงกลมท่ี 4 : Tft.fillCircle(200, 100, 30, RED);1.10 จงสงั เกตการทางานข้างตน้ จงบอกความแตกตา่ งระหวา่ งคาสั่ง Tft.drawCircle และ Tft.fillCircle……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………1.11 ทดสอบแก้ไขโปรแกรมโดยทดสอบเปล่ียนค่าพารามิเตอร์ต่างๆ แล้วจงอธิบายค่าพารามิเตอร์ภายในฟังกช์ ั่นให้ถูกตอ้ ง Tft.drawCircle(100, 120, 30,YELLOW); จากฟังก์ชั่น จงอธิบายความหมายของแต่ละพารามิเตอร์ ตัวเลข 100 คอื …………………………… , ตัวเลข 120 คอื …………………………… ตัวเลข 30 คือ …………………………… , ค่า YELLOW คือ …………………………… Tft.fillCircle(50, 90, 10,RED); จากฟังกช์ ั่น จงอธบิ ายความหมายของแตล่ ะพารามเิ ตอร์ ตัวเลข 50 คือ …………………………… , ตวั เลข 90 คือ …………………………… ตวั เลข 10 คือ …………………………… , ค่า RED คอื ………………………………248 หนงั สอื ชดุ ฝึกด้านดจิ ิทัล

1.12 จงเขยี นโปรแกรมให้แสดงผลดังน้ี วงกลมทึบ สีเหลือง ที่ตาแหนง่ x = 120, y = 100, รศั มี 20 pixel วงกลมโปรง่ สแี ดง ทีต่ าแหนง่ x = 100, y = 120, รัศมี 40 pixel…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………การทดลองย่อยที่ 2 การวาดวตั ถุสี่เหลย่ี มบนจอ TFT LCD ร่วมกบั library ในการทดลองย่อยท่ี 1 เป็นการทดสอบการเช่ือมต่อและการใช้งานพ้ืนฐาน ในการวาดวงกลมตามตาแหน่งทร่ี ะบุ ซึง่ นอกจากการวาดวงกลมแลว้ ตัว library ยงั รองรบั การวาดเส้น การวาดสเ่ี หลี่ยมอกี ด้วย โดยในการวาดจะใชค้ าส่ังเพิ่มเติมจากการทดลองที่ 1 ดงั นี้Tft.fillRectangle(x_pos, y_pos, x-width, y-width, color); เปน็ ฟงั ก์ช่ันสาหรับวาดสีเ่ หล่ยี มสที ึบ โดย x_pos คือ ตาแหน่งเร่มิ ต้นทางด้าน x y_pos คือ ตาแหน่งเรม่ิ ต้นทางด้าน y x-width คอื ระยะทางจากจดุ x_pos ไปทางแกน x y-width คือ ระยะทางจากจุด y_pos ไปทางแกน y color คือ สี โดยมีสีให้เลือกใช้งาน 12 สี ประกอบด้วย RED, GREEN, BLUE, DARK_GREEN, BLACK, YELLOW, WHITE, CYAN, PINK, GRAY1, GRAY2, MAGENTA หนงั สอื ชุดฝกึ ดา้ นดิจทิ ัล 249

Tft.fillScreen(x1_pos, x2_pos, y1_pos, y2_pos, color); เปน็ ฟังก์ชัน่ สาหรบั วาดสเ่ี หลย่ี มสีทึบ โดย x1_pos คือ ตาแหนง่ เร่ิมต้นทางดา้ น x y1_pos คอื ตาแหน่งเริม่ ต้นทางดา้ น y x2_pos คอื ตาแหน่งสิน้ สุดทางดา้ น x y2_pos คือ ตาแหน่งสน้ิ สุดทางด้าน y color คอื สี โดยมสี ใี หเ้ ลอื กใช้งาน 12 สี ประกอบดว้ ย RED, GREEN, BLUE, DARK_GREEN, BLACK, YELLOW, WHITE, CYAN, PINK, GRAY1, GRAY2, MAGENTA Tft.drawRectangle(x_pos, y_pos, x-width, y-width, color); เป็นฟงั กช์ น่ั สาหรับวาดเส้นส่เี หลยี่ ม โดย x_pos คอื ตาแหนง่ เรม่ิ ตน้ ทางด้าน x y_pos คอื ตาแหน่งเร่ิมตน้ ทางดา้ น y x-width คอื ระยะทางจากจุด x_pos ไปทางแกน x y-width คือ ระยะทางจากจดุ y_pos ไปทางแกน y color คือ สี โดยมีสีของเส้นให้เลือกใช้งาน 12 สี ประกอบด้วย RED, GREEN, BLUE, DARK_GREEN, BLACK, YELLOW, WHITE, CYAN, PINK, GRAY1, GRAY2, MAGENTAโดยจากคาสั่งข้างต้น จะเห็นว่าตาแหน่ง x และ y ถูกนามาใช้ในทุกๆ ฟังก์ชั่น ซ่ึงตาแหน่งได้ถูกวางบนจอแสดงผลไว้ ดังรปู ใบงานท่ี 13-15 รปู ใบงานที่ 13-15 ตาแหน่งและพิกัด x, y บนจอแสดงผล250 หนงั สอื ชดุ ฝึกดา้ นดิจิทัล

ข้ันตอนการทดลอง2.1 ทดสอบเขียนโปรแกรมบน Arduino IDE ตามโปรแกรมการทดลองที่ 13-1โปรแกรมการทดลองที่ 13-101 #include <stdint.h>02 #include <TFTv2.h>03 #include <SPI.h>0405 void setup()06 {07 TFT_BL_ON; // turn on the background light08 Tft.TFTinit(); // init TFT library09 Tft.fillRectangle(0,0, 100,200,YELLOW);10 Tft.drawRectangle(119,159,50,50,BLUE);11 Tft.fillScreen(0,239,319,300,RED);}1213 void loop()14 {1516 }172.2 Compile แลว้ Upload โปรแกรมลงบน Arduino โปรแกรมจะแสดงผลดังรูปใบงานท่ี 13-16 รปู ใบงานที่ 13-16 การแสดงผลจากโปรแกรมการทดลองท่ี 13-1 หนงั สอื ชดุ ฝกึ ด้านดิจทิ ลั 251

2.3 จากผลการทดลองดังรูปใบงานที่ 13-16 จงระบุฟังก์ช่ันท่ีส่งผลการทางาน ว่าผลการทางานในแต่ละส่วนเกิดจากการระบโุ ปรแกรมในโปรแกรมการทดลองท่ี 13-1 อยา่ งไร สว่ นที่ 1 เกดิ จากฟังก์ชน่ั ……………………………………………………………………………………….. ส่วนท่ี 2 เกิดจากฟงั ก์ชน่ั ……………………………………………………………………………………….. สว่ นท่ี 3 เกิดจากฟงั กช์ ัน่ ………………………………………………………………………………………..2.4 จงเขียนโปรแกรม เพื่อให้แสดงผลเป็นในลักษณะดังรูปใบงานท่ี 13-17 แล้วบันทึกโปรแกรมที่เขียนลงในใบงาน รูปใบงานท่ี 13-17 การแสดงผลจากโปรแกรมการทดลองท่ี 13-1บันทึกโปรแกรม………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………252 หนังสือชุดฝึกด้านดจิ ทิ ัล

…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… หนังสือชุดฝกึ ดา้ นดิจทิ ลั 253

การทดลองยอ่ ยที่ 3 การแสดงตวั อกั ษรบน TFT LCD ร่วมกับ library การเขียนตวั อกั ษรบนจอ TFT LCD สามารถระบไุ ดโ้ ดยใช้คาส่ังเบอื้ งต้น 2 คาสั่งดงั น้ี Tft.setDisplayDirect (direction); เป็นฟังก์ชั่นสาหรบั ควบคมุ ทศิ ทางของตัวอกั ษร โดย direction คือ ทิศทางของการเขยี นขอ้ ความ โดยมสี ี่ทิศทางดงั น้ี - LEFT2RIGHT - UP2DOWN - RIGHT2LEFT - DOWN2UP Tft.drawString(\"string\" , pos-x, pos-y, size, color); เป็นฟังกช์ ่ันสาหรับเขียนข้อความ โดย ขอ้ ความภายใน “…” คอื ขอ้ ความที่ตอ้ งการเขยี นบนจอ TFT LCD Pos-x คือ ตาแหนง่ ทต่ี อ้ งการระบุบนแกน x Pos-y คอื ตาแหนง่ ที่ต้องการระบบุ นแกน y size คือ ขนาดของตวั อกั ษร color คอื สขี องตัวอกั ษรขัน้ ตอนการทดลอง3.1 ทดสอบเขียนโปรแกรมบน Arduino IDE ตามโปรแกรมการทดลองท่ี 13-2โปรแกรมการทดลองท่ี 13-201 #include <stdint.h>02 #include <TFTv2.h>03 #include <SPI.h>04 void setup(){05 TFT_BL_ON; // turn on the background light06 Tft.TFTinit(); // init TFT library0708 Tft.setDisplayDirect(LEFT2RIGHT);09 Tft.drawString(\"Left2Right\",20,20,2,RED);1011 Tft.setDisplayDirect(RIGHT2LEFT);12 Tft.drawString(\"Right2Left\",220,220,2,GREEN);1314 Tft.setDisplayDirect(DOWN2UP);15 Tft.drawString(\"Down2Up\",20,220,2,BLUE);1617 Tft.setDisplayDirect(UP2DOWN);18 Tft.drawString(\"Up2Down\",220,20,2,WHITE);19 }20 void loop()21 { }22254 หนงั สือชดุ ฝึกด้านดจิ ทิ ลั

3.2 คอมไพลและอัพโหลดโปรแกรมแล้วบันทึกผลการทางาน พร้อมบอกคาสั่งที่ส่งผลให้เกิดการแสดงผลในสว่ นตา่ งๆ จากรปู ใบงานที่ 13-18 รปู ใบงานที่ 13-18 การแสดงผลจากโปรแกรมการทดลองท่ี 13-2 ส่วนที่ 1 เกิดจากฟงั กช์ น่ั ……………………………………………………………………………………….. ……………………………………………………………………………………….. ส่วนท่ี 2 เกดิ จากฟังกช์ นั่ ……………………………………………………………………………………….. ……………………………………………………………………………………….. สว่ นท่ี 3 เกิดจากฟังกช์ ั่น ……………………………………………………………………………………….. ……………………………………………………………………………………….. ส่วนท่ี 4 เกดิ จากฟงั กช์ ่นั ……………………………………………………………………………………….. ………………………………………………………………………………………..3.3 จงเขียนโปรแกรมเพ่ือให้แสดงขอ้ ความในลกั ษณะ ดังรูปใบงานที่ 13-18 แล้วบนั ทกึ ผลการเขียนโปรแกรม รปู ใบงานที่ 13-19 การแสดงผลด้วยตัวอกั ษร หนังสอื ชุดฝึกด้านดจิ ทิ ลั 255

บันทึกโปรแกรม……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………..……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………256 หนังสอื ชดุ ฝึกดา้ นดจิ ิทัล

การทดลองย่อยท่ี 4 การรับค่าการสัมผสั จากจอแสดงผล TFT LCD จากการทดลองย่อยที่ 1-3 นั้น เป็นการระบุการแสดงผลเท่าน้ัน แต่ยังไม่ได้มีการใช้งานที่เป็นการรับค่าจากการสัมผัสเพ่ือไปใช้ควบคุมส่วนต่างๆ ในการทดลองนี้จะเป็นการทดลองเพื่อเป็นการรับค่าการสัมผัสแล้วนาไปควบคุมสว่ นอืน่ ๆ นนั่ เอง ในการใช้งานส่วนของการรับค่าการ สัมผัสบนจอแสดงผลน้ีจะใช้ไลบรารีเพิ่มเติมที่ช่ือSeeedTouchScreen.h โดยเมื่อนามา include ในโปรแกรมแล้วก็จะสามารถใช้งานคาสั่งที่เกี่ยวข้องกับการอ่านคา่ จากการสัมผสั ได้ โดยการใชง้ านคาสงั่ getpoint() ซึ่งสามารถศึกษาได้จากโปรแกรมการทดลองที่ 13-3ขัน้ ตอนการทดลอง4.1 ทดสอบเขยี นโปรแกรมบน Arduino IDE ตามโปรแกรมการทดลองที่ 13-3โปรแกรมการทดลองที่ 13-3 01 #include <stdint.h> 02 #include <stdlib.h> 03 #include <TFTv2.h> 04 #include <SPI.h> 05 #include <SeeedTouchScreen.h> 06 /// mega 2560 define pin//// 07 #define YP A2 08 #define XM A1 09 #define YM 54 10 #define XP 57 11 12 #define TS_MINX 116*2 13 #define TS_MAXX 890*2 14 #define TS_MINY 83*2 15 #define TS_MAXY 913*2 16 17 TouchScreen ts = TouchScreen(XP, YP, XM, YM); 18 void setup(){ 19 Serial.begin(9600); 20 TFT_BL_ON; // turn on the background light 21 Tft.TFTinit(); // init TFT library 22 Tft.setDisplayDirect(LEFT2RIGHT); 23 Tft.setDisplayDirect(DOWN2UP); 24 Tft.drawString(\" READ TOUCH VALUE\",40,300,2,YELLOW); 25 } 26 void loop(){ 27 Point p = ts.getPoint(); 28 p.x = map(p.x, TS_MINX, TS_MAXX, 0, 240); 29 p.y = map(p.y, TS_MINY, TS_MAXY, 0, 320); 30 if (p.z > __PRESURE) { 31 Serial.print(\"X = \"); Serial.print(p.x); 32 Serial.print(\"\tY = \"); Serial.print(p.y); 33 Serial.print(\"\tPressure = \"); Serial.println(p.z); 34 Tft.fillCircle(p.x,p.y,2,RED ); // fill circle 35 } 36 } หนงั สอื ชดุ ฝึกด้านดจิ ทิ ัล 257

4.2 คอมไพลและอัพโหลดโปรแกรมแล้วเปิด Serial Monitor เพ่ือทดสอบการอ่านค่าจากการสัมผัส ซึ่งจะแสดงผลเปน็ ลกั ษณะ X, Y และ Pressure ดงั รปู ใบงานท่ี 13-20 รูปใบงานท่ี 13-20 การแสดงค่าพิกดั X, Y และค่าแรงกดบนจอภาพ4.3 ทดสอบกดบริเวณต่างๆ ดงั รปู ใบงานท่ี 13-21 แลว้ บันทกึ ค่าพิกดั โดยประมาณลงในตารางที่ 13-3 รูปใบงานที่ 13-21 การแสดงค่าพิกัด X , Y และค่าแรงกดบนจอภาพตารางใบงานที่ 13-3 บนั ทึกผลการสมั ผัสบนจอท่ีจดุ ต่างๆตาแหนง่ พกิ ัด X พกิ ัด Y 1 2 3 4 5258 หนงั สอื ชดุ ฝกึ ด้านดจิ ทิ ลั

4.4 จากตารางใบงานท่ี 13-3 จงเปรียบเทียบค่าพิกัดแกน X และ Y จากรูปใบงานที่ 13-15 ว่ามีความสัมพันธ์กนั อยา่ งไร………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………4.5 จากตัวอย่างโปรแกรมที่ 13-2 จงสรา้ งปุ่มวงกลมสาหรบั เปดิ และปิดหลอด LED โดยแสดงในลักษณะดังรูปใบงานที่ 13-22 โดยกาหนดใหเ้ ชอื่ มต่อ LED กับ PIN D21 ของอาร์ดยุ โน แลว้ บนั ทกึ โปรแกรมลงในใบงาน รปู ใบงานที่ 13-22 การแสดงคา่ พิกัด X , Y และคา่ แรงกดบนจอภาพบันทกึ โปรแกรม………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… หนังสอื ชุดฝึกดา้ นดจิ ทิ ลั 259

……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………...……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………260 หนงั สอื ชดุ ฝึกดา้ นดจิ ิทัล

การทดลองยอ่ ยที่ 5 การแสดงภาพจาก microSD Card บนจอแสดงผล TFT LCD ในการแสดงผลบางครั้งเราอาจจะต้องการแสดงผลภาพ เช่น ภาพถ่าย หรอื ข้อความอ่นื ๆ ทีไ่ ม่สามารถสร้างขน้ึ ด้วยคาส่งั พ้ืนฐานได้ ซง่ึ ตัว TFT LCD Shield น้กี ็รองรับการแสดงผลภาพจาก microSD Card แสดงตัวอย่างการแสดงผลไดด้ งั รูปใบงานท่ี โดยสามารถใช้งานตามขั้นตอนการทดลองดังนี้ รูปใบงานที่ 13-23 ตวั อย่างการแสดงผลรปู ภาพจากจอ TFT LCD ทม่ี า www.seedstudio.com/wikiขั้นตอนการทดลอง5.1 เตรียมรปู ภาพทีเ่ ป็นไฟล์ .bmp โดยมขี นาด 240x320 pixel แสดงตวั อยา่ งดงั รปู ใบงานที่ 13-24 รปู ใบงานที่ 13-24 ตัวอย่างการแสดงผลรูปภาพจากจอ TFT LCD หนงั สอื ชุดฝึกดา้ นดจิ ทิ ลั 261

5.2 คัดลอกรปู ภาพที่เตรยี มไว้ไปวางไว้ใน microSD Card ดังรูปใบงานที่ 13-25 รูปใบงานท่ี 13-25 ตัวอย่างการแสดงผลรปู ภาพจากจอ TFT LCD5.3 นา microSD Card ที่คัดลอกรูปภาพเรียบร้อยแล้วใส่ไว้บน Shield เพื่อใช้ทดสอบการทางาน โดยแสดงไดด้ ังรปู ใบงานท่ี 13-26 รปู ใบงานท่ี 13-26 การนา microSD Card ใสเ่ ข้ากบั Shield262 หนงั สอื ชดุ ฝึกด้านดจิ ิทลั

5.4 เชื่อมต่อ TFT LCD Shield เข้ากับบอร์ดอาร์ดุยโน ดังรูปใบงานท่ี 13-11 แล้วเปิด example file ที่ชื่อtftbmp2 ดงั รูปใบงานท่ี 13-27 รปู ใบงานท่ี 13-27 โปรแกรมทดสอบการใชง้ าน tftbmp25.5 อัพโหลดโปรแกรมและทดสอบการทางาน โดยสามารถมอนิเตอร์การทางานได้โดยการกดปุ่ม SerialMonitor แล้วบนั ทกึ ผลการทางาน…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………สรุปผลการทดลอง…………………………………………………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………………………….………………………………………………………………………………………………………….……………………………………………………………… หนงั สือชุดฝึกด้านดิจิทลั 263

คาถามท้ายการทดลอง จงเขียนโปรแกรมเพ่ือแสดงผลในลกั ษณะดังภาพ กาหนดให้แสดงข้อความดังภาพ และกาหนดให้เขียนวงกลมสีเขียว เพ่ือรับค่าการกดสวิตซ์เพ่ือ “ON” และวาดวงกลมสีแดง เพ่ือรับค่าการกดสวิตซ์ “OFF” โดยการแสดงผลให้แสดงออกยัง LED1 ซ่ึงออกท่ีขาสัญญาณ PIN21 และด้านล่างให้เขียนช่ือตนเองแล้วส่งให้อาจารยผ์ ู้สอนตรวจสอบบันทึกโปรแกรม…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………264 หนงั สอื ชดุ ฝึกด้านดจิ ทิ ลั

บันทกึ โปรแกรม (ต่อ)………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………...……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… หนังสือชุดฝกึ ด้านดจิ ิทัล 265

บนั ทกึ โปรแกรม (ต่อ)………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………...………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………266 หนงั สอื ชุดฝึกดา้ นดิจทิ ลั


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook