Professional Documents
Culture Documents
Analogue Output
1
Lecture 6
Rf Val
Vout Vref N
R 2
ตัวอย่างเช่น จากรูป N=4 Vref = 3.3 V ถ้ าเลขฐานสอง input คือ 00112 =310
10k 3
Vout 3.3 4
10k 2
= 0.61875 V
2
Lecture 6
5k 1 1 1 1 1 1 1 1 1
V 2 8 7 6 5 4 3 2 1 0
out 1k2 2 2 2 2 2 2 2 2
5k 255
V 2 9.961V
out 1k 256
3
Lecture 6
2. Full-scale Output Voltage บอกถึงค่าแรงดัน Output มากที่สดุ ที่จะได้ จาก D/A นันๆ ้ จาก
ตัวอย่างวงจรข้ างต้ น แรงดันอ้ างอิงป้อนผ่าน R14 จะได้ Output Voltage ที่เป็ นไปตามสมการ ซึง่
เมื่อป้อนข้ อมูลที่เป็ น ‚1‛ ทุกบิตให้ กบั D/A ก็จะทาให้ ได้ แรงดันที่ Output เป็ น 10V x (255/256)
= 9.961 V
สังเกตได้ วา่ แรงดัน Output สูงสุดที่ได้ จาก D/A จะน้ อยกว่าค่าที่ระบุมา อยู่ 1 LSB เสมอ แต่
อย่างไรก็ตามเราก็ยงั เรี ยกมันว่าเป็ น 10 V Output
3. Input Code สามารถมีได้ หลายชนิดเช่น Binary, BCD, Offset Binary ซึง่ ในการใช้ งาน ต้ องส่ง
ข้ อมูลไปให้ กบั D/A ให้ ถกู ต้ อง
4. Accuracy คือค่าความถูกต้ องของแรงดัน Output ที่ได้ ออกมาจริง เปรี ยบเทียบกับค่าแรงดัน
Output ที่ควรจะได้ ตามทฤษฎี โดยบอกเป็ นเปอร์ เซ็นต์ ของ Full-scale Output เช่น D/A Full-
scale Output 10V +/- 0.2% accuracy ก็จะหมายถึงว่ามันผิดพลาดอยูใ่ นช่วง 10.00 x 0.002 =
20 mV
โดยทัว่ ไปแล้ ว ค่าความผิดพลาดของ D/A ก็จะมีคา่ ไม่เกิน +/- ½ LSB
5. Linearity หมายถึงค่าความผิดพลาดของ Output Voltage ที่วดั ได้ เทียบกับแนวเส้ นตรงที่ได้ เมื่อ
แปรค่าของข้ อมูลจากน้ อยไปมาก ซึง่ มีคา่ ประมาณ +/- ½ LSB
6. Settling Time คือระยะเวลาที่ D/A ใช้ ในการทาให้ Output Voltage มีคา่ เท่ากับข้ อมูลที่ป้อนเข้ า
ไป โดยให้ มีความผิดพลาดได้ +/- ½ LSB
ตัวอย่างของการใช้ งาน D/A เช่น ใช้ ในการแปลงข้ อมูล Digital ที่ได้ จากแผ่น CD ให้ ออกเป็ นสัญญาณเสียง
เพลงตามต้ องการ และสาหรับการใช้ งานกับ Microcomputers ก็เช่นการสร้ างเป็ นเครื่ องสาหรับทาการ
ทดสอบอุปกรณ์ โดยใช้ ความสัมพันธ์ ระหว่าง Voltage ที่ป้อนเข้ าไป กับแรงดัน Output ที่ได้ จากอุปกรณ์
นันๆ
้
นอกจากนี ้ ก็สามารถนาไปใช้ ในการ ควบคุมความเร็วของ DC Motor, ควบคุมความร้ อนของ Heater หรื อ
ความสว่างของหลอดไฟ
Digital Output
Digital output โดยปกติแล้ วคือการส่งข้ อมูลออกจาก Port โดยใน MCS-51 คือ Port 0-3 โดยมีสิ่งที่ต้อง
คานึงถึงเช่น
เมื่อดูข้อมูลจาก Datasheet ของ Microcontroller P89V51RD2 พบว่า
VOL (Low-level output voltage หรื อ Logic 0) ที่ port 0 มีคา่ สูงสุด 0.45 V และ port อื่นๆ มีคา่ สูงสุด
ประมาณ 1V ขึ ้นอยู่กบั ปริมาณกระแสที่ตวั อุปกรณ์ output ใช้ ถ้ าอุปกรณ์ใช้ ปริมาณกระแสน้ อยลง ค่า
Voltage สูงสุดของ Logic 0 ก็จะลดลงด้ วย
4
Lecture 6
VOH (High-level output voltage หรื อ Logic 1) ที่ port 0 มีคา่ ต่าสุด VDD- 0.7 V และ port อื่นๆ มีคา่
ต่าสุดประมาณ VDD- 1.5 V ขึ ้นอยู่กบั ปริมาณกระแสที่ไมโครคอนโทรลเลอร์ ตวั จ่ายให้ อปุ กรณ์ output ถ้ า
ปริมาณกระแสที่ไมโครคอนโทรลเลอร์ ตวั จ่ายให้ อปุ กรณ์ output น้ อยลง ค่า Voltage ต่าสุดของ Logic 1 ก็
จะเพิ่มขึ ้น แสดงว่าในการใช้ Microcontroller ควมคุมอุปกรณ์ตา่ งๆ ในแบบที่ทาให้ อปุ กรณ์ output
ทางานในแบบ digital เพื่อ ON/OFF อุปกรณ์ ต้ องเลือกใช้ อุปกรณ์ output ที่ต้องการระดับของ Voltage
ให้ เป็ น Logic 0 หรื อ Logic 1 ตามที่ระบุใน Datasheet ด้ วย
นอกจากนัน้ IOL (Low-level output current หรื อ Logic 0) ที่ขา 1.5 1.6 และ 1.7 มีคา่ สูงสุด 20mA และ
port อื่นๆ มีคา่ สูงสุดประมาณ 15 mA โดยไม่เกิน 26 mA ต่อPort และไม่เกิน 71 mA เมื่อใช้ ทกุ Port พร้ อม
กัน
ในไมโครคอนโทรลเลอร์ บางตัว เช่น AVR ต้ องมีการกาหนดว่า port จะทาหน้ าที่เป็ น input หรื อ output
โดยการกาหนดค่าใน DDR ลาดับการเขียนโปรแกรมเพื่อใช้ งาน port เป็ น output ควรจะเป็ นการส่งค่า
ออกไปที่ port ก่อนเพื่อให้ แน่ใจว่าจะมีคา่ ที่ถกู ต้ องส่งออกไป แล้ วจึงกาหนดค่าใน DDR เพื่อให้ port
เป็ น output
5
Lecture 6
6
Lecture 6
7
Lecture 6
8
Lecture 6
ในกรณีที่ต้องการใช้ Buffer ช่วยขับ Output สิ่งที่ต้องดูคือ VOH, VOL, IOH, IOL และควรคานึงถึง IOS ถ้ า
จะต้ องมีการใช้ งานในลักษณะที่จะมีการ Short circuit ที่ Output นอกจากนัน้ จะต้ องดูวา่ Buffer นี ้
ต้ องการ Supply current เท่าไรโดยดูจาก ICC ในกรณีที่ต้องการนาไปใช้ กบั สัญญาณคลื่นหรื ออุปกรณ์ที่
ต้ องการความเร็วสูงจะต้ องดู AC Characteristics เพื่อดูวา่ Buffer นี ้สามารถใช้ กบั สัญญาณในช่วงความถี่
นันหรื
้ อทางานด้ วยความเร็วที่ต้องการได้ หรื อไม่
Va R
Anode
+
IF
VF
-
LED LED
Cathode
Vb
รูปที่ xx3 แสดงสัญญลักษณ์ของ LED และ วงจรพื ้นฐานในการใช้ งาน LED มีลกั ษณะเหมือน Diode
ทัว่ ไปคือมี Forward voltage VF และ Forward current IF ถ้ า Voltage ตกคร่อมระหว่าง anode กับ
cathode มากกว่า VF LED จะเปล่งแสงออกมา
ตัวอย่ าง การต่อ LED สีแดงขนาด 5 mm. ที่ port ของ Microcontroller P89V51RD2
รู ปที่ 4
9
Lecture 6
10
Lecture 6
+
IOH
1.8
-
LED
รู ปที่ 5
VOH = R·IOH+VLED
จากตารางใน datasheet ของตัวไมโครคอนโทรลเลอร์
เมื่อ IOH=-10A, VOH= VDD-0.3
เมื่อ IOH=-60A, VOH= VDD-1.5
จากข้ อมูลของ LED
ILED=15mA
ไม่สามารถต่อ LED ให้ ติดที่ลอจิก 1 ในลักษณะนี ้ได้
แต่สามารถทาได้ เมื่อใช้ Buffer ดังรูป
Port x.x VOH
R
74LS541
IIH
+
IOH 1.8
-
LED
รู ปที่ 6
VOH = R·IOH+VLED
R =( VOH - VLED)/IOH
11
Lecture 6
V+
+
VF=1.8
-
LED
VOL
Port x.x
R
IOL
รู ปที่ 7
Port 1.5, 1.6 และ 1.7
จาก Datasheet ที่ Test conditions VDD = 4.5V, IOL= 16 mA มีคา่ VOL= 1V และ Maximum IOL= 20 mA
แสดงว่าสามารถนา LED มาต่อใช้ งานในลักษณะนี ้ได้
V(+)-VOL = VR+VF(LED)
4.5 - 1 = ILED*R + 1.8
จากข้ อมูลของ LED ต้ องการ ILED=15mA
R= [4.5-1-1.8]/ 15mA
=113.33 113
Port อื่นๆ
จาก Datasheet ที่ Test conditions VDD = 4.5V, IOL= 3.5 mA มีคา่ VOL= 1 V และ Maximum IOL= 15
mA แสดงว่าสามารถนา LED มาต่อใช้ งานในลักษณะนี ้ได้ แต่ VOL จะมีคา่ มากกว่า 1V มาก
IOL= 15 mA, VOL>> 1
V(+)-VOL = VR+ VF(LED)
12
Lecture 6
ส่วนการต่อ LED ให้ ตดิ พร้ อมกัน 8 ดวง บน port เดียวกันนัน้ เมื่อดู จากตารางพบว่า Maximum IOL per
8-bit port = 26 mA. ดังนัน้ แสดงว่าไม่สามารถทาได้ เพราะแต่ละตัวต้ องการ 15 mA ถ้ าติดพร้ อมกัน 8
ดวง จะต้ องใช้ ถึง 120 mA และการต่อ LED นี ้ทุก port ก็ไม่สามารถทาได้ เช่นเดียวกันเพราะ Maximum IOL
total for outputs = 71 mA. เท่านัน้ บางกรณีจงึ ต้ องใช้ ตอ่ วงจรเสริมเพื่อช่วยจ่ายกระแสให้ อปุ กรณ์ เช่น
Buffer ที่เหมาะสม (74LS541 ที่กล่าวถึงก่อนหน้ านี ้ก็ไม่สามารถใช้ ได้ เช่นกัน) หรื อวงจรขยายทรานซิสเตอร์
เป็ นต้ น
13
Lecture 6
Opto-isolator
A B
รู ปที่ xx การใช้ งาน Opto-Isolator
14
Lecture 6
จากรูป B
ทางด้ าน Input
จาก Datasheet ของ PC817 ค่า VF(D) = 1.2 V, IF(D) = 20mA, VCE(sat) = 0.2 V, IC(MAX) = 50 mA
VOH - 0 = VR1+VF(D)
VOH = IF(D)R1+VF(D)
VR1 = IF(D)R1 หรื อ IOHR1แต่ในกรณีของไมโครคอนโทรลเลอร์ P89V51RD2 ในตัวอย่างที่ผา่ นมา IOH มีคา่
น้ อยกว่า IF(D) = 20mA ที่ VF(D) = 1.2 – 1.4V มาก ทาให้ ไม่สามารถต่อวงจรใช้ งานในลักษณะนี ้ได้ ต้ องมี
การต่อใช้ งาน Buffer ร่วมด้ วย
ทางด้ าน Output
สมมุตวิ า่ ต้ องการให้ มีกระแสไหลสูงสุด
12V - 0= IC(MAX)R2+ VCE(sat)
12V - 0= 50mA(R2)+ 0.1V
R2 = 238 Ω
จากรูป A
จากตารางใน Datasheet IF(D) = 20mA และจะทาให้ VF(D) = 1.2 – 1.4V แต่ขณะใช้ งานตามตัวอย่างนี ้ IF(D)
จะมีคา่ เท่ากับ IOL จากไมโครคอนโทรลเลอร์ IOL = 16mA ซึง่ ต่ากว่า IF(D) ในตาราง ทาให้ ไม่สามารถใช้ คา่
VF(D) จากตารางได้ แต่เมื่อดูจาก กราฟ Forward Current vs. Forward Voltage จะเห็นได้ วา่ เมื่อ IF(D) =
IOL =16mA , VF(D) = 1.25 V
5V - VOL(Micro) = IF(D)R1+VF(D)
5V – 1V=16mA* R1 + 1.25V
15
Lecture 6
R1 = 171.8 Ω
ส่วนทางด้ าน output
สมมุตวิ า่ ต้ องการให้ มีกระแสไหลสูงสุด
12V - 0= IC(MAX)R2+ VCE(sat)
12V - 0= 50mA(R2)+ 0.1V
R2 = 238 Ω
+5 V +12 V
To Output
รู ปที่ 10
ตัวอย่ าง จากรูป ใช้ Opto Isolator เบอร์ PC817 ใช้ D2 เป็ น zener Diode 3.3 V, D1 เป็ น LED ในรูปที่ 4
และ Q1 เป็ น transistor 2SC1815Y ซึง่ มีคณุ สมบัตดิ งั ตารางข้ างล่างนี ้
16
Lecture 6
จาก Datasheet ของ PC817 ค่า VCE(sat)(Photo) = 0.2 V, VF(D1) = 1.2 V ที่ IF(D1) = 20mA
5V- 0 = VR1+ VF(D1) + VCE(Q1) + VRs
5V = IC(Q1)R1+ VF(D1) +VCE(Q1) + VRs
D1 จะทำงำนเมื ่อ VRs < VD2 เพราะฉะนัน้ VRs ≤ 3.3 V และเมื่อทางาน VCE(Q1) = VCE(sat)(Q1) = 0.1V ,
IC(Q1) = IF(D1) = 20mA
5 = 20mA*R1+ 1.2+0.1+3.3
จะได้ คา่ R1 > 20 Ω
Rs ≤165 Ω
ส่วนทางด้ าน output
12V-0 = ICE(Photo) R2+VCE(sat) (Photo)
12V = 50mA(R2)+ 0.2V
R2 = 236 Ω
17
Lecture 6
Vo(Op-Amp) - 0=VR4+VBE(sat)(Q1)+VRs
Vo(Op-Amp) = IB(Q1)R4+ VBE(sat)(Q1)+VRs
18
Lecture 6
19
Lecture 6
Driving MOSFET
20
Lecture 6
AC Power Device
เมื่อต้ องการใช้ Microcomputer ในการควบคุม AC Power Device ก็จะทาได้ โดยการใช้ Relay หรื อใช้
Solid-state Relay ได้ เช่นกัน
Solenoid
21
Lecture 6
2. Directional Valves เป็ น Valve ควบคุมการเปิ ดปิ ดที่ใช้ ขดลวดเหนี่ยวนาให้ เกิดแรงแม่เหล็ก เมื่อขดลวด
ได้ รับการกระตุ้นแกนจะถูกดึงเข้ าไปในขดลวด Solenoid ใช้ เพื่อหยุดและควบคุมทิศทางการไหล
รู ปที่ 14
Relay
วิธีการป้องกันคือต่อ Diode คร่อมขดลวดดังรูปที่ 15 B เมื่อ transistor turns off ทันทีที่ voltage เพิ่มขึ ้นถึง
ระดับของแหล่งจ่ายบวกกับแรงดันตกคร่อม diode (ประมาณ 0.6 V สาหรับ silicon diode) diode จะเริ่ม
นากระแสทันที ทาให้ กระแสไม่ไหลผ่านตัววงจรขับ relay แต่จะไหลผ่าน diode แทน
รูปที่ 16 แสดงการใช้ zener diode เพื่อทาให้ การ turn off ของ relay เร็วขึ ้น เมื่อ transistor turns off และ
เกิด flyback pulse ตัว diode ธรรมดาจะ forward biased และ zener จะ reverse biased ทาให้ ขา
voltage ที่ collector ของ transistor มีขนาดเท่ากับ voltage คร่อม zener บวกกับ voltage คร่อม diode
22
Lecture 6
drop และระดับของ positive supply voltage ซึง่ รวมแล้ วควรจะมีคา่ ต่ากว่าระดับ voltage ที่ transistor
ทนได้ ไม่เช่นนัน้ transistor จะเสียหายได้
ในบางกรณี อาจมีการใช้ อปุ กรณ์ surge suppressor ชนิดอื่น เพื่อต่อคร่อม relay หรื อ solenoid เช่น
Sidactor (สาหรับ 24 V ขึ ้นไปถึงระดับฟ้าผ่า), transient voltage suppression (TVS) diode หรื อ
Tranzorbs (สามารถทน voltage ในระดับที่ต่ากว่า Sidactor) และ positive-temperature-coefficient
resistor (PTC) ซึง่ จากัดกระแสโดยการเพิ่มความต้ านทานของตัวเองเมื่อมีกระแสไหลผ่านมากขึ ้น.
Tranzorb เป็ นอุปกรณ์คล้ าย zener แต่กระแสสามารถไหลผ่านได้ สองทางโดยที่มี voltage ตกคร่อมคงที่
จึงไม่จาเป็ นต้ องต่อร่วมกับ diode
23
Lecture 6
รู ปที่ 16 การใช้ zener diode เข้ าช่วยเพื่อให้ การ turn off ของ relay เร็วขึ ้น
Pick/Hold
ในการขับ relay กระแสที่ใช้ ต้องมีขนาดสูงพอที่จะทาให้ เกิดสนามแม่เหล็กที่แรงพอที่จะดึงหน้ าสัมผัสของ
relay ไว้ ได้ อย่างไรก็ตาม กระแสในขณะที่ใช้ ยดึ หน้ าสัมผัส (hold) ไว้ จะมีคา่ น้ อยกว่ากระแสที่ใช้ ดงึ
หน้ าสัมผัส (pick) ในตอนแรกประมาณ 50% เพราะฉะนัน้ จึงสามรถใช้ พลังงานจากแหล่งจ่ายต่าลง
ในขณะ hold ได้ และการที่ใช้ กระแสน้ อยลงในการ hold ยังทาให้ การปล่อยหน้ าสัมผัสเกิดได้ เร็วขึ ้นอีก
ด้ วยเพราะมีพลังงานสะสมอยูใ่ นขดลวดน้ อยกว่า
รูปที่ 17B แสดงวงจร pick/hold อีกแบบหนึง่ วงจรนี ้ต้ องใช้ 2 outputs จาก microprocessor ในการ
ควบคุม Input 2 เป็ นตัวที่จะถูกขับเป็ น high เพื่อการ pick และหลังจาก delay (เป็ น software) Input 1
จะถูกขับเป็ น high และ Input 2 เป็ น low วงจรนี ้ไม่ต้องใช้ capacitor แต่ยงั ใช้ resistor และสอง outputs
จาก microprocessor ร่วมกับโปรแกรม
รูปที่ 17C แสดงการควบคุม relay โดยการปรับกระแสด้ วยวงจร PWM หลังจากที่ ON input เป็ น high
เพื่อที่จะดึงหน้ าสัมผัส relay เข้ าแล้ ว HOLD จะเป็ น high หลังจากนันเล็
้ กน้ อยด้ วยการควบคุมโดย
24
Lecture 6
รูปที่ 17D แสดงวงจรอีกแบบหนึง่ ซึง่ ใช้ วงจร PWM เช่นกัน การดึง relay เข้ ามาจะต้ องโปรแกรมให้ รูปคลื่น
มี duty cycle 90% หรื อ 100 % เพื่อการ pick และหลังจากนันจึ ้ งใช้ duty cycle เป็ น 50% หรื ออื่นๆ
เพื่อลดระดับกระแสลงมา
รูปที่ 17E แสดงวงจรซึง่ ใช้ 2 PNP transistors ต่อจาก 2 power supplies โดยขณะ Input 1จะเป็ น high
และ transistor Q2 จะ on ทาให้ V2 ต่อเข้ ากับ coil หลังจากนัน้ Input 2 จะเป็ น high และ Input 1 จะเป็ น
low V2 มีคา่ สูงกว่า V1 .
สิ่งที่ต้องพิจารณามีหลายอย่างโดยหนึง่ ในนันคื
้ อ พิกดั กระแสที่หน้ าสัมผัส (Contact Max. Switching
current) กาลังไฟฟ้าสูงสุดที่ใช้ งานได้ (Contact Max. Switching Power) ซึง่ มีทงั ้ AC และ DC แต่คา่ พิกดั
แรงดันจะไม่เท่ากัน แรงดันไฟฟ้าสูงสุดที่ใช้ งานได้ ที่คอล์ย (Coil Max. Allowable Voltage) และอีกส่วนที่
สาคัญคือ เวลาที่ใช้ ในการตอบสนองคาสัง่ (Operation time / Release time)
25
Lecture 6
26
Lecture 6
27
Lecture 6
28
Lecture 6
3. Compound
29
Lecture 6
IC ขับ DC motor
เช่น L293D
Supply-Voltage Range: 4.5 V to 36 V
Output Current 600 mA Per Channel
Peak Output Current 1.2 A Per Channel
Output Clamp Diodes for Inductive
Transient Suppression (L293D)
Brushless DC motor
Stepper Motor เป็ นอุปกรณ์ที่เป็ น Output Device อย่างหนึง่ ซึง่ เปลี่ยนสัญญาณทางไฟฟ้า เป็ นการ
เคลื่อนที่ทางกลได้ และสามารถควบคุมการหมุนของมันได้ อย่างละเอียด มีหลายประเภท เช่น
1. Permanent-magnet: a rotor with
alternating north and south poles
2. Variable-reluctance: a soft iron rotor with teeth and a wounded stator.
30
Lecture 6
มุม step
มอเตอร์ จะหมุนไปทีละหนึง่ step ถ้ ามอเตอร์ 4 เฟส มีขดลวดชุดเดียว มอเตอร์ จะมีมมุ step เท่ากับ 90
องศา ถ้ ามีขดลวดหลายชุดก็จะยิ่งมีมมุ step น้ อยลง โดยจานวน stepต่อรอบคือ 4 คูณจานวนชุดขดลวด
31
Lecture 6
1. การขับแบบ 1 เฟส
Step Phase 1 Phase 2 Phase 3 Phase 4
32
Lecture 6
2. การขับแบบ 2 เฟส
Step Phase 1 Phase 2 Phase 3 Phase 4
1 ON ON OFF OFF
2 OFF ON ON OFF
3 OFF OFF ON ON
4 ON OFF OFF ON
3. การขับแบบ ครึ่งสเต็ป
Step Phase 1 Phase 2 Phase 3 Phase 4
2 ON ON OFF OFF
4 OFF ON ON OFF
4. การขับแบบ Microstepping
AC Control
โดยทัว่ ไป การควบคุมเปิ ดปิ ดไฟ AC ควรจะมีการตรวจสอบ zero crossing ซึง่ เป็ นจุดที่สญ ั ญาณไฟ AC
ผ่านระดับศูนย์ (รูปที่ 19) ถ้ าการเปิ ดปิ ดไฟ AC เกิดขึ ้นในขณะที่ voltage มีคา่ ไม่เท่ากับศูนย์ voltage ที่
โหลดจะมีระดับสูงขึ ้นทันทีแทนที่จะค่อยๆขึ ้นจนเป็ นรูป sine wave ปรากฏการณ์นี ้จะทาให้ โหลดเสียหาย
และทาให้ เกิด EMI ตัว solid-state relays ที่มี zero crossing ด้ วยมีขายทัว่ ไปโดยที่วงจรส่วนนี ้มักจะ
ประกอบด้ วย SCR หรื อ triac
ในบางกรณี zero crossing สามารถทาโดยใช้ software รูปที่ 19 C แสดงวิธีการใช้ opto-isolator และตัว
ต้ านทานจากัดกระแส แต่ละครัง้ ที่ AC voltage ผ่านระดับศูนย์ opto-isolator จะ turns off และทาให้ เกิด
33
Lecture 6
สัญญาณ interrupt ส่งไปยัง microprocessor แล้ วการเปิ ดสวิทช์เพื่อส่งไฟ AC ไปยัง loads จะถูก
ควบคุมด้ วย ISR
รู ปที่ 19 AC control
Heaters
Heaters ส่วนใหญ่มีคา่ inductance ที่น้อยมาก ดังนันจึ
้ งไม่จาเป็ นต้ องมี clamping diodes และ heaters
จะถูกควบคุมด้ วย feedback loop โดยใช้ temperature sensor วัดอุณหภูมิดงั รูป
34
Lecture 6
รู ปที่ 20
Coolers
Solid-state (Peltier) cooler ประกอบด้ วยรอยต่อ PN หลายๆอัน ส่วนใหญ่สร้ างจาก bismuth telluride
ซึง่ จะดึงความร้ อนจากด้ านหนึง่ และปล่อยออกไปอีกด้ านหนึง่ การควบคุม Peltier cooler คล้ ายๆกับการ
ควบคุม heater การปรับอุณหภูมิสามารถทาได้ โดยควบคุมการจ่ายไฟด้ วยวงจร pulse width modulation
แต่การทาเช่นนันควรใช้
้ ความถี่ของ PWM สูงกว่าความถี่ต่าสุดที่แนะนาเพื่อลดผลของ thermal stress ซึง่
โดยทัว่ ไปมีคา่ ประมาณ 2 kHz.
Fans
การใช้ Cooling fans ควรจะมีการควบคุมความเร็วพัดลมเพื่อจากัด noise ที่จะเกิดขึ ้นในระบบ การวัด
ความเร็วพัดลมอาจใช้ optical sensor กับ disc encoder
35
Lecture 6
Displays
7-Segment LED
7-Segment LED คือการนาเอา LED 7 ดวงมาเรี ยกกัน ดังรูป ซึง่ มันจะใช้ ในการแสดงตัวเลข ‘0’ – ‘9’ หรื อ
ใช้ แสดง ตัวเลข ‘0’ – ‘F’ ก็ได้ การแสดงผลจะออกมาจากการติดสว่างของ LED คือ
รูปที่ 22
7-Segment LED แต่ละส่วนมี ชื่อของมันดังที่แสดงในรูป ในการต่อใช้ งานในเพื่อเป็ นการแสดงผลของ
Microcomputer นิยมต่อ Segment ‘a’ เข้ ากับ บิต ‘0’ ของข้ อมูลที่สง่ เป็ น Output ออกมา และ Segment
‘b’ ก็จะต่อกับบิตที่ ‘1’ ตามลาดับ
ดังนัน้ ถ้ าส่งข้ อมูล ‘0 0 1 1 1 1 1 1’ (3FH) ออกไปที่ Output Port ที่ตอ่ อยู่กบั 7-Segment จะมี
Segment ที่ ‘a’, ‘b’, ‘c’, ‘d’, ‘e’ และ ‘f’ ที่ติดสว่าง และมองเห็นได้ เป็ นเลข ‘0’
รูปที่ 23
ตาราง 1
แสดงผล Common Common แสดงผล Common Common แสดงผล Common Common
cathode anode cathode anode cathode anode
36
Lecture 6
0 3F C0 C 39 C6 b 7C 83
1 06 F9 E 79 86 c 58 A7
2 5B A4 F 71 8E d 5E A1
3 4F B0 G 70 82 h 74 8B
4 66 99 H 76 89 n 54 AB
5 6D 92 I 06 F9 o 5C A3
6 7D 82 J 1E E1 r 50 AF
7 07 F8 L 38 C7 u 1C E3
8 7F 80 O 3F C0 - 40 BF
9 67 98 P 73 8C ? 53 AC
A 77 88 U 3E C1 Blank 00 FF
B 7F 80 Y 66 99
BCD Output to 7-Segments
เราสามารถที่จะต่อ LED Segment ต่างๆ เข้ า
โดยตรงที่ Output Port Bit ก็ได้ ในกรณีนี ้
Output Port 8 Bit ก็จะต่อ 7-Segment ได้ 1
ตัว หรื อจะต่อโดยใช้ IC ถอดรหัส BCD ใน
กรณีนี ้ ข้ อมูลที่สง่ ออกมาจะเป็ น BCD ซึง่ ใช้
เพียง 4 Bit เท่านัน้
การแสดงผลที่ 7-Segments จะทาได้ โดยการ
ส่งข้ อมูลไปออกที่ Output port ที่มนั ต่ออยู่
หลักการนี ้ จะเรี ยกได้ วา่ เป็ น Static Display
เราจะสามารถต่อ 7-Segment เพิ่มได้ ตาม
ต้ องการ โดยการใช้ Output Port ที่มากขึ ้น
แต่อย่างไรก็ดี ในการแสดงผลของ 7-Segment
จานวนมากแล้ ว จึงใช้ หลักการของ Dynamic
Display แทน
รู ปที่ 24
37
Lecture 6
Dynamic Display
หลักการของ Dynamic Display นันอาศั ้ ยคุณสมบัตขิ อง ตามนุษย์ ที่ไม่สามารถมองเห็นการกระพริบ หรื อ
การเปลี่ยนแปลงที่เกิดขึ ้นเร็ วๆ ได้ ดังนัน้ 7-Segment ทังหมดจึ
้ งไม่จาเป็ นต้ องติดพร้ อมกัน ซึง่ ทาได้ โดยใช้
สัญญาณ (ข้ อมูล) อีกส่วนหนึง่ เป็ นตัว
ควบคุมว่าจะให้ 7-Segment ตัวใดที่แสดงผล (หลักการนี ้ คล้ ายกับการ Scan key) จากรูปเป็ นตัวอย่าง
ของวงจรที่ใช้ แสดงผล 7-Segments จานวน 7 หลัก โดย Microcomputer จะส่งข้ อมูลของตัวเลขที่ต้องการ
แสดง ออกทาง Output port B และส่งสัญญาณเพื่อเลือก หลักที่จะแสดงผลออกที่ Output port A
โปรแกรมสาหรับการแสดงผล นี ้จะเขียนเป็ น Pseudo-code ได้ คือ
Port B
Port A
รู ปที่ 25
1. ไม่เลือกให้ 7-Segments ตัวใดติด
2. ส่งค่าตัวเลข ที่ต้องการแสดงผล ออกไปที่ Output port B
3. เลือก หลัก ของ 7-Segments ที่ต้องการให้ ตดิ
4. หน่วงเวลา
5. อ่านข้ อมูลที่จะแสดงผลของหลักต่อไป แล้ วกลับไปที่ข้อ 1 ทาจนครบทัง้ 7 หลัก
6. กลับไปเริ่มต้ นใหม่ ที่ข้อ 1
38
Lecture 6
ขบวนการทางานแสดงผล ตัวเลขทังหมดนี
้ ้ จะต้ องเกิดขึ ้น ภายในเวลา ที่ น้ อยกว่า 20 mS ไม่เช่นนัน้ แล้ ว
เราจะมองเห็นว่าตัวเลขนันกระพริ
้ บ
รูปที่ 26
LCDs
LCD มีข้อดีคือสามารถใช้ แสดงผลได้ หลายรูปแบบ
ทังแบบตั
้ วอักษร ตัวเลข และ กราฟฟิ ก ราคาไม่แพง
และการใช้ งานไม่ยงุ่ ยากเนื่องจากถูกผลิตขึ ้นโดยมีอปุ กรณ์ควบคุมการแสดงผลอยูภ่ ายในทาให้ ไม่ต้อง
เขียนโปรแกรมที่ซบั ซ้ อน และเสียเวลาในการแสดงผลทีละหลัก อุปกรณ์แสดงผลแบบ LCD บางครัง้ จะ
เรี ยกว่า LCD Module เนื่องจากภายในประกอบด้ วยหลายส่วน ได้ แก่ Register เก็บคาสัง่ (Instruction
Register: IR) ทาหน้ าที่รับคาสัง่ ควบคุมการแสดงผล, Register เก็บข้ อมูล (Data Register: DR)
RS (Register Select) ใน LCD Module มี
Register เก็บคาสัง่ และ Register เก็บ
ข้ อมูล
RS เป็ น ‚0‛ แสดงว่าเป็ นคาสัง่ , ‚1‛ เป็ น
ข้ อมูล
R/W เป็ น ‚0‛ write, ‚1‛ read
E (Enable) ทาให้ LCD ทางาน
D0-D7 ใช้ รับส่งข้ อมูล รูปที่ 27
39
Lecture 6
7 65 4 3 2 1 0
Clear entire display and move cursor
1 Clear Display 0 0 0 00 0 0 0 0 1
home (address 0)
Move cursor home and return display to
2 Home Display 0 0 0 00 0 0 0 1 0
home position.
Sets cursor direction (M: 0=left, 1=right)
3 Entry Mode Set 0 0 0 0 0 0 0 1 M S and display scrolling (S: 0=no scroll,
1=scroll)
Sets display on/off (D), cursor on/off (C)
4 Display/Cursor 0 0 0 00 0 1 D C B
and blinking cursor (B). (0=off, 1=on)
Cursor or Display Shift (C: 0=cursor,
Cursor or Display
5 0 0 0 0 0 1 C M 0 0 1=display) left or right (M: 0=left,
Shift
1=right).
Data bus size (D: 0=4-bits, 1=8-bits),
6 Function Set 0 0 0 0 1 D N F 0 0 lines No.(N: 0=1-line, 1=2-lines) and
font size (F: 0=5x7, 1=5x10)
Move pointer to Character Generator
Set CG-RAM CGRAM
7 0 0 0 1 RAM location specified by address
Address ADDRESS
(ADDRESS)
Move cursor to Display Data RAM
Set DD-RAM DDRAM
8 0 0 1 location specified by address
Address ADDRESS
(ADDRESS)
9 Busy, ADD.Read 0 1 BF ADDRESS Read Busy flag, And Address Read
CGRAM,DDRAM
10 1 0 WRITE DATA Write Data to DDRAM or CGRAM
WR
CGRAM,DDRAM
11 1 1 READ DATA Read Data to DDRAM or CGRAM
RD
รายละเอียดคาสัง่
1). เคลียร์ การแสดงผล (Clear Display)
7 6 5 4 3 2 1 0 bit0=1 เคลียร์ การแสดงผล
40
Lecture 6
41
Lecture 6
bit6=1
76 5 4 3 2 1 0
หน่วยความจาชัว่ คราว เก็บข้ อมูลตัวอักษร CG-RAM (Character
0 1 A5 A4 A3 A2 A1 A0
Generator RAM)
RS=0, R/W=0 A0-A5 เป็ นตาแหน่งแอดเดรสใน CG-RAM
8).เซ็ทตาแหน่งใน DD-RAM (Set DD-RAM Address)
bit7=1
7 6 5 4 3 2 1 0
หน่วยความจาชัว่ คราว เก็บข้ อมูลการแสดง DD-RAM (Display
1 A6 A5 A4 A3 A2 A1 A0
Data RAM)
A0-A6 เป็ นตาแหน่งแอดเดรสใน DD-RAM ซึง่ จะถูกคัดลอกไปยัง
RS=0, R/W=0
Address Counter (AC)
DD-RAM คือหน่วยความจาที่เก็บข้ อมูลการแสดงผล หากเขียนรหัส ASCII ลงในหน่วยความจานี ้ก็จะ
ปรากฏที่จอ LCD ทันที ตาแหน่ง Address ของ LCD แต่ละแบบ
1 x 16 Display
Line 1 0 1 2 3 4 5 6 7 40 41 42 43 44 45 46 47
2 x 16 Display
Line 1 0 1 2 3 4 5 6 7 8 9 A B C D E F
Line 2 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
4 x 20 Display
Line 1 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13
Line 2 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53
Line 3 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27
Line 4 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D
เช่นกรณีใช้ งาน LCD โมดูลแบบ 2x16 บรรทัดที่ 2 ใน columnแรกจะมีคา่ address = 64(dec) หรื อ
40H คาสัง่ ที่ใช้ ในการเขียนข้ อมูลออกไปยังโมดูล LCD บรรทัดต่างๆคือ การนา 10000000 หรื อ 80H มา
OR กับ address ของ DDRAM เช่น 80H OR 40H =0C0H จะเป็ นชุดคาสัง่ ที่ใช้ เขียนไปยังโมดูล LCD
บรรทัดที่ 2
9). การอ่าน BUSY Flag and Address Counter (BF and AC)
7 6 5 4 3 2 1 0 BF=bit7เป็ นตัวบอกสถานะของ
42
Lecture 6
BF A6 A5 A4 A3 A2 A1 A0 LCD
R/W=1กาหนดให้ เป็ น Read
mode
RS=0, R/W=1 BF=0 ว่าง, BF=1 ไม่วา่ ง
A0-A6 = Address Counter (AC)
10). การเขียนข้ อมูลใน CG or DD-RAM
7 6 5 4 3 2 1 0 RS=1 กาหนดให้ เป็ นข้ อมูล
D7 D6 D5 D4 D3 D2 D1 D0 R/W=0 กาหนดให้ เป็ น Write mode
RS=1, R/W=0 D0-D7 = ข้ อมูลที่ต้องการเขียน
หากต้ องการเขียนข้ อมูลใน CG-RAM ให้ เซ็ทตาแหน่ง CG-RAM ในข้ อที่ 7 ก่อน
หากต้ องการเขียนข้ อมูลใน DD-RAM ให้ เซ็ทตาแหน่ง DD-RAM ในข้ อที่ 8 ก่อน
11). การอ่านข้ อมูลจาก CG or DD-RAM
7 6 5 4 3 2 1 0 RS=1 กาหนดให้ เป็ นข้ อมูล
D7 D6 D5 D4 D3 D2 D1 D0 R/W=1 กาหนดให้ เป็ น Read
mode
RS=1, R/W=0
D0-D7 =ข้ อมูลที่อา่ นได้
หากต้ องการอ่านข้ อมูลใน CG-RAM ให้ เซ็ทตาแหน่ง CG-RAM ในข้ อ 7 ก่อน
หากต้ องการอ่านข้ อมูลใน DD-RAM ให้ เซ็ทตาแหน่ง DD-RAM ในข้ อ 8 ก่อน
การเขียนโปรแกรมเพื่อควบคุม LCD
รู ปที่ 28
ขันตอนการเขี
้ ยนโปรแกรมเพื่อใช้ งาน LCD สามารถอธิบายได้ ดงั นี ้
1) หากเป็ นการเริ่มจ่ายไฟที่ระดับแรงดันถึง 4.5 V ให้ LCD ให้ รออย่างน้ อย 15ms เพื่อให้ LCD
43
Lecture 6
44
Lecture 6
ให้ ขา E = 1
ให้ ขา RS= 1 กาหนดเป็ น
ข้ อมูล
ให้ ขา R/W = 0 เขียนข้ อมูล
หมายเหตุ หลังจากการปฏิบตั กิ ารในแต่
ละขันตอนต้
้ องมีการตรวจสอบว่า LCD
Module พร้ อมที่จะรับคาสัง่ ต่อไป
หรื อไม่โดยการตรวจสอบ Busy Flag
(Bit 7) ใน Instruction Register โดย
กาหนดขาควบคุม
ให้ ขา E = 1
ให้ ขา RS= 0 กาหนดเป็ นคาสัง่
ให้ ขา R/W = 1 อ่านคาสัง่
รู ปที่ 29
ตัวอย่ างการต่ อ LCD
ตาแหน่ง address
0400H (xxxxx100xxxxxxxx) เขียนคาสัง่
0500H (xxxxx101xxxxxxxx) อ่านคาสัง่
0600H (xxxxx110xxxxxxxx) เขียนข้ อมูล
0700H (xxxxx111xxxxxxxx) อ่านข้ อมูล
45
Lecture 6
จากขัวลบจะวิ
้ ่งไปที่ชนพลั
ั ้ งงานที่วา่ งเปล่า ในขณะที่โฮลจะวิ่งจากขัวบวกเข้
้ าไปยังชันพลั
้ งงานที่มี
อิเล็กตรอนบรรจุอยู่ จากนันประจุ
้ ลบจะวิ่งลงมาในขณะที่ประจุบวกจะวิ่งขึ ้นไปพบกัน แล้ วรวมตัวกันเกิด
เป็ นอนุภาคโฟตอนหรื อแสงนัน่ เอง โดยพลังงานของอนุภาคโฟตอนนันจะมี ้ คา่ เท่ากับ Energy Gap ซึง่ จะ
เป็ นตัวกาหนดสีของแสงที่เปล่งออกมา เช่น สีแดง ซึง่ มีพลังงานต่ากว่า สีฟ้า เป็ นต้ น สีของแสงที่เปล่ง
ออกมาขึ ้นอยูก่ บั Energy Gap ซึง่ ก็จะขึ ้นอยู่กบั สมบัตขิ องวัสดุเปล่งแสงอีกที
46
Lecture 6
แต่ AD5220 resistor terminals (A, B, and W) จะไม่สามารถมี voltage ระดับสูงกว่า supply voltage
หรื อต่ากว่า ground
รู ปที่ 31
แบบฝึ กหัด
1. จากรูป แสดงการคานวณหาค่า R ดังเมื่อมีการใช้ 74LS244 line driver ต่อเข้ ากับขา port ของ
Microcontroller เพื่อช่วยจ่ายกระแส (ทาเหมือนตัวอย่างในบทเรี ยน)
R
+
1.8
+ -
IOH
1.8 LED
-
LED 74LS244 pin
VOL
R
IOL
47
Lecture 6
48