สร้างวงจรไฟกระพริบอย่างง่าย (2 LED Blink)

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

จากวงจรจะเห็นว่ามีเพียงอุปกรณ์ไม่กี่ตัวเท่านั้น มีทรานซิสเตอร์ (TR) 2 ตัว BC547 ตัวต้านทาน (R) อีก 5 ตัว ตัวเก็บประจุอิเล็กทรอไลต์ (C) 2 ตัว และสุดท้าย LED อีก 2 ตัว

ใครจะต่อลงแผ่นปริ๊นอเนกประสงค์หรือต่อลง Proto board ก็สะดวกทั้งสองอย่างครับ แต่ผมต่อลง Proto board เอา ง่ายดี

เมื่อต่อเสร็จแล้วลองจ่ายไฟ 12V เข้าที่ VPP ดูจะเห็น LED 2 ดวงกระพริบสลับกันไป เป็นวงจรกำเนิดความถี่ต่ำ วงจรมัลติไวเบรเตอร์(Multivibrator) ลองปรับ R5 ดูก็จะเห็นว่า LED กระพริบเร็วขึ้นหรือช้าลง

ว่างๆมาลองต่ออะไรเล่นๆแบบนี้ก็สนุกดีเหมือนกัน :)

รวมคำถาม-คำตอบ ไมโครคอนโทรลเลอร์ที่ถามกันบ่อย

บทความนี้ผมจะรวบรวมคำถามที่เจอบ่อยๆในหมวด Microcontroller,? Electronics มาตอบให้ตามความรู้และประสบการณ์ของผม หากสงสัยอะไรก็ comment ด้านล่างมาถามได้ครับ หากตอบได้ก็จะตอบให้ หรือไม่รู้ก็จะพยายามหามาตอบให้ครับ

1. ทำไมต้องใช้คริสตอลความถี่ 11.0592 MHz ในวงจร Microcontroller MCS-51 ด้วย

- เพราะเป็นค่า XTAL ที่คำนวน Baud rate ในการรับ/ส่งข้อมูลแบบ Asynchronous (UART) ได้เลขที่ลงตัว เช่น Baud rate 19,200 9,600 4,800 2,400 bps

2. Microcontroller ตระกูลไหนดีที่สุด

- ในความเป็นจริง ไม่มีตัวไหนดีที่สุดในทุกๆด้าน แต่ละตระกูลก็มีจุดเด่นจุดด้วยต่างกันไป เช่น ตระกูล MCP ของ Texus Instrument (TI) มีจุดเด่นเรื่องกินไฟต่ำ แต่ develepe tool ไม่แพร่หลาย มีคนใช้น้อย, ตระกูล MCS-51 ใช้งานง่ายเป็นที่แพร่หลาย ราคาถูก แต่ไม่ทน noise ต้องต่ออุปกรณ์ interface มาก ฯลฯ

3. จริงไหมที่ Microcontroller MCS-51 ไม่ทน noise

- จากประสบการณ์ การทำงานของผม ทำเครื่องมือวัดในโรงงานอุตสาหกรรมซึ่งมี noise รบกวนมาก ถ้าให้ออกแบบเครื่องมือวัดที่ทำงานเหมือนกัน ออกแบบดีที่สุดเหมือนกัน MCS-51 จะไม่ค่อยผ่าน noise แต่ถ้าเป็นพวก PIC, AVR จะทำงานได้

เมื่อเจอ noise MCS-51 จะแฮงค์ แต่ข้อดีของ MCS-51 คือเวลาต่อไฟกลับขั้วหรือไฟเกินมานิดหน่อยจะไม่พัง ในขณะที่ PIC จะพังทันที

4. สถาปัตยกรรมแบบ CISC (Complex Instruction SetComputer) เป็นยังไง

- เป็นสถาปัตยกรรมที่มีคำสั่งใช้งานมากเป็นร้อยคำสั่ง เป็นสถาปัตยกรรมในยุคแรกของคอมพิวเตอร์ ในแต่ละคำสั่งจะใช้ cycle ในการประมวลผลไม่เท่ากัน ตามความซับซ้อนของการประมวลผล ข้อดีคือมีคำสั่งให้เลือกใช้มาก การพัฒนาด้วยภา๋ษา Assemble จะทำได้ง่ายกว่าสถาปัตยกรรมแบบ RISC

