บทที่ 4 การจำลองการทำงานของวงจรไฟฟ้า
ในบทนี้ จะกล่าวถึงการจำลองการทำงานของวงจรไฟฟ้า หรือที่เรียกว่า ชิมูเลต (Simulate) ซึ่งก็คือการวิเคราะห์การทำงานของวงจรบนโปรแกรม โดยที่ไม่ต้องต่อวงจรจริง ก็สามารถรู้ได้ว่าวงจรที่ได้ออกแบบไว้ มีประสิทธิภาพมากน้อยแค่ไหน ซึ่งจะช่วยให้ประหยัดต้นทุนและเวลาไปได้มากทีเดียว
4.1 แหล่งจ่ายไฟสำหรับจำลองการทำงาน
แหล่งจ่ายไฟเราสามารถเลือกใช้ได้จากสองที่ ซึ่งการทำงานก็จะเหมือนกัน จะแตกต่างกันเพียงรูปภายนอกเท่านั้น ที่แรกคือ ตรงปุ่มเครื่องมือ Generator และในไลบรารี Simulator Primitives
4.1.1 แหล่งจ่ายตรงปุ่มเครื่องมือ Generator

Generator
DC คือ แหล่งจ่ายไฟฟ้ากระแสตรง
SINE คือ แหล่งจ่ายไฟฟ้ากระแสสลับ
PULSE คือ แหล่งจ่ายไฟฟ้ารูปคลื่นสี่เหลี่ยม
SFFM คือ แหล่งจ่ายสัญญาณคลื่นวิทยุ
AUDIO คือ แหล่งจ่ายสัญญาณเสียง
DPULSE คือ แหล่งจ่ายไฟฟ้ารูปคลื่นสี่เหลี่ยม หนึ่งลูกคลื่น
DCLOCK คือ แหล่งจ่ายสัญญาณนาฬิกาที่มีค่าลอจิก 0 กับ 1 แบบต่อเนื่องกัน
DPATTERN คือ แหล่งจ่ายรูปคลื่นสี่เหลี่ยมแบบต่อเนื่อง
4.1.2 แหล่งจ่ายจากไลบรารี Simulator Primitives
ALTERNATOR คือ แหล่งจ่ายไฟฟ้ากระแสสลับ
BATTERY คือ แหล่งจ่ายไฟฟ้ากระแสตรง
CLOCK คือ แหล่งจ่ายสัญญาณนาฬิกาที่มีค่าลอจิก 0 กับ 1 แบบต่อเนื่องกัน
CSOURCE คือ แหล่งจ่ายกระแสไฟฟ้ากระแสตรง
IPULSE คือ แหล่งจ่ายกระแสไฟฟ้าพัลส์
VPULSE คือ แหล่งจ่ายไฟฟ้ารูปคลื่นพัลส์
VSFFM คือ แหล่งจ่ายคลื่นวิทยุในย่าน FM
VSOURCE คือ แหล่งจ่ายไฟฟ้ากระแสตรง
4.2 เครื่องมือวัดต่าง ๆ
เมื่อป้อนแรงดันหรือสัญญาณต่าง ๆ ให้กับวงจรแล้ว ถ้าต้องการดูรูปคลื่นหรือแรงดันตามจุดต่าง ๆ ก็สามารถให้เครื่องมือวัด ตรวจจับการทำงานของวงจรได้ โดยคลิกที่ปุ่ม Virtual Instrument

Virtual Instrument

ถ้าคลิกที่ชื่อรายการเครื่องมือวัดชนิดใด รูปของเครื่องมือวัดชนิดนั้น ก็จะปรากฏขึ้นมา ซึ่งรายการของเครื่องมือวัด และรูปร่างหน้าตาของเครื่องมือวัด แสดงได้ดังนี้
OSCILLOSCOPE ใช้วัดสัญญาณรูปคลื่นต่าง ๆ ของวงจร
COUNTER TIMER เป็นตัวนับและกำหนดเวลา
DC VOLTMETER ใช้วัดแรงดันไฟฟ้ากระแสตรงในวงจรตามจุดต่าง ๆ
DC AMMETER ใช้วัดกระแสไฟฟ้ากระแสตรงในวงจรตามจุดต่าง ๆ
AC VOLTMETER ใช้วัดแรงดันไฟฟ้ากระแสสลับในวงจรตามจุดต่าง ๆ
AC AMMETER ใช้วัดกระแสไฟฟ้ากระแสสลับในวงจรตามจุดต่าง ๆ
SIGNAL GENERATOR เป็นแหล่งจ่ายสัญญาณรูปคลื่นต่าง ๆ
Voltage Probe ใช้วัดแรงดันไฟฟ้าในวงจรตามจุดต่าง ๆ
Current Probe ใช้วัดกระแสไฟฟ้าในวงจรตามจุดต่าง ๆ
4.3 การกำหนดค่าต่าง ๆ ให้แหล่งจ่ายไฟ
เมื่อเราทราบถึงอุปกรณ์ที่เป็นแหล่งจ่ายไฟฟ้าแล้ว ต่อไปเราต้องทำความรู้จักการตั้งค่าให้กับแหล่งจ่ายไฟกันดีกว่า ซึ่งในที่นี้จะขออธิบายในส่วนที่สำคัญเท่านั้น ส่วนที่ไม่ได้อธิบายสามารถศึกษาได้เองได้ไม่ยาก ส่วนการเข้าไปกำหนดนั้นทำได้ โดยดับเบิ้ลคลิกที่แหล่งจ่าย ก็จะสามารถเข้าไปกำหนดค่าต่าง ๆ ได้ดังนี้
4.3.1 แหล่งจ่ายจากปุ่มเครื่องมือ
DC


