รายวิชา ไมโครโปรเซสเซอร์ในงานอุตสาหกรรม

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
1 C Programming An Introduction. 2 Preprocessing Directives เขียนได้ 2 รูปแบบ #include คอมไพเลอร์จะทำ การค้นหาเฮดเดอร์ไฟล์ที่ระบุ จากไดเร็คทอรีที่ใช้
Advertisements

โครงสร้างโปรแกรมภาษา C
COE : Microcat.
อาจารย์ผู้ร่วมประเมินโครงการ :
เครื่องพันขดลวด Coil Wiering Machine EE โดย นายวรวิทย์ เหล่าพิเชฐกุล นายมาโนชย์ ทองขาว อาจารย์ที่ปรึกษา.
Low-speed UAV Flight Control System
COE เครื่องโหวตอิเล็กทรอนิกส์ไร้สาย wireless electronic voter
COE : ป้ายรถเมล์อัจฉริยะ Smart Bus Stop
รู้จักกับเทคโนโลยี RFID เบื้องต้น
ส่วนประกอบของเครื่อง PC
Data Transmission Encoding Techniques and Transmission mode
Lecture no. 10 Files System
2.3.2 Contrast Stretching Contrast
การทำงานของคอมพิวเตอร์
Register.
การใช้ภาษาซี มาสั่งงานผ่านพอร์ตพริ้นเตอร์
สตริง (String).
การเขียนโปรแกรมภาษาซี
Microprocessor and Interfacing Introduction to Microprocessors II
Basic Stamp Microcontroller
อิเล็กโทรนิกส์.
คำสั่งแบบมีเงื่อนไข Conditional Statements
CONTROLLER 1 Physics for Game Development (951302) College of Arts Media and Technology.
บทที่ 3 การรับ และส่งข้อมูลจากภายนอก และการเขียนโปรแกรม
RC servo motor Voltage Weight Size Output Torque Operating Speed
หน่วยที่ 1 อุปกรณ์อินพุท/เอ้าท์พุทเซนเซอร์และวงจรควบคุม
Arduino.
ADC & UART.
CHAPTER 18 BJT-TRANSISTORS.
NMS remote monitor power supply. การต่อสาย LAN ผ่าน BBU 2G เพื่อทำ Remote monitor จาก OMC - สาย LAN แบบพินตรง “Direct PIN” ต่อจาก BBU 2G – UPEU (Port.
Electrical Properties of Devices RLC. Electrical Properties ( คุณลักษณะทางไฟฟ้า ) Electrical PropertiesResistorCapacitorInductor Impedance (Z)Z R = X.
ปี 2559 โปรแกรมบันทึกและประมวลผล ข้อมูล จปฐ. และข้อมูลพื้นฐาน
ฟังก์ชันในภาษา C. ฟังก์ชัน (Functions) 2 การออกแบบโปรแกรมในภาษาซี จะอยู่บนพื้นฐานของการออกแบบ โมดูล (Module Design) โดยการแบ่ง โปรแกรมออกเป็นงานย่อย ๆ.
ตอนที่ 2 โครงสร้างภาษา C Arduino เบื้องต้น
การสื่อสารข้อมูล.
(Inter-Integrated Circuit)
Overview Task and Concept of Sensor Part TESA TopGun Rally 2010 Quality Inspection for Smart Factory: Bottled Water ดร.ณรงค์เดช กีรติพรานนท์ อ.นุกูล.
แนะนำไมโครคอนโทรเลอร์ ATMEGA 16
เครื่องมือวัดดิจิตอล
Lab# Digital Modulation
ศูนย์การศึกษาและฝึกอบรมโตโยต้า
การประมวลผลแบบวน ( LOOP )
การโปรแกรมและควบคุมไฟฟ้า( )
ระบบห้องสมุดอัตโนมัติ ในประเทศไทย
การเขียนโปรแกรมรับข้อมูลแบบอนาล็อก
SPI.
INC 161 , CPE 100 Computer Programming
เครื่องมือวัดอิเล็กทรอนิกส์
การติดต่อสื่อสารของคอมพิวเตอร์
การปฐมนิเทศนักศึกษาชั้นปีที่ ๔ และสูงกว่า
บทที่ 2 Input & Output Devices
โครงสร้างโปรแกรมภาษา C
การติดต่อสื่อสารของคอมพิวเตอร์
คำอธิบายรายวิชา การเขียนผังงาน รหัสเทียม ตรรกศาสตร์เบื้องต้น การเขียนโปรแกรมคอมพิวเตอร์แบบโครงสร้าง ชนิดตัวแปร ตัวดำเนินการทางตรรกะ ตัวดำเนินการเปรียบเทียบ.
ปัญหาคอมพิวเตอร์ และวิธีการซ่อมบำรุง
ความรู้พื้นฐานการเขียนโปรแกรม
Introduction to Arduino UNO
บทที่ 14 พัลส์เทคนิค
ผู้สอน : อ.บุศรินทร์ เอี่ยมธนากุล [อ.อ้อย]
ตัวอย่างการต่ออุปกรณ์ต่อพ่วงเข้ากับ PIC16F877A
การบัดกรีชิ้นงานอิเล็คทรอนิคส์
การใช้งานอุปกรณ์การเรียนการสอน
Floppy Disk Floppy Disk หรือ Diskkette เป็นอุปกรณ์
การเขียนโปรแกรมคอมพิวเตอร์
หน่วยความจำหลัก (Main Memory)
สาขาวิชาอิเล็กทรอนิกส์
Pulse Width Modulation (PWM)
บทที่ 2 อุปกรณ์รับข้อมูลและอุปกรณ์แสดงผล (Input & Output Devices)
การเขียนแบบและออกแบบด้วยคอมพิวเตอร์
การจำลองวงจรอิเล็กทรอนิกส์
ใบสำเนางานนำเสนอ:

รายวิชา 9560206 ไมโครโปรเซสเซอร์ในงานอุตสาหกรรม รายวิชา 9560206   ไมโครโปรเซสเซอร์ในงานอุตสาหกรรม  อ.โสภณ มหาเจริญ บทที่ 7 การออกแบบวงจรภาคเอาต์พุตและการเขียนโปรแกรม

วัตถุประสงค์ 7.1 เพื่อให้ผู้เรียนเข้าใจขั้นตอนการเชื่อมต่ออุปกรณ์เอาต์พุตกับบอร์ด Arduino 7.2 เพื่อให้ผู้เรียนสามารถพัฒนาโปรแกรมการใช้งานอุปกรณ์เอาต์พุตได้อย่างถูกต้อง 7.3 เพื่อให้ผู้เรียนมีความรู้ความเข้าใจในการใช้งานอุปกรณ์เอาต์พุตรูปแบบต่างๆ

เนื้อหาประจำบท การใช้งานเอาต์พุต LED การใช้งานเอาต์พุต ลำโพง การใช้งานเอาต์พุต รีเลย์ การใช้งานเอาต์พุต ดีซีมอเตอร์ การใช้งานเอาต์พุต เซอร์โวมอเตอร์ การใช้งานเอาต์พุต จอแสดงผล LCD

วัตถุประสงค์เชิงพฤติกรรม ผู้เรียนสามารถพัฒนาโปรแกรมผ่านบอร์ด Arduino เพื่อการควบคุมอุปกรณ์ภาคเอาต์พุตได้

เอาต์พุต

การขับหลอด LED การควบคุมให้ LED กระพริบ รายการอุปกรณ์ หลอด LED: (F9)-(F10) Note: longer wire on F9 ตัวต้านทาน Resistor: (J10) to (any -ve column hole) สายเชื่อมต่อ Wire 1: (J9) to (Arduino Pin 13) สายเชื่อมต่อ Wire 2: (any breadboard -ve column hole) to (Arduino GND) Note: either GND power pin is ok! สายาเชื่อมต่อ Wire 3: (any breadboard +ve column hole) to (Arduino 5V

การขับหลอด LED

การขับหลอด LED int ledPin = 13; void setup() { pinMode(ledPin, OUTPUT); } void loop() { digitalWrite(ledPin, HIGH); delay(1000); digitalWrite(ledPin, LOW); delay(1000); }

การขับหลอด LED

การขับหลอด LED

การขับหลอด LED

การขับหลอด LED

Active Buzzer Module

Active Buzzer Module โมดูล Active Buzzer ใช้ไฟเลี้ยง 3.3 - 5V สามารถสร้างเสียงเตือนได้อย่างง่าย ๆ เพียงแค่จ่ายไฟเข้าไปที่ ขา I/O โมดูลนี้มีทรานซิสเตอร์เบอร์ 9012 ช่วยขยายสัญญาณจึงมีความดังเป็นพิเศษ   คุณสมบัติของอุปกรณ์ module USES 9012 transistor driver working voltage 3.3 V-5 V has fixed bolt hole and easy installation Seven little board PCB size: 3.3 cm * 1.3 cm

ตำแหน่งขาของ Active Buzzer Module ขา Pinout ของตัวโมดูล  (3 wire):     1. GND ต่อกับ GND     2. I/O ต่อกับ Pin digital ของบอร์ด Arduino     3. VCC ต่อกับไฟเลี้ยง 3.3 V-5 V

ต่อวงจรโมดูล Active buzzer กับ Arduino

โค้ดตัวอย่างการใช้โมดูล Active buzzer

โมดูลรีเลย์

โมดูลรีเลย์

โมดูลรีเลย์

โมดูลรีเลย์ รีเลย์ (Relay)                          เป็นอุปกรณ์ที่เปลี่ยนพลังงานไฟฟ้าให้เป็นพลังงานแม่เหล็ก เพื่อใช้ในการดึงดูดหน้าสัมผัสของคอนแทคให้เปลี่ยนสภาวะ โดยการป้อนกระแสไฟฟ้าให้กับขดลวด เพื่อทำการปิดหรือเปิดหน้าสัมผัสคล้ายกับสวิตช์อิเล็กทรอนิกส์ ซึ่งเราสามารถนำรีเลย์ไปประยุกต์ใช้ ในการควบคุมวงจรต่าง ๆ ในงานช่างอิเล็กทรอนิกส์มากมาย

โมดูลรีเลย์ ผู้เรียนสามารถพัฒนาโปรแกรมผ่านบอร์ด Aduino ได้อย่างสมบูรณ์

ส่วนประกอบโมดูลรีเลย์

ส่วนประกอบโมดูลรีเลย์

ตัวอย่างการใช้งานโมดูลรีเลย์ การนำโมดูลรีเลย์เพื่อควบคุมการเปิด/ปิดหลอดไฟ 220V

วงจรควบคุมหลอดไฟด้วยโมดูลรีเลย

ตัวอย่างโปรแกรม int relayPin =  10;    // Relay connected to digital pin 10   void setup()    {                     pinMode(relayPin, OUTPUT);      } void loop()                      {   digitalWrite(relayPin, HIGH);      delay(1000);                     digitalWrite(relayPin, LOW);       delay(1000);                   }

มอเตอร์ดีซี

โมดูลขับมอเตอร์ดีซี โมดูลนี้สามารถขับมอเตอร์ดีซีขนาดเล็ก ได้ 2 ตัว แต่ละตัวสามารถหมุนได้ทั้งสองทิศทางอิสระด้วยสัญญาณควบคุม 4 เส้น

หลักการหมุนของมอเตอร์ดีซี วงจรต่อการใช้งานมอเตอร์ 1 ตัว

หลักการหมุนของมอเตอร์ดีซี วงจรต่อการใช้งานมอเตอร์ 2 ตัว

Arduino ควบคุม DC Motor ด้วย L298

ตัวอย่างการสั่งให้ Motor หมุนกลับไปกลับมา

เซอร์โวมอเตอร์

เซอร์โวมอเตอร์ หมายของ Servo Motor ก็คือ Motor ที่เราสามารถสั่งงานหรือตั้งค่า แล้วตัว Motor จะหมุนไปยังตำแหน่งองศาที่เราสั่งได้เองอย่างถูกต้อง โดยใช้การควบคุมแบบป้อนกลับ (Feedback Control) ในบทความนี้จะกล่าวถึง RC Servo Motor ซึ่งนิยมนำมาใช้ในเครื่องเล่นที่บังคับด้วยคลื่นวิทยุ (RC = Radio - Controlled) เช่น เรือบังคับวิทยุ รถบังคับวิทยุ เฮลิคอปเตอร์บังคับวิทยุ เป็นต้น

ส่วนประกอบภายใน RC SERVO MOTOR 1. MOTOR เป็นส่วนของตัวมอเตอร์ 2. GEAR TRAIN หรือ GEARBOX เป็นชุดเกียร์ทดแรง 3. POSITION SENSOR เป็นเซ็นเซอร์ตรวจจับตำแหน่งเพื่อหาค่าองศาในการหมุน 4. ELECTRONIC CONTROL SYSTEM เป็นส่วนที่ควบคุมและประมวลผล

หลักการทำงานของ RC Servo Motor              เมื่อจ่ายสัญญาณพัลซ์เข้ามายัง RC Servo Motor ส่วนวงจรควบคุม (Electronic Control System) ภายใน Servo จะทำการอ่านและประมวลผลค่าความกว้างของสัญญาณพัลซ์ที่ส่งเข้ามาเพื่อแปลค่าเป็นตำแหน่งองศาที่ต้องการให้ Motor หมุนเคลื่อนที่ไปยังตำแหน่งนั้น แล้วส่งคำสั่งไปทำการควบคุมให้ Motor หมุนไปยังตำแหน่งที่ต้องการ โดยมี Position Sensor เป็นตัวเซ็นเซอร์คอยวัดค่ามุมที่ Motor กำลังหมุน เป็น Feedback กลับมาให้วงจรควบคุมเปรียบเทียบกับค่าอินพุตเพื่อควบคุมให้ได้ตำแหน่งที่ต้องการอย่างถูกต้องแม่นยำ

สัญญาณ RC ในรูปแบบ PWM             ตัว RC SERVO MOTOR ออกแบบมาใช้สำหรับรับคำสั่งจาก REMOTE CONTROL ที่ใช้ควบคุมของเล่นด้วยสัญญาณวิทยุต่างๆ เช่น เครื่องบินบังคับ รถบังบังคับ เรือบังคับ เป็นต้น ซึ่ง REMOTE จำพวกนี้ที่ภาครับจะแปลงความถี่วิทยุออกมาในรูปแบบสัญญาณ PWM (PULSE WIDTH MODULATION)          มุมหรือองศาจะขึ้นอยู่กับความกว้างของสัญญาณพัลซ์ ซึ่งโดยส่วนมากความกว้างของพัลซ์ที่ใช้ใน RC SERVO MOTOR จะอยู่ในช่วง 1-2 ms หรือ 0.5-2.5 ms          

วิธีควบคุม RC Servo Motor ด้วย Arduino             Arduino มีไลบรารี่สำหรับสั่งงาน RC Servo Motor มาให้ใช้งานอยู่แล้วเป็นฟังก์ชั่นสำเร็จรูปและใช้งานได้ง่าย ในหน้าเว็บไซต์ http://arduino.cc/en/reference/servo ได้ให้ข้อมูลไว้ว่า Servo Library ของ Arduino สามารถสั่งงาน RC Servo Motor ได้ทั้งแบบหมุนไป-กลับได้ 0-180 องศา ฟังก์ชั่นภายใน Servo Library - attach() ,- write(), - writeMicroseconds(), - read(), - attached(), - detach()

attach() Description           คือฟังก์ชั่นที่ใช้ในการกำหนดขาสัญญาณที่ Servo Motor ต่อกับ Arduino และกำหนดความกว้างของพัลซ์ที่ 0 องศาและ 180 องศา Syntax           Servo.attach(pin)           Servo.attach(pin,min,max) Parameters           Pin: คือ ขาสัญญาณของ Arduino ที่ใช้เชื่อมต่อกับ Servo Motor           Min: คือ ความกว้างของพัลซ์ที่ 0 องศาของ Servo ตัวที่ใช้ในหน่วยไมโครวินาที (us) โดยปกติแล้วหากไม่มีการตั้งค่าโปรแกรมจะกำหนดค่าไว้ที่ 544 us           Max: คือ ความกว้างของพัลซ์ที่ 180 องศาของ Servo ตัวที่ใช้ในหน่วยไมโครวินาที (us) โดยปกติแล้วหากไม่มีการตั้งค่าโปรแกรมจะกำหนดค่าไว้ที่ 2400 us

Write() Description           คือฟังก์ชั่นที่ใช้ควบคุมตำแหน่งที่ต้องการให้ Servo Motor หมุนไปยังองศาที่กำหนดสามารถกำหนดเป็นค่าองศาได้เลย คือ 0-180 องศา แต่ใน Servo Motor ที่เป็น Full Rotation คำสั่ง write จะเป็นการกำหนดความเร็วในการหมุน โดย           ค่าเท่ากับ 90 คือคำสั่งให้ Servo Motor หยุดหมุน           ค่าเท่ากับ 0 คือการหมุนด้วยความเร็วสูงสุดในทิศทางหนึ่ง           ค่าเท่ากับ 180 คือการหมุนด้วยความเร็วสูงสุดในทิศทางตรงกันข้าม Syntax           servo.write(angle) Parameters           Angle: คือมุมที่ต้องการให้ RC Servo Motor แบบ 0-180 องศาหมุนไป แต่หากเป็น RC Servo Motor แบบ Full Rotation ค่า Angle คือ การกำหนดความเร็วและทิศทางในการหมุน

writeMicroseconds() Description           คือฟังก์ชั่นที่ใช้ควบคุมตำแหน่งที่ให้ Servo Motor หมุนไปยังตำแหน่งองศาที่กำหนดโดยกำหนดเป็นค่าความกว้างของพัลซ์ในหน่วย us ซึ่งปกติแล้ว RC Servo Motor จะใช้ความกว้างของพัลซ์อยู่ที่ 1000-2000 us ตามที่ได้กล่าวไปข้างต้นแล้ว แต่ RC Servo Motor บางรุ่นหรือบางยี่ห้อไม่ได้ใช้ ช่วงความกว้างของพัลซ์ตามที่ได้กล่าวเอาไว้นี้ อาจจะใช้ช่วง 700-2300 แทนก็สามารถใช้ฟังก์ชั่น writeMicroseconds นี้เพื่อกำหนดความกว้างพัลซ์ได้เอง           Syntax           servo.writeMicroseconds(uS) Parameters           uS: คือค่าความกว้างของพัลซ์ที่ต้องการกำหนดในหน่วยไมโครวินาที (โดยตัวแปร int) หมายเหตุ การใช้ฟังก์ชั่น writeMicroseconds สามารถกำหนดค่าได้อิสระ ตรงนี้ ”ต้องระวังในการใช้งาน” หากสั่งงาน RC Servo Motor (แบบ 0 - 180 องศา) จนหมุนไปเกินจุดสิ้นสุดคือเกินทั้งฝั่ง 0 หรือ 180 องศา จะทำให้เกิดเสียงครางดังจากการหมุนไปต่อไม่ได้และมอเตอร์จะกินกระแสสูงขึ้นด้วยในเวลาเดียวกันนั้น ซึ่งอาจทำให้ RC Servo Motor เกิดความเสียหายได้

read() Description           คือฟังก์ชั่นอ่านค่าองศาที่สั่งเข้าไปด้วยฟังก์ชั่น write() เพื่อให้รู้ว่าตำแหน่งองศาสุดท้ายที่เราสั่งเข้าไปนั้นมีค่าเท่าไหร่ซึ่งค่าที่อ่านออกมานั้นจะมีค่าอยู่ในช่วง 0 - 180 Syntax           servo.read() Parameters           ไม่มี: จะ Return ค่า 0-180

attached() , detac() attached() Description            คือฟังก์ชั่นตรวจสอบว่า Servo ที่เราต้องการใช้กำลังต่ออยู่กับขสัญญาณของ Arduino หรือไม่ Syntax            servo.attached() Parameters            ไม่มี: จะ Return ค่า True ออกมา หาก Servo Motor เชื่อมต่ออยู่กับ Arduino แต่ถ้าหาก Return ออกมาเป็นค่าอื่นถือว่าไม่เชื่อมต่อ detach() Description            คือฟังก์ชั่นคืนสถานะของขาที่เรากำหนดให้เป็นขาควบคุม Servo Motor ด้วยคำสั่ง attached() ให้กลับคือสู่การใช่งานปกติ Syntax            servo.detach() Parameters            ไม่มี

วงจรการต่อเซอร์โวเข้ากับบอร์ด Arduino

โค้ดตัวอย่างการควบคุมตำแหน่ง Rc Servo Motor

กำหนดให้เซอร์โวหมุนตำแหน่ง 0 องศา ผลลัพธ์

กำหนดให้เซอร์โวหมุนตำแหน่ง 90 องศา ผลลัพธ์

กำหนดให้เซอร์โวหมุนตำแหน่ง 180 องศา ผลลัพธ์ myservo.write(180); delay(1000);

โค้ดตัวอย่างการควบคุมตำแหน่ง เซอร์โยแบบ Sweep

การใช้งาน Character LCD Display

การใช้งาน Character LCD Display จอ LCD 16x2 Character ที่นิยมวางจำหน่ายจะมีอยู่ 2 แบบด้วยกันคือ LCD แบบปกติที่เชื่อมต่อแบบขนาน (Parallel) และ LCD แบบที่เชื่อมต่ออนุกรม (Serial) แบบ I2C โดยทั้ง 2 แบบตัวจอมีลักษณะเดียวกันเพียงแต่แบบ I2C จะมีบอร์ดเสริมทำให้สื่อสารแบบ I2C ได้เชื่อมต่อได้สะดวกขึ้น

การใช้งาน Character LCD Display LCD ที่มีการเชื่อมแบบ I2C นั้นเรียกอีกอย่างว่าการเชื่อมต่อแบบ Serial จะเป็นจอ LCD ธรรมดาทั่วไปที่มาพร้อมกับบอร์ด I2C Bus ที่ทำให้การใช้งานได้สะดวกยิ่งขึ้นและยังมาพร้อมกับ VR สำหรับปรับความเข้มของจอ ในรูปแบบ I2C จะใช้ขาในการเชื่อมต่อกับ Microcontroller เพียง 4 ขา (แบบ Parallel ใช้ 16 ขา) ซึ่งทำให้ใช้งานได้ง่ายและสะดวกมากยิ่งขึ้น สามารถดูได้จากตารางต่อไปนี้

ตำแหน่งขาของแอลซีดี (LCD) I2C รูปที่ 4 ด้านหลังจอ LCD 16X2 (I2C) ตารางที่ 2 ตารางขาของจอ LCD 16X2 แบบ I2C ตำแหน่งขาของแอลซีดี (LCD) I2C

การควบคุมการแสดงผลของจอ LCD (I2C)            ในการควบคุมหรือสั่งงาน โดยทั่วไปจอ LCD จะมีส่วนควบคุม (Controller) อยู่ในตัวแล้ว ผู้ใช้สามารถส่งรหัสคำสั่งสำหรับควบคุมการทำงานของจอ LCD (I2C) เช่นเดียวกันกับจอ LCD แบบธรรมดา พูดง่ายๆ คือรหัสคำสั่งที่ใช้ในการควบคุมนั้นเหมือนกัน แต่ต่างกันตรงที่รูปแบบในการรับส่งข้อมูล ในบทความนี้เราจะมาพูดถึงจอ LCD 16x2 ที่มีการส่งข้อมูลรูปแบบ I2C ที่ใช้ขาเพียง 4 ขาที่ใช้ในการเชื่อมต่อเท่านั้น            1. GND เป็น Ground ใช้ต่อระหว่าง Ground ของระบบ Microcontroller กับ LCD            2. VCC เป็นไฟเลี้ยงวงจรที่ป้อนให้กับ LCD มีขนาด +5VDC            3. SDA (Serial Data) เป็นขาที่ใช้ในการรับส่งข้อมูล            4. SCL (Serial Clock) เป็นขาสัญญาณนาฬิกาในการรับส่งข้อมูล

การเชื่อมต่อระหว่าง Arduino กับจอ LCD (I2C)

ชุดคำสั่งที่ใช้ในการสั่งงานระหว่าง Arduino กับจอ LCD            คำสั่งที่ใช้ในการควบคุมจอ LCD ของ Arduino แบบ I2C นั้นไม่ต่างจากจอ LCD แบบธรรมดา (Parallel) มากนัก ทั้งนี้ยังได้มีการพัฒนา Library I2C มาให้ใช้งานได้อย่างสะดวกมากยิ่งขึ้น เรามาเริ่มต้นขั้นตอนแรกในการเขียนโปรแกรมกันเลยครับ ขั้นตอนแรกคือการนำไฟล์ Library LCD (I2C) ไปไว้ใน Library ของ Arduino ก่อนเพื่อให้ง่ายต่อการเรียกใช้ Library ผู้ใช้สามารถทำตามขั้นตอนด้านล่างได้เลยครับ            1. Download Library LCD (I2C) ก่อนครับ >> (ไฟล์ LiquidCrystal_I2C.7z)            2. ทำการแยกไฟล์ที่โหลดมาข้างต้น แล้วนำไปไว้ยัง  C:\Program Files (x86)\Arduino\libraries (Drive ที่ได้ทำการติดตั้งโปรแกรม Arduino IDE ไว้)

ชุดคำสั่งที่ใช้ในการสั่งงานระหว่าง Arduino กับจอ LCD

ชุดคำสั่งที่ใช้ในการสั่งงานระหว่าง Arduino กับจอ LCD หลังจากที่เรานำไฟล์ Library ไปไว้เรียบร้อยแล้ว เราก็มาเริ่มการเขียนโปรแกรมกันเลยครับ ก่อนอื่นให้เราเรียก Library ของการสื่อสารแบบ I2C และ Library ของจอ LCD (I2C) ก่อนเลยครับ คือ Wire.h และ LiquidCrystal_I2C.h หลังจากทำการเรียก Library เรียบร้อยแล้ว เราจะมาดูกันว่ามีฟังก์ชั่นเบื้องต้นอะไรบ้างที่จะทำให้จอ LCD ของเราแสดงผล            ฟังก์ชั่นแรก LiquidCrystal_I2C(); ใช้ในการประกาศ Address และ ขนาดของจอ รูปแบบของคำสั่งคือ LiquidCrystal_I2C lcd(Address, columns, rows); ในบทความนี้เราจะกำหนดดังนี้ LiquidCrystal_I2C lcd(0x27, 16, 2); หมายถึง Address ของจอคือ 27 ขนาดของจอคือ 16 ตัวอักษร 2 บรรทัด            ฟังก์ชั่นต่อมา begin(); ใช้ในการกำหนดการเริ่มต้นในการใช้งานจอ            ฟังก์ชั่นต่อมา setCursor(); ใช้ในการกำหนดตำแหน่งของ Cursor เช่น lcd.setCursor(0, 1); คือให้เคอร์เซอร์ไปที่ ตำแหน่งที่ 0 บรรทัดที่ 1 (การนับตำแหน่งเริ่มจาก 0)            ฟังก์ชั่น print(); ใช้ในการกำหนดข้อความที่ต้องการแสดง เช่น lcd.print(“Hello world"); คือกำหนดให้แสดงข้อความ “Hello word” ออกทางหน้าจอ LCD

ตัวอย่างโค้ดโปรแกรม

สรุปประจำบท การเชื่อมต่อและการพัฒนาอุปกรณ์เอาต์พุตด้านไมโครคอนโทรลเลอร์ จุดประสงค์เพื่อการแสดงผล ที่มีรูปแบบที่หลากหลายตั้งแต่การแสดงผลแบบง่ายๆ โดยใช้หลอด LED ลำโพง ไปจนถึง จอแสดงผล หรือการควบคุมการหมุนของมอเตอร์ต่างๆ ผู้พัฒนาโปรแกรมมีความจำเป็นที่จะต้องเข้าใจหลักการทำงานของอุปกรณ์เอาต์พุตต่างๆ เหล่านั้นให้ชัดเจนเสียก่อน

แบบฝึกหัด วงจรส่งเสียงดนตรีโน้ต โด เร มี ฟา ซอน รา ซี ออกสู่ลำโพง จงต่อวงจรมอเตอร์ ดีซี ขนาดแรงดัน 24 V จำนวน 2 ตัว พร้อมเขียนโปรแกรมให้หมุนทั้งสองทิศทาง จงต่อวงจร LED 4 ดวงกระพริบ ทุก 1 วินาที สลับเรียงกัน 4 ดวง วงจรส่งเสียงดนตรีโน้ต โด เร มี ฟา ซอน รา ซี ออกสู่ลำโพง วงจรรับค่าทางสวิตช์ 1 ตัว เมื่อกดแล้ว หลอด LED ติด พร้อมเสียงบีบดัง 1 ครั้ง