วันพฤหัสบดีที่ 29 พฤษภาคม พ.ศ. 2557

ประเภทของ PIC ไมโครคอนโทรลเลอร์

ประเภทของ PIC ไมโครคอนโทรลเลอร์ 

ไมโครคอนโทรเลอร์ PIC แบ่งตามชนิดของหน่วยความจำได้ 3 ประเภท คือ

1. OTP(One-Time Programmable) เป็นชิพที่ราคาถูกที่สุด แต่สามารถทำโปรแกรมได้แค่ครั้งเดียวเท่านั้น ซึ่ง ชิพประเภทนี้จะใช้พัฒนาโปรแกรมจนไม่พบจุดบกพร่องของโปรแกรมอีกแล้วและต้องการใช้งานจำนวนมากๆ เพราะราคาที่ถูก ชิพประเภทนี้ยกตัวอย่าง เช่น PIC12C509 ,PIC12C672,PIC16C84,PIC16C75
2.อีพรอม (EPROM : Erasable Programmable Read Only Memory) เป็นชิพประเภทที่เมื่อเขียนเข้าไปแล้วสามารถลบโปรแกรมเดิมได้ด้วยแสง ยกตัวอย่าง เช่น PIC16C57,JW,PIC16C72A
3.อีอีพรอม (EEPORM : Electrically Erasable Programmable Read Only
Memory) หรือที่เรียกว่า แฟลช ชิฟประเภทนี้สามารถลบและเขียนด้วยไฟฟ้า เช่น PIC12CF510,PIC16F84,PIC16F877

เบอร์ของ PIC
 เบอร์ของ PIC บอกความหมาย
    1.ตัวเลขสองตัวแรกเป็น 10-18 เป็นคอนโทรเลอร์ 8 บิต เป็น 24-33 (ยกเว้น 32)เป็นคอนโทรเลอร์ 16 บิต ส่วน 32 เป็นคอนโทรเลอร์ 32 บิต
   2.ถัดจากตัวเลขสองตัวแรก จะเป็นตัวอักษรบอกลักษณะหน่วยความจำ
C   = EPROM
CR = ROM
CE = One-Time Programmable EPROM EEPORM
F   = Flash
HV = High Voltage (15V )
LF  = Low  Voltage Flash
LC = Low Voltage One-time programeble
LCR= Low Votage Rom
   3.ตัวเลขถัดมาบอกประเภทของเบอร์นั้น
   4.กรณีที่มี (-) ขีด จะบอกความถี่สัญญาณนาฬิกาที่สูงที่สุด
   5.ตัวอักษรถัดมาจะบอกอุณหภูมิทำงานได้
C=0 ถึง 85 c
I= -40 ถึง 85 c
E= -40 ถึง 125 c
   6. สุดท้าย หลัง (/) บอกชนิดตัวถัง(Package)
JW=Cearamic window(EEROM only)
P= Plastic DIP
SN,OA,SM,SL,OD,SO,SI =SOIC plastic small outline(surface mount)
PQ= QFP-Plastic quad flatpack surface mount
SS=SSOP-Plastic shrink small outline surface mount
ML=Chip scale package
ST=TSSOP-Plastic thin shrink small outline surface mount
PT=TQFP-Plastic thin quad fatpack

PIC ไมโครคอนโทรลเลอร์

PIC ไมโครคอนโทรลเลอร์

PIC microcontroller
                      ไมโครคอนโทรลเลอร์เกิดจากคำสองคำที่นำมาผสมกัน นั่นคือคำว่า “ไมโคร” รวมกับคำว่า “คอนโทรลเลอร์” คำว่า ไมโคร คือ คำอุปสรรค (prefixes) เมื่อค่าในหน่วยฐานหรือหน่วยอนุพัทธ์น้อยหรือมากเกินไปเราอาจเขียนค่านั้นอยู่ในรูปตัวเลขคูณ ด้วย ตัวพหุคูณ (ตัวพหุคูณ คือ เลขสิบยก
กำลังบวกหรือลบ) ได้ตัวอย่างเช่น ระยะทาง0.002 เมตร เขียนเป็นเมตรแทนด้วยคำอุปสรรค มิลลิ (m) ดังนั้นระยะทาง 0.002 เมตร อาจเขียนได้ ว่า 2 มิลลิเมตร คำอุปสรรคที่ใช้แทนตัวพหุคูณและสัญลักษณ์ แสดงไว้ในตาราง SI (The International System of Units) ซึ่งในที่นี้ใช้คำว่าไมโครมีค่าเท่ากับ ซึ่งน้อยมาก ส่วนคำว่าคอนโทรลเลอร์ก็คือตัวควบคุม หากรวมกันแลว้ นั่นก็หมายความว่า ตัวควบคุมที่มีขนาดน้อยมากหรือเล็กมาก ไมโครคอนโทรลเลอร์จะมีให้เลือกมากมายหลายตระกูลและหลายบริษัท เช่นไมโครคอนโทรลเลอร์ตระกูล MCS-51ของบริษัท Philips ไมโครคอนโทรลเลอร์ ตระกูล AVR ของบริษัท ATMEL และไมโครคอนโทรลเลอร์ตระกูล PIC ที่บริษัท Micro chip เป็นผูผ้ ลิต
                ไมโครคอนโทรลเลอร์ตระกูล PIC ได้ถูกพัฒนามาอย่างต่อเนื่อง จนสามารถนำมาใช้งานในการควบคุมได้อย่างหลากหลาย เนื่องจากมีคุณสมบัติที่ครบครัน อีกทั้งยังง่ายต่อผูที้่เริ่มเรียน คือสามารถที่จะเรียนรู้ได้ง่ายและสามารถนำไปใช้งานได้จริง เนื่องจากมีประสิทธิภาพที่สูง ราคาถูก เป็นที่นิยม และมีให้เลือกมากมายหลายเบอร์