5. สถาปัตยกรรมแบบ RISC (Reduced Instruction Set Computing) เป็นยังไง

- เป็นสถาปัตยกรรมที่มีคำสั่งใช้งานน้อย ส่วนมากจะไม่กี่สิบคำสั่ง เช่นคำสั่งบวก, ลบ, (บางตระกูลก็ไม่มีคูณและหาร), กระโดด (jump), เปรียบเทียบ (compare) ด้วยเหตุที่ว่ามีชุดคำสั่งน้อยทำให้มีโครงสร้าง Microcontroller ไม่ซับซ้อน ผลที่ได้ตามมาคือกินไฟน้อย และทำงานได้เร็ว Microcontroller แบบ RISC จะมีเทคนิคที่เพิ่มความเร็วในการประมวลผลเรียกว่า Pipeline โดยจะทำการประมวลผลคำสั่งแบบขนานกันไป

สมมุติว่า 1 คำสั่งใช้เวลา 5 cycle ในการประมวลผล ในขณะที่กำลังจบ cycle 1 ของคำสั่ง 1 ใน cycle ต่อไปจะประมวลผล cycle 2 ของคำสั่ง 1 และ cycle 1 ของคำสั่ง 2 ขนานกันไป n ชั้น โดนที่ n คือจำนวนชั้นของ Pipeline ที่มี Microcontroller นั้น

ข้อเสียของ RISC คือทำให้ผู้ใช้งานเขียน code ยากขึ้น (ถ้าใช้ assembly) เนื่องจากต้องใช้หลายคำสั่ง เช่น PIC ตระกูล 16Fxxx ไม่มีคำสั่งคูณ ต้องใช้วิธี Shift bit เอาหรือไม่ก็บวกกันหลายๆที ทำให้เปลือง memory ด้วย

ในอนาคตมีแนวโน้มจะไปพัฒนาสถาปัตยกรรมทางด้าน RISC มากกว่า CISC

สอนการใช้งาน Protel99SE ตอนที่ 2 เริ่มออกแบบด้วย Schematic

หลังจากที่ตอนที่แล้ว สอนการใช้งาน Protel99SE ตอนที่ 1 เริ่มใช้งาน ความรู้เบื้องต้นในการออกแบบ PCB อย่างน้อยคงเปิดโปรแกรมโปรแกรมใช้งานเป็นกันแล้วใช่ไหมครับ วันนี้เราจะมาต่อด้วยการสร้าง Schematic

Schematic คืออะไร? Schematic คือวงจรที่เราออกแบบจะประกอบไปด้วยอุปกรณ์อิเล็กทรอนิกส์ต่างๆ ผมอาจจะอธิบายได้ไม่ชัดเจนมาดูรูปตัวอย่าง Schematic กันดีกว่าครับ

ให้เปิดโปรแกรม Protel99SE ขึ้นมาแล้ว สร้าง sample.Ddb ขึ้นมา (ถ้าจำไม่ได้ให้เริ่มต้นจากตอนที่ 1) จากนั้นให้สร้าง Schematic Document ขึ้นมา

กด Add/Remove เพื่อเพิ่ม Library อุปกรณ์ (ทำครั้งแรกเพียงครั้งเดียว) โดยปกติแล้ว Library จะอยู่ที่ C:\Program Files\Design Explorer 99 SE\Library\Sch

ทำการ Add C:\Program Files\Design Explorer 99 SE\Library\Sch\International Rectifier.ddb และ

C:\Program Files\Design Explorer 99 SE\Library\Sch\Miscellaneous.ddb หรือใครจะ Add มากกว่านี้ก็ได้ครับ เลือกตัวที่เกี่ยวข้องกับงานของเรา

เสร็จแล้วก็ OK จะกลับมาที่หน้าจอ Schematic

ในการใช้งานให้เราเลือกอุปกรณ์ทางด้านซ้ายมือ แล้วกด place เพื่อไปวางใน Schematic ผมยกตัวอย่างเป็นวงจรไฟกระพริบ 2 สี