SINE


PULSE


A: Initial (Low) Voltage ตั้งค่าเริ่มต้นของสัญญาณ
B: Pulsed (High) Voltage ตั้งค่าสูงสุดของสัญญาณ
C: Start (Secs) ตั้งเวลาให้สัญญาณเริ่มทำงาน
D: Rise Time (Secs) กำหนดค่าเวลาให้สัญญาณขึ้น
E: Fall Time (Secs) กำหนดค่าเวลาให้สัญญาณลง
F: Pulse Width (Secs) กำหนดความกว้างให้สัญญาณแบบเวลา
G: Pulse Width (%) กำหนดความกว้างให้สัญญาณแบบเปอร์เซ็นต์
H: Frequency (Hz) กำหนดความถี่ให้สัญญาณ
SFFM


1: Offset (Volts) กำหนดค่าอ้างอิงเทียบกราวนด์
2: Amplitude (Volts) กำหนดความกว้างของสัญญาณ
3: Carrier Freq (Hz) กำหนดความถี่ของสัญญาณพาหะ
4: Modulation Index กำหนดค่าของคลื่นเสียงสูง-ต่ำ
5: Signal Freq (Hz) กำหนดความถี่ของสัญญาณรูปคลื่น
AUDIO


ก: WAV Audio File นำไฟล์เสียง หรือเพลง ที่มีนามสกุล WAV เข้ามาโดยคลิกที่ปุ่ม Browse
ข: Amplitude กำหนดค่าความกว้างของสัญญาณ
ค: Offset (Volts) กำหนดค่าอ้างอิงเทียบกราวน์
ง: Channel เลือกระบบเสียง 1.ออกทั้งซ้าย-ขวา 2.ออกซ้ายข้างเดียว 3.ออกขวาข้างเดียว
DPULSE


DCLOCK


DPATTERN


4.3.2 แหล่งจ่ายจากไลบรารี Simulator Primitives
ALTERNATOR


A: Component Reference กำหนดชื่อให้กับแหล่งจ่าย
B: Component Value กำหนดค่าให้กับแหล่งจ่าย
C: Amplitude กำหนดความกว้างให้กับแหล่งจ่าย
D: Frequency กำหนดความถี่ให้กับแหล่งจ่าย
BATTERY


1: Component Reference กำหนดชื่อให้กับแหล่งจ่าย
2: Voltage กำหนดค่าแรงดันให้กับแหล่งจ่าย
3: Internal Resistance กำหนดค่าความต้านทานภายในแหล่งจ่าย
CLOCK


ก: Component Reference กำหนดชื่อให้กับแหล่งจ่าย
ข: Component Value กำหนดค่าให้กับแหล่งจ่าย
ค: Clock Frequency กำหนดความถี่ให้กับแหล่งจ่าย
CSOURCE


A: Component Reference กำหนดชื่อให้กับแหล่งจ่าย
B: Current กำหนดค่ากระแสให้กับแหล่งจ่าย
IPULSE


1: Component Reference กำหนดชื่อให้กับแหล่งจ่าย
2: Component Value กำหนดค่าให้กับแหล่งจ่าย
3: Initial Value ตั้งค่าเริ่มต้นของสัญญาณ
4: Pulse Value ตั้งค่าสูงสุดของสัญญาณ
5: Rise Time กำหนดค่าเวลาให้สัญญาณขึ้น
6: Fall Time กำหนดค่าเวลาให้สัญญาณลง
7: Pulse Width กำหนดความกว้างให้สัญญาณ
VPULSE


1: Component Reference กำหนดชื่อให้กับแหล่งจ่าย
2: Component Value กำหนดค่าให้กับแหล่งจ่าย
3: Initial Value ตั้งค่าเริ่มต้นของสัญญาณ
4: Pulse Value ตั้งค่าสูงสุดของสัญญาณ
5: Rise Time กำหนดค่าเวลาให้สัญญาณขึ้น
6: Fall Time กำหนดค่าเวลาให้สัญญาณลง
7: Pulse Width กำหนดความกว้างให้สัญญาณ
VSFFM