ความเป็นมาของ PIC
ในปี ค.ศ. 1977 บริษัท General Instrument หรือบริษัทไมโครชิพในปัจจุบัน ได้มีการผลิตไมโครคอนโทรลเลอร์ PIC (Peripheral Interface Controller) ออกมาวางจำหน่าย PIC เบอร์แรกที่ผลิตออกมาก็คือ PIC1650 การออกแบบ PIC จะยึดถือการออกแบบที่ว่ารวมทุกอย่างไว้ใน chip ตัวเดียวโดยไม่ตอ้ งต่ออุปกรณ์ใดๆ เพิ่มเติม ได้แก่ หน่วยประมวลผลกลาง (CPU) หน่วยความจำโปรแกรม, หน่วยความจำข้อมูล, Timer, EEPROM,Feedback Control, , CCP, ADC (analog to digital convertor) เป็นตน้ ผลที่ตามมาก็คือแผ่นวงจรจะมีขนาดเล็ก และอุปกรณ์ที่ ใช้จะไม่มาก บางงานอาจจะใช้แค่ PIC เพียงตัวเดียวโดยไม่ต้องใช ้ chip อื่นมาเพิ่มเติมเลย นี่คือคุณสมบัติพิเศษของ PIC ซึ่งปัจจุบันหลายบริษัทที่ผลิต
         microcontroller ก็เริ่มจะหัดมาเลียนแบบแนวทางนี้ครับ แต่ทุกอย่างย่อมมีขอ้ เสีย เนื่องจาก concept ที่จะรวมทุกอย่างไวใ้ น chip เดียว ทำให้ program memory และ data memory ไม่สามารถขยายโดยใชกั้บ memory ภายนอกไดใ้ นทางทฤษฎี PIC จึงเหมาะสำหรับงานเล็กๆ ไม่ใช่งานใหญ่ๆ ที่ต้องใช ้การคำนวณ memory เยอะๆ ความเร็วในการทำงานของ PIC ปัจจุบันสัญญาณนาฬิกาสูงสุดของ PIC มีค่าเท่ากับ 20 MHz ดังนั้นหนึ่งคำสั่งของ PIC ใช ้
เวลาเพียง 0.25 usec
         ในปัจจุบันนี้ PIC ไดถู้กนำมาประยุกต์ใช้งานกันอย่างแพร่หลายในเครื่องมือต่างๆ ตัวอย่างเช่น การนำมาควบคุมการแสดงผลของจอแสดงผล,การนำมาส่งสัญญาณเพื่อสร้างคลื่นพาห์สำหรับการส่งอินฟราเรด, การนำมาควบคุมการปิด-เปิดสวิตช์ด้วยสัญญาณคลื่นวิทยุ, การนำมาควบคุมในเตาหุงต้ม เหนี่ยวนำความร้อน, การนำมาควบคุมวงจรจุดชนวนอุปกรณ์อิเล็กทรอนิกส์กำลัง, การนำมาควบคุมหุ่นยนต์ เป็นต้น
ลำดับขั้นตอนการใช้งาน PIC

การเขียนโปรแกรมภาษาซี
การเขียนโปรแกรมภาษาซีสำหรับ PIC จะมีหลากหลายโปรแกรมให้เลือกใช ้ตัวอย่างเช่นโปรแกรม MikroC for PIC,โปรแกรม PIC Basic PRO,โปรแกรม C Compilerและโปรแกรม CCS ‘C’ Compiler ซึ่งจะเป็นภาษาซีที่แตกต่างกันไม่มากนัก ส่วนในหนังสือเล่มนี้จะใชโ้ ปรแกรม CCS ‘C’ Compiler เนื่องจากโปรแกรมนี้ใช้ภาษาซีที่ผู้อ่านสามารถทำความเข้าใจได้ง่ายมากกว่าโปรแกรมอื่นๆ มีการพัฒนาโปรแกรมมาอย่างต่อเนื่อง มีฟังก์ชัน ต่างๆให้เลือกใช้งานมากมาย จึงเหมาะสมกับผู้เริ่มต้น เช่น ฟังก์ชันLCD.C ที่ผู้ออกแบบโปรแกรมได้เขียนเอาไว้ในไฟล์ driver มาอ้างอิง เพื่อที่จะเป็น
การอำนวยความสะดวกให้ผู้ศึกษาสามารถดึงไฟล์ driver ตัวดังกล่าวมาใช้ได้เลย อีกทั้งโปรแกรมนี้เป็นที่นิยมเป็นอย่างมาก จึงทำให้เกิดการแชร์ประสบการณ์ของนักเขียนโปรแกรมต่างๆ มีการแลกเปลี่ยนความคิด ร่วมกันปรึกษาปัญหาในการออกแบบและแก้ไขโปรแกรม และทำให้เกิดกระบวนการเรียนรูที้่พัฒนามากยิ่งขึ้นไป

การจำลองการทำงาน (Simulation)
การจำลองการทำงานบนคอมพิวเตอร์ดว้ ยโปรแกรม PROTEUS เป็นโปรแกรมจำลองการทำงานของวงจรไฟฟ้าและสามารถออกแบบแผ่นปริ้นท์ได้อีกด้วย โปรแกรมนี้จะช่วยให้ผู้เขียนโปรแกรมสามารถดูผลการทำงานของโปรแกรม ก่อนที่จะทำการอัดโปรแกรมลงในตัวชิพ จึงช่วยใหผู้เ้ ขียนโปรแกรมสามารถตรวจสอบข้อผิดพลาดของโปรแกรมได้ ในโปรแกรมจะประกอบไปด้วยอุปกรณ์ต่างๆ ให้เลือกใช้มากมายตัวอย่างเช่น หลอด LED สีต่างๆ สวิตซ์ ปุ่มกด ตัวต้านทาน ตัวเหนี่ยวนำ ตัวเก็บประจุ แบตเตอร์รี่ 7-Segment จอแอลซีดี มอเตอร์ต่างๆ รวมไปถึงเครื่องมือวัดต่างๆ เช่น oscilloscope, voltmeter, Amp meter