- ตัวต้านทานให้เลือก Miscellaneous Devices.lib คลิก RES1 แล้วกดปุ่ม Place มาวางบนพื้นที่ Schematic

- Transistor NPN ให้เลือก Miscellaneous Devices.lib คลิก NPN แล้วกดปุ่ม Place มาวางบนพื้นที่ Schematic

- Capacitor แบบมีขั้ว ให้เลือก Miscellaneous Devices.lib คลิก CAPACITOR แล้วกดปุ่ม Place มาวางบนพื้นที่ Schematic

- LED ให้เลือก Miscellaneous Devices.lib คลิก LED แล้วกดปุ่ม Place มาวางบนพื้นที่ Schematic

- Trimpot ให้เลือก Miscellaneous Devices.lib คลิก POT1 แล้วกดปุ่ม Place มาวางบนพื้นที่ Schematic

การกลับด้านของอุปกรณ์ให้ Double Click ที่อุปกรณ์เลือก Tab Graphical Attrs ติ๊กที่ Mirrored

หลังจากเลือกอุปกรณ์มาวางหมดแล้ว เราจะใช้ PlaceWire ใน WiringTools ในการลากเส้นเชื่อมระหว่างอุปกรณ์ ในการลากเส้นถ้าต้องการยกเลิกการลากเส้นให้คลิกขวา

เมื่อลากเส้นจนครบแล้ว บางคนอาจจะสงสัยว่า VCC, GND เลือกได้จากไหน

ให้เลือก PlacePowerPort แล้วมาวางที่ Schematic จากนั้น double click แล้วตั้งชื่อ Net ใหม่เช่น GND แล้ว Style ให้เหมาะสม อย่าง GND จะเลือก Power Ground ส่วน VPP ก็อาจจะเลือก Bar หรือ Circle ก็ได้

หลังจากที่ลากสาย ใส่ GND, VPP กันแล้วก็มาใส่ค่าของอุปกรณ์กันต่อ อย่าง RES1 เราก็ใส่ 1K ใส่ไปจนครบ จะสังเกตุเห็นได้ว่า อุปกรณ์ทุกตัวจะมีเครื่องหมาย ? อยู่ เราจะใส่ลำดับอุปกรณ์ลงไปได้สองวิธี

1. วิธี manual ใช้เม้าส์ double click แล้วใส่ตัวเลขเข้าไปเลยเช่น R? เราก็ double click แล้วเปลี่ยนเป็น R1 ได้เลย วิธีนี้จะต้องใส่ลำดับไปทุกตัวเลย ถ้ามีอุปกรณ์ซักสิบตัวคงไม่เท่าไหร่ แต่ถ้ามีเป็นร้อยเป็นพันตัวในวงจร คงไม่กันไม่ไหวแน่ มาดูวิธีที่ 2

2. ใส่แบบอัตโนมัติ protel99se มีตัวช่วยใส่ลำดับอุปกรณ์ได้โดยอัตโนมัติ ให้เข้าไปที่ Tools –>Annotates… ในส่วนของ Annotate Options ให้เลือก ? Parts หมายความว่าให้เรียงลำดับอุปกรณ์เฉพาะตัวที่มีเครื่องหมาย ?

รูปแบบการเรียงลำดับอุปกรณ์ก็เลือกได้จาก Re-annotate Method จากรูปถ้าเลือก 4 Across then down จะเป็นการเรียงเลขในลักษณะ ซ้ายไปขวา บนลงล่าง เสร์จแล้วก็กด OK เลยครับ Protel จะสร้างไฟล์ลำดับอุปกรณ์ขึ้นมาอีกไฟล์เป็นนามสกุล .REP

กลับมาดูที่หน้า Schematic ใหม่จะเห็นว่ามีตัวเลขใส่ไปในอุปกรณ์แล้ว เท่านี้ก็เสร็จสิ้นการสร้าง Schematic เห็นไหมครับว่าไม่ยากเลย ในตอนต่อไปเราก็จะมาสร้าง Net และเดินลาย PCB กัน หากลองทำตามแล้วติดขัดตรงไหน comment มาถามได้ ถ้าอันไหนรู้ก็จะตอบให้ครับ