หัวข้อ

ram transistor zener diode กราวนด์ดิจิตอล (Digital Ground) คืออะไร? การคำนวณเลขฐาน การต่อสัญญาณแบบบาลานซ์(Balanced System) การทำงานเครื่องขยายเสียงคลาสดี การนำไมโครคอนโทรลเลอร์ไปใช้งาน การประยุกต์ใช้ ESP32 และ ESP8266: ก้าวสู่โลก IoT การเข้าโหมดเซอร์วิส การเปลี่ยนฐานของระบบเลข การเลือกลำโพง การเลือกแอมป์ให้กับลำโพง การใช้งาน Arduino Uno ร่วมกับ เซอร์โวมอเตอร์ การ์ดแสดงผล กำลังวัตต์กับความดัง คลาสต่างๆ ความเปลี่ยนแปลงของเครื่องเสียงยุคดิจิตอล ค่าความเพี้ยนกับค่าS/N จอมอนิเตอร์ ซีดีทรานสปอร์ต(CD TRANSPORT) ตัวต้านทานปรับค่าได้(Variable Resistor) ตัวต้านทานและการใช้งาน ตัวเก็บประจุ(Capacitor ทรานซิสเตอร์ ทำไม?แรมบางรุ่นถึงแพงกว่าเมนบอร์ด ทิศทางการเติบโตตลาด AMD ในปัจจุบัน ทีวีสี ภาคต่างๆของเครื่องขยายเสียง รหัสไบนารี่(Binary Codes) ระบบควบคุมการชาร์จแบตเตอรี่จากโซลาร์เซลล์ ระบบเลขฐาน ระบบโซลาร์เซลล์ ระบบโซลาร์เซลล์แบบ Off-Grid และ On-Grid อินเวอร์เตอร์ที่ใช้ในระบบโซลาร์เซลล์ อิเล็กทรอนิกส์ อุปกรณ์ระบายความร้อนในคอมพิวเตอร์ อุปกรณ์อิเล็กทรอนิกส์ ฮาร์ดดิสก์ หรือ SSD เขียนโปรแกรม Arduino ด้วยภาษาซี เขียนโปรแกรม Arduino ด้วยภาษาซี 2 เขียนโปรแกรม Arduino ด้วยภาษาซี 3 เขียนโปรแกรม Arduino ด้วยภาษาซี คำสั่งพื้นฐานที่ควรเรียนรู้ เขียนโปรแกรม Arduino ด้วยภาษาซี ตัวอย่างที่ 5 เขียนโปรแกรม Arduino ด้วยภาษาซี ตัวอย่างที่ 6 เขียนโปรแกรม Arduino ด้วยภาษาซี ตัวอย่างที่ 7 เขียนโปรแกรม Arduino ด้วยภาษาซี ตัวอย่างที่ 8 เขียนโปรแกรม Arduino ด้วยภาษาซี ตัวอย่างที่1 เครื่องขยายเสียงคลาสดี(Class D) เบอร์แทน เพาเวอร์ซัพพลาย เพาเวอร์แบงค์บอกค่าความจุจริงหรือเฟค เมนบอร์ด (Motherboard) แนะนำ CPU และ GPU ราคาประหยัด ใช้งานได้ถึงปี 2030 แนะนำ ซีพียู งาน AI ฝั่ง RED Team แนะนำ ซีพียูสาย AI รุ่นท็อปขายดี แอลอีดี(LED) โครงสร้างไมโครคอนโทรลเลอร์ ตระกูล PIC โปรแกรม Arduino ด้วยภาษาซี ตัวอย่างที่ 4 โวลลุ่มคอนโทรลแบบ AAVA ไดโอด ไมโครคอนโทรลเลอร์ ไมโครคอนโทรลเลอร์ในปี 2025 ไอซี ไอซีตั้งเวลา LM555
แสดงเพิ่มเติม

การใช้งาน Arduino Uno ร่วมกับ เซอร์โวมอเตอร์

 ในการใช้งาน arduino uno ร่วมกับ เซอร์โวมอเตอร์ ตัวอย่างนี้จะใช้เอาท์พุตดิจิตอลธรรมดา แต่สัญญาณ PWM จะสร้างขึ้นจากฟังก์ชั่นที่อ้างอิงจากไฟล์ Servo.h และรูปแบบใช้งานคำสั่งก็คือ Servo myservo;   คือ การประกาศฟังก์ชั่น myservo.attach(9); คือ การกำหนดขาเอาท์พุต myservo.write(pos); คือ เขียนข้อมูลออก ในที่นี้ใช้ตัวแปร pos ในการเก็บค่า ต่อวงจรตามภาพ เขียนโปรแกรมดังนี้ #include <Servo.h> Servo myservo;  // ประกาศใช้งานฟังก์ชั่นเซอร์โว จากไฟล์ servo.h int pos = 0;    // กำหนดตัวแปรเก็บค่าตำแหน่งเซอร์โว void setup() {   myservo.attach(9);  // กำหนดขาใช้งานในบอร์ด คือ ขา9 void loop() {   for (pos = 0; pos <= 180; pos += 1) { // ใส่ค่าตำแหน่งเริ่มจาก 0 ถึง 180 องศา โดยเพิ่มค่าทีละ 1 องศา       myservo.write(pos);              // เขียนคำสั่งจากค่าตัวแปรเก็บตำแหน่ง เพื่อส่งค่าออกเอาท์พุต     delay(15);            ...

โครงสร้างไมโครคอนโทรลเลอร์ ตระกูล PIC

โครงสร้างไมโครคอนโทรลเลอร์
โครงสร้างไมโครคอนโทรลเลอร์ในตระกูล PIC นั้นมีหลายลักษณะ มีทั้งไอซีแบบ 8 ขา(DIP 8 Pins), 14 ขา(DIP 14 Pins), 18 ขา(DIP 18 Pins), 28 ขา(DIP 28 Pins), 40 ขา(DIP 40 Pins) เป็นต้น มีให้ลือกมากมายว่า จะใช้ขนาดหน่วยความจำโปรแกรมขนาดเท่าใดให้เหมาะสมกับงานที่ออกแบบ


                                               รูปที่1.โครงสร้างของไมโครคอนโทรลเลอร์

หน่วยประมวลผลกลาง(Central Processing Unit : CPU) หน่วยประมวลผลกลางจะประกอบไปด้วยวงจรต่างๆหลากหลาย ที่จำเป็นสำหรับประมวลผล และการคำนวณ เช่น วงจรถอดรหัสคำสั่ง, วงจรควบคุมสัญญาณนาฬิกา, วงจรควบคุมการทำงาน, วงจรตั้งเวลา และรวมทั้งหน่วยคำนวณทางลอจิกและคณิตศาตร์ (ALU) เป็นต้น
หน่วยความจำ(Memory Unit)
ในการเขียนโปรแกรมด้วยภาษาซีให้กับไมโครคอนโทรลเลอร์ต้องคำนึงถึงขนาดของหน่วยความจำของไมโครคอนโทรลเลอร์ด้วย เพราะหากเขียนให้โปรแกรมที่มีขนาดความจุมากกว่าขนาดของหน่วยความจำโปรแกรมไมโครคอนโทรลเลอร์ ก็ไม่สามารถบรรจุโปรแกรมลงได้ครบสมบูรณ์ ทั้งนี้ต้องระมัดระวังในการใช้หน่วยความจำแบบอื่นในไมโครคอนโทรลเลอร์ด้วย
ในไมโครคอนโทรลเลอร์ สามารถแบ่งหน่วยความจำได้ 3 แบบคือ
1.หน่วยความจำแบบแฟลช(Flash Program Memory) โดยปกติไมโครคอนโทรลเลอร์หลายๆยี่ห้อถูกออกแบบให้มีคุณสมบัติในการโปรแกรมและการลบโปรแกรมได้มากกว่า 100,000 ครั้งและการทำงานมีความเร็วสูงเหมาะใช้ในการพัฒนางานที่มีขนาดใหญ่ หน่วยความจำนี้มีขนาด1KB - 32KB
2.หน่วยความจำข้อมูล(Data Memory RAM) หนวยความจำนี้เป็นหน่วยความจำชั่วคราว ใช้เก็บข้อมูลขณะประมวลผล เมื่อหยุดจ่ายไฟเลี้ยง ข้อมูลก็หายไป มีความจุตั้งแต่ 64-1536 Bytes
3.หน่วยความจำข้อมูลอีอีพรอม(EEPROM Data Memory) เป็นหน่วยความจำที่สามารถเขียนและและลบโปรแกรมได้ด้วยกระแสไฟฟ้าในหน่วยความจำรอม มีความจุขนาดถึง 256 Bytes
พอร์ตอินพุตและเอาท์พุต(I/O Port) ไมโครคอนโทรลเลอร์ทุกตัวต้องมีขาต่อใช้งาน และสามารถเป็นได้ทั้งขาสัญญาณออกและขาสัญญาณเข้า จึงจะสามารถติดต่อกับอุปกรณ์ภายนอก หรือนำไปใช้งานอื่นได้ เช่น จอแสดงผล, ปุ่มกด, เซ็นเซอร์ เป็นต้น ในการใช้งานจะแบ่งพอร์ตออกเป็นพอร์ตละกี่บิตก็แล้วแต่ ส่วนใหญ่ตามมาตรฐานพอร์ตหนึ่งจะมี 8 บิต(ขาต่อใช้งาน 8 ขา) ส่วนจะมีกี่พอร์ตก็ตามแต่เบอร์ใช้งานที่ถูกออกแบบมา เช่น ไมโครคอนโทรลเลอร์เบอร์ PIC16F877 ก็จะมีพอร์ตใช้งานอยู่ 5 พอร์ต คือ
1.PORTA พอร์ตA มี 6 pins
2.PORTB พอร์ตB มี 8 pins
3.PORTC พอร์ตC มี 8 pins
4.PORTD พอร์ตD มี 8 pins
5.PORTE พอร์ตE มี 3 pins



สำหรับหน้าที่การใช้งานของขา อินพุต/เอาท์พุตในพอร์ตต่างๆนี้

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


พอร์ตA(PORTA) มีจำนวน 6 ขา คือ RA0-RA5 เป็นขาสัญญาณ I/O แบบดิจิตอลและขาต่อสัญญาณอินพุตอะนาล็อกได้ด้วย ซึ่งก็คือ เป็นขาต่อสัญญาณ ADC(Analog to Digital Converter ) เข้านั่นเอง
RA0/AN0 - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณอินพุตสำหรับ ADC ช่อง0
RA1/AN1 - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณอินพุตสำหรับ ADC ช่อง1
RA2/AN2 - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณอินพุตสำหรับ ADC ช่อง2
RA3/AN3 - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณอินพุตสำหรับ ADC ช่อง3
RA4/TOCK1/C1OUT - ขาสัญญาณนาฬิกาอินพุต Timer0
- ขาสัญญาณเอาท์พุตสำหรับเปรียบเทียบ ADC ช่อง1
RA5/AN4/SS - ขาสัญญาณอินพุตสำหรับ ADC ช่อง4
- ขาสัญญาณ slave select สื่อสาร Serial Port แบบ Synchronize
- ขาสัญญาณเอาท์พุตสำหรับเปรียบเทียบ ADC ช่อง2
พอร์ตB(PORTB)มีจำนวน 8 ขา คือ RB0-RB7 เป็นขาสัญญาณ I/O แบบดิจิตอลที่มีวงจรพูลอัพ(R-Pull-up) บางขาสามารถใช้เป็นขาอินพุตในการ Interrupt จากภายนอกได้ด้วย
RB0/INT - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณอินพุตสำหรับรับสัญญาณ Interrupt จากภายนอก
RB1 - ขาสัญญาณติดต่อ I/O Port
RB2 - ขาสัญญาณติดต่อ I/O Port
RB3/LVP - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณอินพุตรับแรงดันโปรแกรมต่ำ(5V) ถ้ามีการ Enable
RB4-RB7 - ขาสัญญาณติดต่อ I/O Port
- ภายในมีวงจรพูลอัพและ Interrupt Logic หากมีการ Enable จะสามารถอินเตอร์รัพท์แบบนี้ได้
พอร์ตC(PORTC)มีจำนวน 8 ขา คือ RC0-RC7 เป็นขาสัญญาณ I/O แบบดิจิตอล และ timer, I2C, PWM
RC0/T1OSO/TICK1 - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณเอาท์พุตวงจรออสซิลเลเตอร์ของ Timer1
- ขาสัญญาณอินพุตของสัญญาณ Clock Timer1
RC1/T1OSI/CCP2 - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณอินพุตวงจรออสซิลเลเตอร์ของ Timer1
- ขาสัญญาณเอาท์พุตวงจร PWM
- ขาสัญญาณเอาท์พุตวงจรเปรียบเทียบสัญญาณโมดูล CCP2
RC2/CCP1 - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณเอาท์พุตวงจร PWM
- ขาสัญญาณเอาท์พุตวงจรเปรียบเทียบสัญญาณโมดูล CCP1
RC3/SCK/SCL - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณ Clock ของวงจร SPI(SCK)
- ขาสัญญาณ Clock ของวงจร I2C(SCL)
RC4/SDI/SDA - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณอินพุต Serial Data ของระบบ SPI(SDI)
- ขาสัญญาณ Data ของวงจร I2C(SDA)
RC5/SDO - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณเอาท์พุต Serial Data ของระบบ SPI(SDO)
RC6/TxD/CK - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณส่ง Data/Serial Port(TxD)
- ขาสัญญาณ Clock/Synchronize(CK)
RC7/RxD/DT - ขาสัญญาณติดต่อ I/O Port
- ขาสัญญาณส่ง Data/Serial Port(RxD)
- ขาสัญญาณ Data/Synchronize(DT)

พอร์ตD(PORTD)มีจำนวน 8 ขา คือ RD0-RD7 เป็นขาสัญญาณ I/O แบบดิจิตอล และยังทำหน้าที่ขยายพอร์ตแบบขนานด้วย(PSP:Parallel Slave Port)
RD0/PSP0 - ขาสัญญาณติดต่อ I/O Port
- ขาขยายสัญญาณพอร์ตแบบขนานบิต 0
RD1/PSP1 - ขาสัญญาณติดต่อ I/O Port
- ขาขยายสัญญาณพอร์ตแบบขนานบิต 1
RD2/PSP2 - ขาสัญญาณติดต่อ I/O Port
- ขาขยายสัญญาณพอร์ตแบบขนานบิต 2
RD3/PSP3 - ขาสัญญาณติดต่อ I/O Port
- ขาขยายสัญญาณพอร์ตแบบขนานบิต 3
RD4/PSP4 - ขาสัญญาณติดต่อ I/O Port
- ขาขยายสัญญาณพอร์ตแบบขนานบิต 4
RD5/PSP5 - ขาสัญญาณติดต่อ I/O Port
- ขาขยายสัญญาณพอร์ตแบบขนานบิต 5
RD6/PSP6 - ขาสัญญาณติดต่อ I/O Port
- ขาขยายสัญญาณพอร์ตแบบขนานบิต 6
RD7/PSP7 - ขาสัญญาณติดต่อ I/O Port
- ขาขยายสัญญาณพอร์ตแบบขนานบิต 7
พอร์ตE(PORTE)มีจำนวน 3 ขา คือ RE0-RE2 เป็นขาสัญญาณ I/O แบบดิจิตอลและขาอินพุตของสัญญาณ ADC(Analog to Digital Converter)ด้วย
RE0/AN5/RD - ขาสัญญาณติดต่อ I/O Port
- ขาขยายสัญญาณพอร์ตแบบขนานควบคุมการอ่าน(RD:Read)
- ขาสัญญาณอินพุต ADC ช่อง5
RE1/AN6/WR - ขาสัญญาณติดต่อ I/O Port
- ขาขยายสัญญาณพอร์ตแบบขนานควบคุมการเขียน(WR:Write)
- ขาสัญญาณอินพุต ADC ช่อง6
RE2/AN7/CS - ขาสัญญาณติดต่อ I/O Port
- ขาขยายสัญญาณพอร์ตแบบขนานควบคุมการเลือกอุปกรณ์(CS:Chip Select)
- ขาสัญญาณอินพุต ADC ช่อง7
***ในการใช้งานพอร์ตนั้นจะต้องกำหนดสถานะให้เป็น อินพุต/เอาท์พุต ที่รีจิสเตอร์ TRISTATE เสียก่อน***
ส่วนขาใช้งานที่เหลือ นอกจากพอร์ตใช้งานแล้ว ได้แก่
MCLR/VPP - ขาสัญญาณ Reset (Master Clear Input)
- ขารับแรงดันโปรแกรม(Programming Voltage)
OSC1/CLKIN - ขารับสัญญาณ clock / สำหรับต่อคริสตัล
OSC2/CLKOUT - ขารับสัญญาณ clock / สำหรับต่อคริสตัล
VDD - ขารับแรงดันไฟเลี้ยง +5V
VSS - ขาต่อกราวด์

โพสต์ยอดนิยมจากบล็อกนี้

คลาสต่างๆของวงจรขยายเสียง

เฟต(FET)

การเปลี่ยนฐานของระบบเลข