การถ่ายโอนชุดคำสั่งจากคอมพิวเตอร์สู่ PIC (Compiler)
การถ่ายโอนชุดคำสั่งหรือคอมไพเลอร์นั้น มีอยู่ 2 วิธีคือ 1)โปรแกรมผ่านพอร์ตอนุกรมและ 2)โปรแกรมผ่านพอร์ต USB ซึ่งการเลือกใช้ว่าจะโปรแกรมด้วยวิธีไหนนั้นขึ้นอยู่กับความสะดวกของผู้ใช ้ เนื่องจากคอมพิวเตอร์ Note Book รุ่นใหม่ๆจะไม่มีพอร์ตอนุกรม การโปรแกรมผ่านพอร์ต USB จึงง่ายกว่า
และสะดวกกว่าสำหรับคอมพิวเตอร์Note Book การโปรแกรมผ่านพอร์ต USB นั้น จะใช้บอร์ด Pic kit 2 และจะต้องใช้ควบคู่กันกับโปรแกรม PicKit 2

การนำ PIC ไปต่อใช้งาน
การต่อใช้งานไมโครคอนโทรลเลอร์ PIC นั้น เป็นเรื่องง่ายมาก เนื่องจากทางบริษัทไมโครชิพมีแนวคิดคือการพยายามรวมเอาทุกอย่างไว้ในชิพตัวเดียวกัน การต่อเพิ่มเติมจึงมีไม่มาก เพียงจ่ายไฟเลี้ยงให้ต่อวงจรสร้างสัญญาณนาฬิกา และวงจรรีเซ็ตเป็นวงจรพื้นฐานเท่านั้น ซึ่งในแต่ละการทดลองจะมีบอกไว ้อาจจะมีการเชื่อมต่อหน่วยความจำจากภายนอกก็ต่อเมื่อใช้งานมากขึ้นเท่านั้น เช่นการเชื่อมต่อกับไอซีที่บอก วัน/เดือน/ปี ในงานที่จำเป็นต้องเชื่อมต่อเช่น การสร้างนาฬิกาดิจิตอลเป็นต้น

วันจันทร์ที่ 26 พฤษภาคม พ.ศ. 2557

PLC

 PLC ย่อมาจาก โปรแกรมเมเบิลคอนโทรเลอร์ (Programmable Logic Controller)

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

หลักการทำงานของ PLC

2.1 โครงสร้างและส่วนประกอบของโปรแกรมเมเบิลคอนโทรลเลอร์ มีดังนี้
หน่วยประมวลผลกลาง (CPU: Centrn Proeessing Unit)
หน่วยความตจำ Memory Unit
หน่วยอินพุต (Input Unit)
หน่วยเอาต์พุต (Output Unit)
หน่วยติดต่อกับระบบภายนอก (Perpheral Dvrice)
2.2 หน้าที่และหลักการทำงานส่วนประกอบของโปรแกรมเมเบิลคอนโทรเลอร์
หน่วยประมวลผลกลาง(Cpu: Central Procssing Unit) หน่วยประเมิลผลกลางเป็นสว่นสำคัญที่ควบคุมการทำงานของ โปรแกรมเมเบิลคอนโทรเลอร์ ( Plc) มีไมโครเซ็ทเซอร์เป็นสมองสั่งงาน