1: Component Reference กำหนดชื่อให้กับแหล่งจ่าย
2: Component Value กำหนดค่าให้กับแหล่งจ่าย
3: DC Offset กำหนดค่าอ้างอิงเทียบกราวนด์
4: Amplitude กำหนดความกว้างให้สัญญาณ
5: Carrier Frequency กำหนดความถี่ของสัญญาณพาหะ
6: Signal Frequency กำหนดความถี่ของสัญญาณรูปคลื่น
7: Modulation Index กำหนดค่าของคลื่นเสียง สูง ต่ำ
VSOURCE


1: Component Reference กำหนดชื่อให้กับแหล่งจ่าย
2: Voltage กำหนดค่าแรงดันให้แหล่งจ่าย
4.4 การใช้งานเครื่องมือวัด
ในหัวข้อนี้ เราจะมาดูการใช้งานของเครื่องมือวัดชนิดต่าง ๆ กันว่า แต่ละชนิดมีหน้าที่การทำงานอย่างไร และใช้ตรวจวงจรยังไง

4.4.1 การใช้เครื่องมือ OSCILLOSCOPE

ในตัวอย่างนี้ จะทำการวัดไฟกระแสสลับ โดยนำแหล่งจ่ายไฟฟ้ากระแสสลับ เข้าไปกำหนดค่าต่าง ๆ ตามต้องการ แล้วใช้สายสัญญาณต่อเข้ากับเครื่องมือวัดสโคป ในช่อง A แล้วคลิกที่ปุ่ม

เมื่อสั่งให้เครื่องมือวัดสโคปทำงาน โปรแกรมก็จะแสดงหน้าต่าง Digital Oscilloscope ขึ้นมา ซึ่งจะเห็นว่า มีปุ่มเครื่องมือต่าง ๆ มากมายอยู่ทางด้านซ้าย มีทั้งหมด 4 แชนแนล และมีรูปคลื่นแสดงอยู่ที่จอด้านซ้าย ซึ่งเปรียบได้กับเครื่องมือวัดสโคปตัวจริงตัวหนึ่ง ที่ถูกจำลองขึ้นมานั่นเอง
ปุ่มที่ใช้บ่อยมีหลัก ๆ คือ Volt/DIV, Time/DIV, Trigger Level, Position ขึ้นลงซ้ายขวา เนื่องจาก Oscilloscope บนหน้าจอจะมีแกนตั้ง และแกนนอน แกนตั้ง คือ แกนของแรงดันไฟฟ้า (Volt) แกนนอน คือ แกนเวลา (Time) เพราะฉะนั้นด้วยเหตุผลนี้จึงจำเป็นต้องสามารถปรับค่า scale ของแกนตั้ง และแกนนอนได้
A: Position ใช้ปรับรูปคลื่นขึ้นลง ในแนวนอน
B: สวิตซ์เลื่อน
- AC ย่านวัดไฟกระแสสลับ
- DC ย่านวัดไฟกระแสตรง
- GND ย่านวัดกราวนด์
- OFF ปิดการใช้งาน
- C: Invert กลับเฟสสัญญาณ
- D: A+B ใช้รวมสัญญาณ 2 สัญญาณ แชนแนล A กับ B เข้าด้วยกัน
- E: ปุ่ม Volt/DIV ใช้ปรับแรงดันให้รูปคลื่นสูง-ต่ำ ตามแรงดันที่ปรับ โดยมีหน่วยตามสเกล ส่วนปุ่มเล็กใช้ปรับให้มีความละเอียดมากขึ้น
1: Level ใช้ปรับระดับทริกเกอร์ ให้สัญญาณรูปคลื่นนิ่งขึ้น
2: สวิตซ์เลื่อน เลือกย่านการวัด
3: Auto ใช้หาสัญญาณแบบอัตโนมัติ โดยจะค้าหาค่า Volt/Div และ Time/Div ที่เหมาะสม
4: Cursors เมื่อใช้คำสั่งนี้จะมี Cursor ออกมา ใช้วัดแรงดันกับคาบเวลาของรูปคลื่นได้ Source
1: สวิตซ์เลื่อน Source A-D
2: Position ปรับสเกลในแนวตั้ง
3: ปุ่ม Time/Div ใช้ปรับคาบเวลาให้รูปคลื่นยาว-สั้น ตามเวลาที่ปรับ โดยมีหน่วยตามสเกล ส่วนปุ่มเล็กใช้ปรับให้มีความละเอียดมากขึ้น
4.4.2 การใช้งาน SIGNAL GENERATOR
เครื่องกำเนิดความถี่ หรือเรียกว่า ซิกแนล เจนเนอร์เรเตอร์ (Signal Generators) คือเครื่องมือทางด้านอิเล็กทรอนิกส์ ที่ใช้ผลิตสัญญาณความถี่ไฟฟ้าชนิดต่าง ๆ อย่างเช่น คลื่นรูปซายน์ (Sine wave) คลื่นจัตุรัส (Square wave) คลื่นสามเหลี่ยม (Triangular wave) และพัลส์ (Pulse) เพื่อใช้ในการทดสอบปรับแต่สัญญาณและตรวจซ่อมวงจรอิเล็กทรอนิกส์
ในตัวอย่างนี้จะใช้สโคปตรวจจับสัญญาณ ที่จ่ายโดยซิกแนล เจนเนอร์เรเตอร์ โดยใช้สายสัญญาณต่อเข้ากับเครื่องมือวัดสโคป ในช่อง A แล้วคลิกที่ปุ่ม