หน้าที่หลัก คือ รับข้อมูลหรือโปรแกมจากอินพุต มาประมวลผลอีกทำเช่นนี้ซํ้าเรื่อยๆไปจนกว่าหยุดจ่ายไฟให้กับPLC การ มวลผลโดยการอ่านครบหนึ่งรอบเราเรียกว่าการสแกน (Scan)ซึ่งถ้าใช้เวลาจำนวนหนึ่งในารสแกนเรียกว่าการ สแกนไทม ์(Scan Time) เวลาในการสแกนเวลาในการสแกนแต่ละรอบใช้เวลาประมาณ 1 ถึง 100 msec(10 msec) ทั้งนี้ยังยังขึ้นอยู่กับขนาดหน่วยความจำ และความเร็วของหน่วยประเมิลผล รวมถึงจำนวนโปรแกรมที่ป้อน เข้าไปในCPU
หน่วยความจำ(Memory Unit) หน่วยความจำทำหหน้าที่สำคัญคือเก็บโปรแกรมและคำสั่งจัดเป็นโปรแกรมขนาดของหน่วยความจำเป็นความ สามรถในการจัดเก็บโปรแกรมในการเก็บโปรแกรมมีขนาดวัดเป็นบรรทัดของโปรแกรมหรือจำนวนStep โปรแกมเมเบิลคอนโทรเลอร์(Plc)แบ่งหน่วยความจำที่สำคัญเป็น 2 ส่วนดว้ยกันคือ
1. หน่วยความจำระบบ(Systm Memory) หน่วยความจำระบบเป็นส่วนที่เก็บโปรแกรมบริหารระบบและระบบข้อมูลที่ไม่อนุญาติให้ผู้ใช้
2. หน่วยความจำผู้ใช้(User Memory) ความจำส่วนที่ทำหน้าที่เก็บโปรแกรมผู้ใช้เก็บข้อมูล อินพุต เอาพุต และอุปกรณ์ภายในสามารถทำ การแก้ไข เปลี่ยนแปลง ข้อมูลได ้ส่วนใหญ่เป็นชนิดหน่วยความจำRAM
ชนิดของหน่วยความจำ
หน่วยความจำ RAM (Ramdom Access Memory) เป็นหน่วยความจำที่สามารเปลี่ยนแปลงแก้ไขข้อมูลได้หน่วยความจำนี้แบตเตอร์รี่เล็กๆต่อไว้เพื่อนำไปเลี้ยงข้อมูลเมื่อเกิดไฟดับข้อมูลจะยังอยู่การอ่านและเขียนโปรแกรมจะทำ ได้ง่ายเหมาะกับงานที่มีการเปลี่ยนข้อมูลบ่อยๆส่วนใหญ่เป็นการเก็บโปรแกรมในช่วงพัฒนา
หน่วยความจำROM (Read Memory) เป็นหน่วยความจำไม่สามรถเปลี่ยนแปลงแก้ไขข้อมูลภายในได้ง่าย หน่วยความจำนี้เมื่อไม่มีกระแสไฟเลี้ยงก็ยังคงเก็บโปรแกรมข้อมูลไว้ได้หน่วยความจำนี้จะอ่านโปรแกรมได้อย่างเดียว
ผู้ใช้ไม่สามารถเขียนโปรแกรมเข้าไปได้เหมาะสมสำหรับใช้เป็นโปรแกรมบริหารระบบเป็นโปรแกรมที่เสร็จสิ้นสมบูรณ์
หน่วยความจำ EPROM (Erable Programmable Read Only) หน่วยความจำชนิดนี้ต้องใช้เครื่องมือพิเศษ
ในเขียนโปรแกรมเครื่องมือเขียนโปรแกรมนี้เรียกว่าPROM WRITEหน่วยความจำEPROMใช้เก็บโปรแกรมที่มีการพัฒนา
ที่สมบรูณ์ดีแล้วที่ไม่มีการเปลี่ยนแปลงแก้ไขอีกเมื่อไฟดับโปรแกรมที่เก็บไว้จะไม่มีการสูญหายถ้าจะลบโปรแกรมต้องใช้
ใช้เครื่องลบโปรแกรม หรือใช้แสงอุนต้าไวโอเลต
หน่วยความจำEEPROM (Electrical Erasable Programable) หน่วยความจำชนิดนี้ชนิดนี้เหมาะสำหรับเก็บโปรแกรม
ที่พัฒนาสมบรูณ์แบบแล้วหน่วยความจำนี้มีลักษณะคล้ายหน่วย่ความจำEPROMเมื่อเกิดไฟดับโปแกรมนี้จะไม่สูญหายเช่นกัน
การอัดโปรแกรมเข้าไปใช้เครื่องอัดชนิดพิเศษ ในการลบโปแกรมและข้อมูลนั้นทำได้โดยใช้วิธีการป้อนสัญญานพลัส์
ในการลบข้อมูลนั้นไม่จำเป็นต้องลบหมดก็ได้
2.3 หน่วยอินพุต(Input Unit) หน่วยอินพุตทำหน้าที่เชื่อมต่อระหว่างอุปกรณ์ภายนอกกับPLC
หน้าที่ของหน่วยอินพุตได้ดังนี้
แปลงระดับสัญญาณจากภายนอกให้เหมาะสมกับระบบการทำงานของCPU
แบ่งสัญญาณภายนอกและภายในออกจากกัน เพื่อป้องกันไม่ให้หน่วยประเมิลผลเกิดการเสียหายเมื่อหน่วยอินพุตลัดวงจร
แก้ปัญหาการสั่นสะเทือนของหน้าสัมผัสได้
หน่วยอินพุตมี 2 ประเภทดว้ยกันคือ หน่วยอินพุตกระแสตรงและหน่วยอินพุตกระแสสลับ
2.4 หน่วยเอาต์พุต(Output Unit) หน่วยเอาต์พุตจะทำหน้าที่เชื่อมต่อระห่วาง CPU อุปกรณ์ภายนอกโดยให้ค่าสภาวะต่างๆแก่อุปกรณ์ด้านเอาต์พุตซึ่ง อยู่ในลักษณะ ของการเปิดและปิดเท่านั้นหน้าที่หลักของเอาพต์พุตก็๋คือ
รับสัญญาณจากCPU
แยกสัญญานระหว่าง CPU กับอุปกรณ์ภายนอก
ขยายสัญญาณให้มีค่าสูงส่งออกไปยังเอาต์
หน่วยเอาพุตแบ่งได้เป็น 2 ประเภทคือ
1. หน่วยเอาต์พุตกระแสตรง และ2. หน่วยเอาต์พุตกระแสสลับ หน่วยเอาต์พุตบางประเภทใช้ได้ทั้งไฟฟ้ากระแสตรงและสลับ
2.5 หน่วยติดต่อกับระบบภายนอก เป็นอุปกรณ์ที่อำนวยความสะดวกในการพัฒนาโปรแกรมสามมาถใช้PCชนิดเดียวกันได้หลายเครื่อง
หน้าที่ของอุปกรณ์ภายนอกคือ
ใช้ป้อนโปรแกรมเข้าไปในหน่วยความจำ
ใช้ในการแก้ไขโปรแกรม
ใช้ในการเก็บรักษาโปรแกรม
ใช้ในการพิมพ์โปรแกรม
ใช้ในการแสดงสภาวะการควบคุม
อุปกรณ์ติดต่อภายนอกมีหลายชนิดได้แก่
PROGRAM PANEL UNIT
CRT , MONITOR
AUDIO CASSETTE
EPROM WRITER
GRAPHIC PLOTTER
      

ระบบการควบคุม

ระบบการควบคุม



  คือ รูปแบบของระบบใด ๆ ที่มีการจัดองค์ประกอบต่าง ๆ ภายในระบบเพื่อให้มีผลตอบสนองของระบบเป็นไปตามที่ต้องการ ส่วนมากอาศัยพื้นฐานทฤษฎีระบบเชิงเส้นมาช่วยในการวิเคราะห์ พิจารณาถึงความสัมพันธ์ระหว่างเหตุผล (Cause effect) ของแต่ละองค์ประกอบของระบบ ซึ่งองค์ประกอบที่สำคัญ 3 ส่วนดังนี้

  1) วัตถุประสงค์ของการควบคุม (Input)
  2) กระบวนการ ขั้นตอน หลักที่ใช้ในการควบคุม (Process)
  3) ค่าที่ได้รับจริง (Output)

ประเภทของการควบคุม

1) ระบบควบคุมแบบเปิด (Open-loop control system)
2) ระบบควบคุมแบบปิด (Closed-loop control system)

1) ระบบควบคุมแบบเปิด (Open-loop control system)
                เป็นระบบที่ค่าเอาต์พุตไม่มีผลต่อการควบคุมขบวนการของระบบ คือ ไม่มีการนำเอาค่าเอาต์พุตที่ได้กลับมาเปรียบเทียบกับค่าอินพุตที่ป้อนให้กับระบบ
- ไม่มีการนำสัญญาณทางด้านเอาต์พุตป้อนกลับทางด้านอินพุต
- ระบบไม่มีความซับซ้อน
- ระบบใช้กับงานที่ไม่ต้องการความแม่นยำ
- เป็นระบบควบคุมที่ประหยัด
2) ระบบควบคุมแบบปิด (Closed-loop control system)
            เป็นระบบที่นำสัญญาณจากเอาต์พุตของระบบ ป้อนกลับมาเปรียบเทียบกับสัญญาณอินพุตที่ป้อนให้กับระบบ ซึ่งผลต่างระหว่างสัญญาณทั้งสองที่นำมาเปรียบเทียบนั้นจะเป็นค่าผิดพลาด (Error) เพื่อที่จะใช้เป็นสัญญาณป้อนเข้าตัวควบคุม (Controller)  ให้ตัวควบคุมนำไปสร้างสัญญาณควบคุมใหม่เพื่อลดความผิดพลาดที่เกิดขึ้นในระบบและทำให้เอาต์พุตของระบบเข้าสู่ค่าที่ต้องการ (Set point)
วิธีการควบคุมแบบป้อนกลับ
      1. วิธีไฮดรอลิก ได้แก่ การใช้ทุ่นลอย สำหรับควบคุมระดับน้ำ
     2. วิธีควบคุมด้วยความร้อน ได้แก่ การใช้แถบโลหะสองชนิดผนึกติดกัน สำหรับควบคุมความร้อน เนื่องจากโลหะต่างชนิดกัน จะยืดหดไม่เท่ากัน แต่เมื่อถูกผนึกติดกันแล้วมีอุณหภูมิเปลี่ยนแปลง ทำให้แถบโลหะนี้โก่งงอ เมื่อตรึงปลายหนึ่งเอาไว้แล้ว การโก่งงอนี้ทำให้อีกปลายหนึ่งใช้เป็นสวิตช์ไฟฟ้าได้ เครื่องแบบนี้มักจะใช้ควบคุมอุณหภูมิในตู้เย็นหรือห้องปรับอากาศให้มีอุณหภูมิคงที่ เมื่ออุณหภูมิลดลงจนเย็นเกินไปปลายแถบโลหะจะถ่างออกจากปุ่มสัมผัส ทำให้กระแสไฟฟ้าหยุด
    3. วิธีควบคุมด้วยความเฉื่อย
  4. วิธีควบคุมด้วยแสง ได้แก่ การใช้โฟโตเซลล์ เป็นเครื่องเปลี่ยนพลังงานแสงให้กลายเป็นพลังงานไฟฟ้า เช่น โฟโตเซลล์ที่ใช้เป็นสวิตช์ไฟอัตโนมัติสำหรับโคมไฟบนถนนหลวงพอท้องฟ้ามืด สวิตช์นี้ก็จะเปิดไฟถนนทันที หลักการคล้ายกันนี้ใช้กับเครื่องบังคับเปิดปิดประตูอัตโนมัติ เช่น รถยนต์ผ่านไปยังลำแสงที่ฉายอยู่ เป็นการกระตุ้นให้ระบบอัตโนมัติส่งสัญญาณไปเปิดประตู
   5. วิธีควบคุมด้วยคลื่นวิทยุเรดาร์ ได้แก่ การใช้คลื่นสะท้อนสำหรับควบคุมทิศทาง เช่น ปืนต่อสู้อากาศยาน ซึ่งควบคุมการยิงด้วยระบบเรดาร์ เครื่องเรดาร์บนรถยนต์จะจับทิศทางและความเร็วของเครื่องบินเป้า และป้อนข้อมูลนี้เข้าเครื่องคำนวณแล้วส่งคำสั่งยิงเป็นสัญญาณกระตุ้นไปยังปืนป.ต.อ. สัญญาณนี้จะถูกขยายกำลังและหมุนมอเตอร์ปรับมุมยิงของปืนเพื่อยิงดักความคลาดเคลื่อนของกระสุนจากเป้าหมายจะถูกเครื่องเรดาร์บันทึกไว้ และส่งสัญญาณป้อนย้อนกลับไปปรับแต่งมุมยิงของปืนอีก
  6. วิธีฉายกัมมันตภาพรังสี วิธีนี้ใช้สารที่มีการแผ่รังสีกัมมันตภาพเป็นกระบวนที่ใช้ได้กว้างขวางมากและมีประสิทธิภาพ จึงนิยมใช้ควบคุมในงานอุตสาหกรรมสมัยใหม่นานาประเภท ตัวอย่างเช่น ใช้ควบคุมความหนาของกระดาษซึ่งผลิตโดยการรีดออกมาด้วยความเร็วสูง เครื่องนี้ใช้ลำแสงกัมมันตภาพรังสีฉายทะลุกระดาษ ถ้าความหนาของกระดาษผิดไปจากที่ตั้งกำหนดเกณฑ์เอาไว้ ก็จะทำให้ความเข้มของรังสีที่ทะลุผ่านเปลี่ยนไป เครื่องวัดความเข้มรังสีก็จะส่งสัญญาณกระตุ้นไปปรับแต่งเครื่องรีดทันที
   7. วิธีนิวแมติค หรือแรงอัดดันของอากาศ ได้แก่ การใช้กล่องแบบโป่งแฟบได้คล้ายหีบเพลงชักเพื่อควบคุมความดัน 

ไมโครคอนโทรลเลอร์

ไมโครคอนโทรลเลอร์ (อังกฤษ: microcontroller มักย่อว่า µC, uC หรือ MCU)

 คือ อุปกรณ์ควบคุมขนาดเล็ก ซึ่งบรรจุความสามารถที่คล้ายคลึงกับระบบคอมพิวเตอร์ โดยในไมโครคอนโทรลเลอร์ได้รวมเอาซีพียู, หน่วยความจำ และพอร์ต ซึ่งเป็นส่วนประกอบหลักสำคัญของระบบคอมพิวเตอร์เข้าไว้ด้วยกัน โดยทำการบรรจุเข้าไว้ในตัวถังเดียวกัน