เมื่อสั่งให้เครื่องมือ ซิกแนล เจนเนอร์เรเตอร์ โปรแกรมก็จะแสดง VSM Signal Generator ขึ้นมา ซึ่งจะเห็นว่า มีปุ่มเครื่องมือต่าง ๆ มากมายอยู่ทางด้านซ้าย มีทั้งหมด 4 แชนแนล และมีรูปคลื่นแสดงอยู่ที่จอด้านซ้าย ซึ่งเปรียบได้กับเครื่องมือวัดสโคปตัวจริงตัวหนึ่ง ที่ถูกจำลองขึ้นมานั่นเอง
1: ปุ่ม Centre ปรับจุดศูนย์รวมของสัญญาณ
2: ปุ่ม Range Frequency ใช้ปรับความถี่ให้กับสัญญาณ
3: ปุ่ม Level ใช้ปรับระดับทริกเกอร์ให้สัญญาณรูปคลื่น
4: ปุ่ม Range Amplitude ปรับความกว้างของสัญญาณรูปคลื่น
5: ปุ่ม Waveform ใช้เลือกสัญญาณรูปคลื่นแบบต่าง ๆ
4.4.3 การใช้งานเครื่องมือวัด DC VOLTMETER

เครื่องมือวัด DC VOLTMETER เป็นเครื่องมือที่ใช้วัดแรงดันไฟฟ้ากระแสตรง โดยจะอ่านค่าเป็นตัวเลขแสดงผลที่หน้าจอ วิธีการต่อเพื่อวัดแรงดัน ให้ต่อคร่อมไปยังจุดที่ต้องการทราบ แล้วคลิกที่ปุ่ม


4.4.4 การใช้งานเครื่องมือวัด AC VOLTMETER

เครื่องมือวัด AC VOLTMETER การทำงานก็จะเหมือนกับ DC VOLTMETER คือเครื่องมือที่ใช้วัดแรงดันไฟฟ้ากระแสสลับ โดยจะอ่านค่าเป็นตัวเลขแสดงผลที่หน้าจอ วิธีการต่อเพื่อวัดแรงดัน ให้ต่อคร่อมไปยังจุดที่ต้องการทราบ แล้วคลิกที่ปุ่ม


4.4.5 การใช้งานเครื่องมือวัด DC AMMETER
เครื่องมือวัดกระแส DC AMMETER เป็นเครื่องมือที่ใช้วัดกระแส ที่ไหลผ่านในวงจรตามจุดต่าง ๆ ได้ โดยจะอ่านค่าเป็นตัวเลขแสดงผล วิธีการต่อเพื่อวัดกระแส ให้ต่ออนุกรมกับวงจรไปยังจุดที่ต้องการทราบแล้วคลิกที่ปุ่ม


4.4.6 การใช้งานเครื่องมือวัด AC AMMETER

เครื่องมือวัดกระแส AC AMMETER การทำงานก็จะเหมือนกับ DC AMMETER เป็นเครื่องมือที่ใช้วัดกระแสที่ไหลผ่านในวงจรตามจุดต่าง ๆ ได้ โดยจะอ่านค่าเป็นตัวเลขแสดงผลที่หน้าจอ วิธีการต่อเพื่อวัดกระแสให้ต่ออนุกรมกับวงจรไปยังจุดที่ต้องการทราบแล้วคลิ กที่ปุ่ม


4.5 การจำลองการทำงานของวงจรไฟกระพริบดวงเดียว
ในตัวอย่างนี้ จะทำการจำลองการทำงานของวงจรไฟกระพริบดวงเดียว ซึ่งเป็นวงจรอนาล็อก โดยจะใช้วงจรที่สร้างไว้แล้วในบทที่ 3

1. คลิกที่เมนู System > Set Animation Options

2. คลิกเครื่องหมายถูกที่ช่อง Show Wire Voltage by Colour เพื่อให้สายสัญญาณ แสดงสีของแรงดันขึ้นมา โดยสีเข้มหมายถึงแรงดันสูง สีอ่อนหมายถึงแรงดันต่ำ
3. คลิกเครื่องหมายถูกที่ช่อง Show Wire Current with Arrows เพื่อให้แสดงทิศทางการไหลของกระแสไฟฟ้าบนสายสัญญาณ
4. คลิกที่ปุ่ม


5. แล้วคลิกที่ปุ่ม

6. LED ก็จะติดสว่าง พร้อมกับทิศทางการไหลของกระแส และสีของสายสัญญาณที่บอกค่าสูง-ต่ำ ของแรงดันไฟฟ้า
7. คลิกที่ปุ่ม


8. คลิกที่ปุ่ม

9. นำมาเชื่อมตรงจุดที่ต้องการวัดตามต้องการ
10. แล้วคลิกที่ปุ่ม


11. จากนั้น คลิกที่ปุ่ม

12. นำเครื่องมือวัด DC VOLTMETER ต่อคร่อมจุดที่ต้องการวัด ในที่นี้ต่อคร่อม R1
13. จากนั้น คลิกเลือกเครื่องมือวัด DC AMMETER ต่ออนุกรมกับจุดที่ต้องการวัด ในที่นี้ต่ออนุกรมขา C ของ Q1 กับขา B ของ Q2
4.6 การจำลองการทำงานวงจรเครื่องขยายเสียงขนาดจิ๋ว
ในตัวอย่างนี้ จะทำการจำลองกรทำงานของวงจร วงจรเครื่องขยายเสียงขนาดจิ๋ว ซึ่งเป็นวงจรอนาล็อก โดยจะใช้วงจรที่สร้างไว้แล้วในบทที่ 3
1. ขั้นตอนแรกเพื่อใช้เพิ่มอุปกรณ์ SPEAKER เป็นชนิด ACTIVE เข้ามา

2. เปลี่ยน SPEAKER อันใหม่แทนอันเก่า
3. ดับเบิ้ลคลิกที่ POWER แล้วเลือกในช่อง String เป็น VCC

4. คลิกที่ปุ่ม

5. จากนั้น นำมาเชื่อมต่อด้วยสัญญาณด้วย IN แล้วดับเบิ้ลคลิกเข้าไปที่แหล่งจ่าย Audio

6. คลิกที่ปุ่ม

7. กำหนดความกว้างของสัญญาณในช่อง Amplitude ตามต้องการ
8. คลิกที่ปุ่ม


9. คลิกที่เมนู System > Set Animation Options
10. คลิกเครื่องหมายถูกที่ช่อง Show Wire Voltage by Colour เพื่อให้แสดงสีแรงดันบนสายสัญญาณ
11. คลิกเครื่องหมายถูกที่ต้อง Show Wire Current with Arrows เพื่อให้แสดงทิศทางการไหลของกระแส
12. คลิกที่ปุ่ม


13. คลิกที่ปุ่ม

14. สโคปช่อง A ต่อกับ IN และช่อง B ต่อกับสายสัญญาณ Out
15. แล้วคลิกที่ปุ่ม


16. โปรแกรมก็จะแสดงรูปคลื่นและทิศทางการไหลของกระแสขึ้นมา


4.7 การจำลองวงจรนับ 0-9 ด้วยไอซีดิจิตอล
ในตัวอย่างนี้ จะทำการจำลองการทำงานของวงจร วงจรนับ 0-9 ด้วยไอซีดิจิตอล โดยจะใช้วงจรที่สร้างไว้แล้วในบทที่ 3
1. คลิกที่ปุ่ม


2. ให้ต่อสโคปช่อง A ต่อกับขา 3 ของ U1, ช่อง B ต่อขา 13 ของ U3, ช่อง C ต่อขา 12 ของ U3 และช่อง D ต่อกับขา 11 ของ U3
3. แล้วคลิกที่ปุ่ม


4. โปรแกรมก็จะแสดงรูปคลื่นขึ้นมาตามต้องการ

4.8 จำลองการทำงาน วงจรไฟวิ่งด้วยไมโครคอนโทรลเลอร์ตระกูล PIC เบอร์ 16F627A
ตัวอย่างนี้ จะทำการจำลองการทำงานของวงจรไฟวิ่ง ด้วยไมโครคอนโทรลเลอร์ตระกูล PIC เบอร์ 16F627A ที่เขียนด้วยภาษา C โดยใช้โปรแกรม mikroC เป็นตัวเขยีน แล้วก็ทำเป็น HEX File เพื่อเอามาจำลองการทำงานบนโปรแกรม Proteus ISIS อีกที
ส่วนวงจรได้สร้างไว้แล้วในบทที่ 3 โดยจะต้องนำโปรแกรมที่เราเขียนเสร็จแล้วในรูปของ HEX File เข้ามายังตัว IC PIC ด้วย เพื่อดูการทำงานของวงจรที่เราเขียนไว้ สามารถใช้ได้กับวงจรที่ออกแบบไว้หรือไม่

โปรแกรม mickoC สามารถหาดาวน์โหลดได้ที่ http://www.mikroe.com/en/download แล้วทำการติดตั้งให้เรียบร้อย จากนั้นทำตามขั้นตอนต่อไปนี้
1. คลิกที่ปุ่ม


2. เมื่อเปิดโปรแกรม mikroC ขึ้นมาแล้ว ให้คลิกที่เมนู Tools > Options

3. คลิกที่ Colors
4. คลิกที่ช่อง Scheme แล้วเลือก mikroDream เพื่อเปลี่ยนพื้นหลังเป็นสีขาว
5. คลิกที่ปุ่ม


6. จากนั้นคลิกที่เมนู Project > New Project เพื่อสร้างโปรเจคใหม่