โครงสร้างโดยทั่วไป ของไมโครคอนโทรลเลอร์นั้น สามารถแบ่งออกมาได้เป็น 5 ส่วนใหญ่ๆ ดังต่อไปนี้
  1. หน่วยประมวลผลกลางหรือซีพียู (CPU : Central Processing Unit)
  2. หน่วยความจำ (Memory) สามารถแบ่งออกเป็น 2 ส่วน คือ หน่วยความจำที่มีไว้สำหรับเก็บโปรแกรมหลัก (Program Memory) เปรียบเสมือนฮาร์ดดิสก์ของ เครื่องคอมพิวเตอร์ตั้งโต๊ะ คือข้อมูลใดๆ ที่ถูกเก็บไว้ในนี้จะไม่สูญหายไปแม้ไม่มีไฟเลี้ยง อีกส่วนหนึ่งคือหน่วยความจำข้อมูล (Data Memory) ใช้เป็นเหมือนกกระดาษทดในการคำนวณของซีพียู และเป็นที่พักข้อมูลชั่วคราวขณะทำงาน แต่หากไม่มีไฟเลี้ยง ข้อมูลก็จะหายไปคล้ายกับหน่วยความแรม (RAM) ในเครื่องคอมพิวเตอร์ทั่วๆ ไป แต่สำหรับไมโครคอนโทรลเลอร์สมัยใหม่ หน่วยความจำข้อมูลจะมีทั้งที่เป็นหน่วยความจำแรม ซึ่งข้อมูลจะหายไปเมื่อไม่มีไฟเลี้ยง และเป็นอีอีพรอม (EEPROM : Erasable Electrically Read-Only Mempry) ซึ่งสามารถเก็บข้อมูลได้แม้ไม่มีไฟเลี้ยง
  3. ส่วนติดต่อกับอุปกรณ์ภายนอก หรือพอร์ต (Port) มี 2 ลักษณะคือ พอร์ตอินพุต (Input Port) และพอร์ตส่งสัญญาณหรือพอร์ตเอาต์พุต (Output Port) ส่วนนี้จะใช้ในการเชื่อมต่อกับอุปกรณ์ภายนอก ถือว่าเป็นส่วนที่สำคัญมาก ใช้ร่วมกันระหว่างพอร์ตอินพุต เพื่อรับสัญญาณ อาจจะด้วยการกดสวิตช์ เพื่อนำไปประมวลผลและส่งไปพอร์ตเอาต์พุต เพื่อแสดงผลเช่น การติดสว่างของหลอดไฟ เป็นต้น
  4. ช่องทางเดินของสัญญาณ หรือบัส (BUS) คือเส้นทางการแลกเปลี่ยนสัญญาณข้อมูลระหว่าง ซีพียู หน่วยความจำและพอร์ต เป็นลักษณะของสายสัญญาณ จำนวนมากอยู่ภายในตัวไมโครคอนโทรลเลอร์ โดยแบ่งเป็นบัสข้อมูล (Data Bus) , บัสแอดเดรส (Address Bus) และบัสควบคุม (Control Bus)
  5. วงจรกำเนิดสัญญาณนาฬิกา นับเป็นส่วนประกอบที่สำคัญมากอีกส่วนหนึ่ง เนื่องจากการทำงานที่เกิดขึ้นในตัวไมโครคอนโทรลเลอร์ จะขึ้นอยู่กับการกำหนดจังหวะ หากสัญญาณนาฬิกามีความถี่สูง จังหวะการทำงานก็จะสามารถทำได้ถี่ขึ้นส่งผลให้ไมโครคอนโทรลเลอร์ตัวนั้น มีความเร็วในการประมวลผลสูงตามไปด้วย
นอกจากนี้ยังมีส่วนพิเศษอื่นๆ จะขึ้นอยู่กับกระบวนการผลิตของแต่ละบริษัทที่จะผลิตขึ้นมาใส่คุณสมบัติพิเศษลงไปเช่น 
- ADC (Analog to Digital) ส่วนภาครับสัญญาณอนาล็อกแปลงไปเป็นสัญญาณดิจิตอล
- DAC (Digital to Analog) ส่วนภาคส่งสัญญาณดิจิตอลแปลงไปเป็นสัญญาณอนาล็อก
- I2C (Inter Integrate Circuit Bus) เป็นการสื่อสารอนุกรม แบบซิงโครนัส (Synchronous) เพื่อใช้ ติดต่อสื่อสาร ระหว่าง ไมโครคอนโทรลเลอร์ (MCU) กับอุปกรณ์ภายนอก ซึ่งถูกพัฒนาขึ้นโดยบริษัท Philips Semiconductors โดยใช้สายสัญญาณเพียง 2 เส้นเท่านั้น คือ serial data (SDA) และสาย serial clock (SCL) ซึ่งสามารถ เชื่อมต่ออุปกรณ์ จำนวนหลายๆ ตัว เข้าด้วยกันได้ ทำให้ MCU ใช้พอร์ตเพียง 2 พอร์ตเท่านั้น
- SPI (Serial Peripheral Interface) เป็นการเชื่อมต่อกับอุปกรณ์เพื่อรับส่งข้อมูลแบบซิงโครนัส (Synchronize) มีสัญญาณนาฬิกาเข้ามาเกี่ยวข้องระหว่างไมโครคอนโทรลเลอร์ (Microcontroller) หรือจะเป็นอุปกรณ์ภายนอกที่มีการรับส่งข้อมูลแบบ SPI อุปกรณ์ที่ทำหน้าที่เป็นมาสเตอร์ (Master) โดยปกติแล้วจะเป็ไมโครคอนโทรลเลอร์ หรืออาจกล่าวได้ว่าอุปกรณ์ Master จะต้องควบคุมอุปกรณ์ Slave ได้ โดยปกติตัว Slave มักจะเป็นไอซี (IC) หน้าที่พิเศษต่างๆ เช่น ไอซีอุณหภูมิ, ไอซีฐานเวลานาฬิกาจริง (Real-Time Clock) หรืออาจเป็นไมโครคอนโทรลเลอร์ที่ทำหน้าที่ในโหมด Slave ก็ได้เช่นกัน
- PWM (Pulse Width Modulation) การสร้างสัญญาณพัลส์แบบสแควร์เวฟ ที่สามารถปรับเปลี่ยนความถี่และ Duty Cycle ได้เพื่อนำไปควบอุปกรณ์ต่างๆแช่น มอเตอร์