7. ที่ช่อง Project Name กำหนดชื่อไฟล์ตามต้องการ
8. ที่ช่อง Project Path คลิกที่ปุ่ม

9. ที่ช่อง Device เลือกเบอร์ IC ให้ตรงกับ IC ที่เราต้องการใช้ ในที่นี้คือ P16F627 A
10. ช่อง Clock กำหนด สัญญาณ 004.000000
11. คลิกที่ปุ่ม

12. คลิกที่ปุ่ม


13. เขียนโค้ดโรแกรมวงจรไฟวิ่งลงในพื้นที่ทำงานได้ครบ
14. คลิกที่ปุ่ม

15. คลิกที่ปุ่ม

16. ถ้า Build ผ่านโปรแกรมจะขึ้นคำว่า Success ก็เป็นอันใช้ได้

17. เมื่อเขียนโปรแกรมเสร็จแล้ว ให้เปิดวงจรไฟวิ่งที่สร้างไว้แล้วขึ้นมาด้วยโปรแกรม ISIS

18. คลิกที่ปุ่ม

19. นำแหล่งจ่าย DC มาวาง แล้วเชื่อมสายสัญญาณต่อเข้ากับ R9 กับ R10 แล้ว ดับเบิ้ลคลิกที่แหล่งจ่าย DC

20. ตั้งชื่อในช่อง Generator Name ตามต้องการ
21. กำหนดค่าแรงดันในช่อง Voltage เท่ากับ 5 โวลต์
22. คลิกที่ปุ่ม


23. จากนั้น ดับเบิ้ลคลิกที่ IC PIC แล้วคลิกที่ปุ่ม

24. เมื่อเลือก HEX File เสร็จแล้ว คลิกที่ปุ่ม


25. แล้วคลิกที่ปุ่ม

26. คลิกที่ปุ่ม


27. คลิกที่ปุ่ม

28. สโคปช่อง A ต่อกับขา 17 ของ PIC และช่อง B ต่อกับสายสัญญาณ AB1
29. แล้วคลิกที่ปุ่ม


30. สโคปก็จะแสดงรูปคลื่นขึ้นมา

NOTE
ถ้าต้องการปรับความเร็วการวิ่งของ LED ในวงจร เราสามารถเปลี่ยนอุปกรณ์ VR ให้เป็นชนิดปรับค่าเองได้ ซึ่งอยู่ในไลบรารี Resistors > POT-HG

NOTE
ตัวอย่างโค้ดโปรแกรมของวงจรไฟวิ่ง สามารถดาวน์โหลดผ่านอินเตอร์เน็ตได้ที่ www.smartlearningweb.com
4.9 จำลองการทำงาน วงจรนับด้วยไมโครคอนโทรลเลอร์ตระกูล MCS-51
ในตัวอย่างนี้ จะจำลองการทำงานวงจรนับ โดยใช้ไมโครคอนโทรลเลอร์ตระกูล MCS-51 เบอร์ AT89C51 ซึ่งเขียนด้วยภาษา C โดยใช้โปรแกรม mikroC เป็นตัวเขียน แล้วก็ทำเป็น HEX File เพื่อเอามาจำลองการทำงานบนโปรแกรม Proteus ISIS อีกที
โค้ดโปรแกรมวงจรนับที่เขียนด้วยโปรแกรม mikroC


1. อันดับแรกใช้นำอุปกรณ์ IC, 7segment และ RESPACK-8 มาต่อวงจรให้ได้ดังรูป ซึ่งอุปกรณ์หาได้จากตารางข้างล่างนี้ จากนั้นดับเบิ้ลคลิกที่ AT89C51


2. คลิกที่ปุ่ม


3. เข้าไปยังตำแหน่งที่เก็บ HEX File แล้วคลิกที่ชื่อไฟล์
4. คลิกที่ปุ่ม


5. HEX File ก็จะเข้ามาอยู่ในช่อง Program File
6. กำหนดความถี่ในช่อง Clock Frequency ตามต้องการ ในที่นี้กำหนด 20 MHz
7. คลิกที่ปุ่ม


8. แล้วคลิกที่ปุ่ม


NOTE
ถ้าต้องการเปลี่ยนการนับตัวเลข ให้ไปแก้ไขโค้ดในโปรแกรมที่เขียนแล้ว จึงนำมาจำลองการทำงานในโปรแกรม ISIS ส่วนการใช้ mikroC ดูได้จากหัวข้อ 4.8
NOTE
ตัวอย่างโค้ดโปรแกรมของวงจรนับ สามารถดาวน์โหลดผ่านอินเตอร์เน็ตได้ที่ www.smartlearningweb.com
4.10 จำลองการทำงานแสดงอักษรบนจอ LCD
ในตัวอย่างนี้ จะจำลองการทำงานของไมโครคอนโทรลเลอร์ตระกูล PIC เบอร์ 16F877 โดยจะแสดงอักษรบนหน้าจอ LCD ซึ่งจะเขียนด้วยภาษาแอสเซมบลี โดยใช้โปรแกรม MPLAB เป็นตัวเขียน แล้วก็ทำเป็น HEX File เพื่อเอามาจำลองการทำงานบนโปรแกรม Proteus ISIS อีกที
โค้ดโปรแกรมวงจรนับที่เขียนด้วยโปรแกรม MPLAB

โปรแกรม MPLAB IDE สามารถหาดาวน์โหลดได้ที http://www.microchip.com แล้วทำการติดตั้งให้เรียบร้อย แล้วทำตามขั้นตอนต่อไปนี้
1. คลิกที่ปุ่ม


2. คลิกที่เมนู Project > Project Wizard

3. คลิกที่ปุ่ม


4. คลิกที่ช่อง Device เลือกเบอร์ IC ให้ตรงกับอุปกรณ์ที่ใช้ ในที่นี้คือ PIC16F877
5. คลิกที่ปุ่ม


6. คลิกที่ช่อง Active Tool suite เลือก Microchip MPASM Toolsuite
7 คลิกที่ปุ่ม


8. คลิกที่ปุ่ม

9. คลิกที่ปุ่ม


10. คลิกที่ปุ่ม


11. คลิกที่ปุ่ม


12. คลิกที่ปุ่ม

13. ทำการเขียนโค้ดโปรแกรมให้เสร็จเรียบร้อย
14. คลิกที่ปุ่ม


15. เลือกตำแหน่งเก็บในช่อง Save in ในที่นี้เก็บไว้ที่ C:\LCD
16. ตั้งชื่อในช่อง File name ตามต้องการ ในที่นี้ตั้ง lcd.ams
17. คลิกที่ปุ่ม


18. จากนั้น ปิดไฟล์ที่เขียนโค้ด แล้วคลิกขวาที่ Source Files > Add Files

19. เข้าไปในตำแหน่งเก็บโค้ดโปรแกรม
20. คลิกที่ไฟล์ lcd
21. คลิกที่ปุ่ม


22. คลิกที่ปุ่ม

23. ถ้า Build ผ่าน โปรแกรมจะขึ้นคำว่า BUILD SUCCEEDED ก็เป็นอันใช้ได้

24. เมื่อเขียนโปรแกรมเสร็จแล้ว ให้เปิดโปรแกรม ISIS ขึ้นมา จากนั้นนำอุปกรณ์ 16F877 และ LM016L มาต่อวงจรให้ได้ดังรูป ซึ่งอุปกรณ์หาได้จากตารางข้างล่างนี้ จากนั้นดับเบิ้ลคลิกที่ 16F877


25. จากนั้นดับเบิ้ลคลิกที่ IC PIC แล้วคลิกที่ปุ่ม

26. เมื่อเลือก HEX File เสร็จแล้ว คลิกที่ปุ่ม


27. แล้วคลิกที่ปุ่ม


NOTE
ถ้าต้องการเปลี่ยนอักษรสามารถเปลี่ยนได้ที่โค้ดโปรแกรม ตามต้องการ
NOTE
ตัวอย่างโค้ดโปรแกรม แสดงอักษรบนจอ LCD สามารถดาวน์โหลดผ่านอินเตอร์เน็ตได้ที่ www.smartlearningweb.com
4.11 จำลองการทำงานไมโครคอนโทรลเลอร์ตระกูล AVR
AVR ย่อมาจากคำว่า Audio Video Receiver แปลว่าเป็น integrated amp ที่มี tuner ซึ่งเราสามารถเข้าไปดูการทำงานของวงจรได้จากตัวอย่าง ที่มีอยู่ในโปรแกรม ISIS นี้ ตัวอย่างนี้จะมี HEX File ไว้แล้วโดยมีขั้นตอนดังนี้
1. เปิดโปรแกรม ISIS ขึ้นมา แล้วคลิกที่ปุ่ม


2. คลิกเลือกที่ช่อง Look in จากนั้นเลือกที่ C:\Program Files\Labcenter Electronics\ Proteus 7 Professional\SAMPLES

3. ดับเบิ้ลคลิกที่โฟลเดอร์ VSM for AVR

4. ดับเบิ้ลคลิกที่โฟลเดอร์ AVR and SED1520

5. แล้วดับเบิ้ลคลิกที่ไฟล์ EW12A03GLY

6. แล้วคลิกที่ปุ่ม


NOTE
HEX. File สามารถเข้าไปเลือกได้ที่ C:\Program Files\Labcenter Electronics\Proteus 7 Professional\SAMPLES for AVR\AVR and SED1520
4.12 การจำลองการควบคุม DC มอเตอร์ด้วย PIC16F628A
ตัวอย่างนี้ จะจำลองการทำงานการหมุนของ DC มอเตอร์ โดยการเขียนโปรแกรมด้วยภาษา C ลงใน PIC16F628A
โค้ดโปรแกรมควบคุม DC มอเตอร์ ที่เขียนด้วยโปรแกรม mikroC