- UART (Universal Asynchronous Receiver Transmitter) ทำหน้าที่รับส่งข้อมูลแบบอะซิงโครนัสสำหรับมาตรฐานการรับส่งข้อมูลแบบ RS-232
ไมโครคอนโทรลเลอร์ มีกี่ประเภทอะไรบ้าง?

ไมโครคอนโทรลเลอร์ มีด้วยกันหลายประเภทแบ่งตามสถาปัตยกรรม 
(การผลิตและกระบวนการทำงานระบบการประมวลผล) ที่มีใช้ในปัจจุบันยกตัวอย่างดังนี้
1.ไมโคร คอนโทรลเลอร์ตระกูล PIC (บริษัทผู้ผลิต Microchip ไมโครชิป) 
2.ไมโคร คอนโทรลเลอร์ตระกูล MCS51 (บริษัทผู้ผลิต Atmel,Phillips)
3.ไมโคร คอนโทรลเลอร์ตระกูล AVR (บริษัทผู้ผลิต Atmel)
4.ไมโคร คอนโทรลเลอร์ตระกูล ARM7,ARM9 (บริษัทผู้ผลิต Atmel,Phillips,Analog Device,Sumsung,STMicroelectronics)
5.ไมโคร คอนโทรลเลอร์ตระกูล Basic Stamp (บริษัทผู้ผลิต Parallax)
6.ไมโคร คอนโทรลเลอร์ตระกูล PSOC (บริษัทผู้ผลิต CYPRESS)
7.ไมโคร คอนโทรลเลอร์ตระกูล MSP (บริษัทผู้ผลิต Texas Intruments)
8.ไมโคร คอนโทรลเลอร์ตระกูล 68HC (บริษัทผู้ผลิต MOTOROLA)
9.ไมโคร คอนโทรลเลอร์ตระกูล H8 (บริษัทผู้ผลิต Renesas)
10.ไมโคร คอนโทรลเลอร์ตระกูล RABBIT (บริษัทผู้ผลิต RABBIT SEMICONDUCTOR)
11.ไมโคร คอนโทรลเลอร์ตระกูล Z80 (บริษัทผู้ผลิต Zilog)
และอีกหลายเบอร์หลายบริษัทที่ยังไม่ได้ยกมาเป็นตัวอย่าง








ภาษาที่ใช้เขียน โปรแกรมควบคุมไมโครคอนโทลเลอร์ มีอะไรบ้าง?

1.ภาษา Assembly
2.ภาษา Basic
3.ภาษา C
4.ภาษา Pascal
5.ภาษา Java
และอีกหลากหลายภาษาซึ่งได้รับการพัฒนามาอย่างต่อเนื่อง
                ภาษา ดัง กล่าวที่กล่าวในเบื้องต้น ไมโครคอนโทรลเลอร์บางตระกูล จะใช้ได้ครบทุกภาษา แต่บางตระกูลจะใช้ได้บางภาษา ขึ้นอยู่กับบริษัทผู้ผลิต Software (โดยทั่วไปจะเรียกว่า Editor And Complier) ที่ใช้เขียนภาษาไมโครคอนโทรลเลอร์นั้นจะผลิตออกมาให้ Support หรือไม่ 
ผมขอสรุปในเบื้องต้นแบบง่ายๆ ไมโครคอนโทรลเลอร์เปรียบเทียบรถยนต์ทั่วไปรถยนต์ มีหลายบริษัทผู้ผลิต,ในแต่ละบริษัทก็มีอยู่หลายรุ่นหลายแบบ รถยนต์มีระบบทุกอย่างพร้อมขึ้นอยู่กับเราจะขับหรือควบคุมการใช้งานนั่นเอง ไมโคร คอนโทรลเลอร์ก็เช่นกัน มีหลายบริษัทผู้ผลิต,ในแต่ละบริษัทผู้ผลิต ก็จะมีหลายเบอร์ให้เลือกใช้งาน,ไมโครคอนโทรลเลอร์ก็มีระบบต่างๆอยู่เพียบ พร้อม ส่วนการใช้งานขึ้นอยู่กับเราจะเขียนโปรแกรมควบคุมให้มันทำงานตามที่เราต้อง การเท่านั้นเอง

ระบบตัวเลขดิจิตอล

ระบบตัวเลขดิจิตอล

เลขฐานสิบ
เลขฐานสิบประกอบด้วยสัญลักษณ์ตัวเลขสิบตัว ได้แก่ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ซึ่งมาจากความจริงที่ว่ามนุษย์มีนิ้วมืออยู่สิบนิ้ว คำว่า “Digit” มาจากภาษาลาตินที่หมายถึง “Finger”
              ตัวอย่างที่ 1 พิจารณาตัวเลข 453 เราทราบว่าเลข 4 แทนจำนวนสี่ร้อย เลขห้าแทนจำนวน ห้าสิบ ส่วนเลข 3 แทนจำนวนสาม ตัวเลข 4 ในที่นี้มีน้ำหนักสูงสุด เรียกว่าเป็นเลขที่มีนัยสำคัญสูงสุด (Most Significant digit: MSD) ในขณะที่เลข 3 มีน้ำหนักน้อยที่สุด (Least Significant Digit: LSD)
                ตัวอย่างที่ 2 ตัวเลข 27.35 เท่ากับ   โดยที่เราใช้จุดทศนิยม (Decimal point) ในการแบ่งจำนวนเต็มและเลขเศษส่วน
                 ตัวอย่างที่ 3 ตัวเลข 2745.214 สามารถเขียนน้ำหนักของเลขแต่ล่ะหลักในรูปของเลขสิบยกกำลังได้ดังนี้

สรุปได้ว่าโดย ทั่วๆไปแล้ว จำนวนก็คือผลบวกของผลคูณระหว่างตัวเลขกับน้ำหนักหลักของตัวเลขนั้นๆ ดังรูปที่ 2



ตัวอย่างการบวกเลขฐานสิบสองจำนวน เช่น 99+1 จะได้ว่า
99
   +
  1
                                                         100   
เราจะสามารถเขียนหลักการบวกเลขได้ดังนี้
สมมุติว่าเลขจำนวนหนึ่งมี 5 หลัก คือ a2a1a0.a-1a-2 โดยที่
คือค่า สัมประสิทธิ์ที่ตำแหน่ง n และ R คือเลขฐาน


1. จำนวนสูงสุดของตัวเลขในแต่ละหลัก จะเท่ากับ (R-1)    เช่น (10-1) = 9    สำหรับเลขฐานสิบ
2. เมื่อบวกตัวเลขสูงสุดของเลขฐานนั้นๆ เช่น (10-1) ด้วย 1 จะเกิดการทด (Carry)
3. ผลลัพธ์ 99+1 คือ 100 จะเห็นได้ว่าตัวเลขเดียวกันแต่อยู่ในหลักที่ต่างกันจากซ้ายไปขวา ตัวเลขในหลักนั้นจะมีค่าเป็น R เท่าของหลัก ถัดไป      เช่น เลข 1 ในหลักร้อยก็จะมีค่าเป็นสิบเท่าของเลข 1 ในหลักสิบ
                 เลขฐานสิบไม่เหมาะสมต่อการนำมาใช้งานในระบบดิจิตอล เนื่องจากการสร้างวงจรอิเล็กทรอนิกส์ที่สามารถทำงานกับระดับแรงดันไฟฟ้าสิบระดับได้อย่างแม่นยำนั้น ทำได้ยาก ในขณะที่การออกแบบวงจรให้ทำงานกับระดับแรงดันสองระดับนั้น กระทำได้ง่ายกว่ามาก
ระบบเลขฐานสอง (Binary system)
                จำนวนในเลขฐานสองมีได้เพียงสองค่าคือ เลข “0” และ “1” ตัวเลขฐานสองสามารถแทนจำนวนในเลขฐานสิบหรือฐานอื่นได้โดยการเพิ่มจำนวนหลักให้เพียงพอ

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


                จุดสังเกต ตัวห้อย 2 และ10 ใช้แทนเลขฐานของจำนวนที่เราพิจารณา
                ในระบบตัวเลขฐานสองตัวเลขในหลักต่างๆมักนิยมเรียกว่า บิต (Bit) จากในรูปที่สาม จะแสดงให้เห็นว่ามีตัวเลขสี่บิตอยู่หน้าจุดไบนารี่ที่แทนจำนวนเต็มและมีตัวเลขสามบิตหลังจุดไบนารี่ที่แทนเลขเศษส่วน บิตที่ทางซ้ายมือสุดจะเป็นบิตที่มีนัยสำคัญสูงสุด (Most Significant Bit: MSB) ส่วนบิตที่อยู่ทางขวามือสุดเป็นบิตที่มีนัยสำคัญต่ำที่สุด (Least Significant Bit: LSB)

ตัวอย่างที่ 4 ตัวเลขฐานสองแปดบิตจะแทนจำนวนสูงสุดในตัวเลขฐานสิบได้เท่ากับเท่าใด
คำตอบ


การแสดงจำนวนเลขฐานสอง
                 ในระบบดิจิตอล ข้อมูลที่จะถูกประมวลผลมักอยู่ในรูปของจำนวนตัวเลขฐานสอง ซึ่งจำนวนในเลขฐานสองสามารถแทนได้ด้วยอุปกรณ์ใดๆที่มีการทำงานเพียงสองสถานะ เช่น สวิตช์ที่เปิดวงจรแทน “0” หรือสวิตช์ปิดวงจรแทน “1” ในรูปที่ 4a แสดงตัวอย่างการแทนจำนวนเลขสอง 100102 ด้วยสวิตช์เปิดปิดห้าตัว ส่วนในรูป 4b ใช้การเจาะรูหรือไม่เจาะรูบนกระดาษแทนเลขฐานสอง

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

การแปลงเลขฐานสิบเป็นเลขฐานสอง
             มี 2 วีธี คือ วิธีการลบและวิธีการหาร
วิธีการลบ  
   ทำได้โดยนำค่ากำลังของสองค่าสูงสุดที่สามารถลบค่า เลขฐานสิบได้ไปลบ จากนั้นแทนค่าบิตนี้เป็นค่า “1” และ เป็นบิตสูงสุด เศษที่ได้จากการลบให้นำค่าสองยกกำลัง ค่าที่ต่ำลงมาไปลบ ถ้าลบให้ได้เป็น “1” และลบต่อไปเรื่อย ๆ ถ้าลบไม่ได้ให้เป็น “0”และนำค่าสองยกกำลังต่ำลงมาไปลบแทน

ตัวอย่าง การแปลงเลข 4910 เป็นเลขฐานสองทำได้ดังนี้




วิธีการหาร
 วิธีนี้จะนำฐานสิบมาหารด้วยสองไปเรื่อยๆ และนำเศษที่เหลือมาเขียนเป็นเลขฐานสอง โดยค่าแรกจะเป็นบิตต่ำ และนำผลหารที่ได้มาหารด้วยสองต่อไป

ตัวอย่าง การแปลงเลข 4910 เป็นเลขฐานสองทำได้ดังนี้
    49 / 2    =    24    เหลือเศษ 1 (บิตต่ำสุด)
    24 / 2    =    12    เหลือเศษ  0
    12 / 2    =      6    เหลือเศษ  0
      6 / 2    =      3    เหลือเศษ  0
      3 / 2    =      1     เหลือเศษ  1
      1 / 2     =      0    เหลือเศษ  1 (บิตสูงสุด)
    นำเศษที่ได้มาเขียนเป็นเลขฐานสองจะได้เป็น  1 1 0 0 0 1

ระบบเลขฐานแปด
                  ระบบเลขฐานแปดนี้จะใช้สัญลักษณ์แทน 8 ตัว คือ 0,1,2,3,4,5,6 และ 7 การแปลงเลขฐานแปด เป็นเลขฐานสิบทำได้โดยนำค่าแต่ละหลักคูณกับ ค่าน้ำหนักของแต่ละหลัก

ตัวอย่าง การแปลงเลขฐานแปดเป็นเลขฐานสิบ