1. อันดับแรกนำอุปกรณ์ จากตารางข้างล่างนี้ มาต่อวงจรให้ได้ดังรูป จากนั้นดับเบิ้ลคลิกที่ PIC16F628A


2. จากนั้นดับเบิ้ลคลิกที่ IC PIC แล้วคลิกที่ปุ่ม

3. เมื่อเลือก HEX File เสร็จแล้ว คลิกที่ปุ่ม


4. แล้วคลิกที่ปุ่ม

NOTE
การจำลองการทำงาน ในงานทางไมโครคอนโทรลเลอร์ชนิดต่าง ๆ นอกจากที่ภายในหนังสือได้อธิบายอย่างคร่าว ๆ แล้ว ท่านสามารถเปิดวงจรจาก SAMPLES ภายในโปรแกรม Proteus เพื่อศึกษาเพิ่มเติมได้อีกด้วย
NOTE
ตัวอย่างโค้ดโปรแกรมการควบคุมDC มอเตอร์ สามารถดาวน์โหลดผ่านอินเตอร์เน็ตได้ที่ www.smartlearningweb.com
4.13 การจำลองวงจรไฟกระพริบดวงเดียว
ตัวอย่างนี้จะจำลองการทำงานวงจรไฟกระพริบดวงเดียว โดยโค้ดโปรแกรมจะถูกเขียนและแปลงเป็น HEX File ด้วยโปรแกรม CCS ซึ่งขั้นตอนการทำมีดังนี้
โค้ดโปรแกรมวงจรไฟกระพริบดวงเดียว ที่เขียนด้วยโปรแกรม


โปรแกรม CCS สามารถหาดาวน์โหลดได้ที่ http://www.microchip.com แล้วทำการติดตั้งให้เรียบร้อย จากนั้นทำตามขั้นตอนต่อไปนี้
1. คลิกที่ปุ่ม


2. ก็จะปรากฏหน้าต่าง PCW ขึ้นมา ให้คลิกที่เมนู Project > PIC Wizard

3. เลือกตำแหน่งเก็บในช่อง Save in ในที่นี้เก็บไว้ที่ C:\EX1
4. ตั้งช่องในช่อง File name ตามต้องการ ในที่นี้ตั้ง LED1
5. คลิกที่ปุ่ม


6. ที่ช่อง Device คลิกเลือกเบอร์ IC ที่ต้องการใช้ ในที่นี้เลือก PIC16F628A
7. คลิกที่ปุ่ม


8. จากนั้นลบโค้ดที่โปรแกรมให้มาให้หมด แล้วพิมพ์โค้ดโปรแกรมที่เราต้องการลงไปใหม่
9. เสร็จแล้ว คลิกที่ปุ่ม


10. คลิกที่เมนู Compile
11. แล้วคลิกที่ไอคอน Compile

12. โปรแกรมก็จะทำการ Compile ให้รอสักครู่

13. ถ้า Compile ผ่าน โปรแกรมก็จะขึ้นคำว่า 0 Error, 0 Warning ก็เป็นอันใช้ได้

14. เมื่อเขียนโปรแกรมเสร็จแล้ว ให้เปิดโปรแกรม ISIS ขึ้นมา แล้วนำอุปกรณ์จากตารางข้างล่างนี้มาต่อวงจรให้ได้ดังรูป จากนั้นดับเบิ้ลคลิกที่ PIC16F628A


15. จากนั้นดับเบิ้ลคลิกที่ IC PIC แล้วคลิกที่ปุ่ม

16. กำหนดค่าความถี่ในช่อง Processor Clock Frequency ตามต้องการ ในที่นี้กำหนด 10MHz
17. เมื่อเลือก HEX File เสร็จแล้ว คลิกที่ปุ่ม


18. แล้วคลิกที่ปุ่ม


NOTE
ตัวอย่างโค้ดโปรแกรมวงจรไฟกระพริบดวงเดียว สามารถดาวน์โหลดผ่านอินเตอร์เน็ตได้ที่ www.smartlearningweb.com
สรุป
การวิเคราะห์จำลองการทำงาน ไมโครคอนโทรลเลอร์ในโปรแกรม Proteus ISIS ไม่ว่าจะเขียนโค้ดโปรแกรมด้วยภาษาอะไรก็ตาม แต่วิธีที่จะเอามาจำลองการทำงานบนโปรแกรม Proteus จะต้องแปลงโค้ดโปรแกรมนั้น ๆ ให้เป็น HEX File เสียก่อน จึงจะสามารถทำการจำลองวงจรได้ ส่วนขั้นตอนการนำ HEX File เข้ามาจำลองบน Proteus ก็จะมีขั้นตอนดังที่ได้อธิบายไว้แล้ว ซึ่งภายในหนังสือเล่มนี้ จะไม่กล่าวถึงวิธีการเขียนโค้ดโปรแกรม แต่จะอธิบายการนำ HEX File เข้ามาจำลองการทำงานเท่านั้น
ไม่มีความคิดเห็น:
แสดงความคิดเห็น