หัวข้อ

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);            ...

ควบคุมไมโครคอนโทรลเลอร์ด้วยภาษาซี ตอนที่1

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

 ในที่นี้ขอกล่าวถึงภาษาซี เพราะเป็นภาษาที่ได้รับความนิยมทุกยี่ห้อทุกตระกูลไมโครคอนโทรลเลอร์ มันสามารถแก้ไขได้ง่าย เพราะโครงสร้างง่ายต่อการสร้างโมดูลาร์(Modular) เมื่อเรียนรู้ของตระกูลใดๆแล้ว การศึกษาการควบคุมไมโครคอนโทรลเลอร์ในตระกูลอื่นก็ง่าย เพราะรูปแบบพื้นฐานที่เหมือนกัน จะแตกต่างกันเฉพาะคำสั่งเฉพาะของไมโครคอนโทรลเลอร์แต่ละตระกูลเท่านั้น
พื้นฐานที่จำเป็นของภาษาซี
ตัวดำเนินการเลขคณิตในภาษาซี
-              การลบ                                   x-y
+             การบวก                                 x+y
*             การคูณ                                  x*y
/             การหาร                                  x/y
%            การหารเอาเฉพาะเศษไว้             9%2= เศษ 1 , 1 คือผลลัพธ์
- -             การลดค่าครั้งละ 1                   x- - หรือ - -x  จะมีค่าเหมือนกับ x=x-1
++             การเพิ่มค่าครั้งละ 1                 x++ หรือ ++x จะมีค่าเหมือนกับ x=x+1
จากข้างต้น ในภาษาซีจะมีลำดับในการประมวลผลก่อนและหลัง หากมีการใช้ตัวดำเนินการมากๆในหนึ่งนิพจน์ ดังนี้
()                                            ลำดับที่1
++,- -                                       ลำดับที่2
* / %                                       ลำดับที่3
+-                                            ลำดับที่4
+= , -= , *= , /= , %=               ลำดับที่5
ตัวดำเนินการในภาษาซีทั้งหมดมีดังนี้()                                            Function call
[]                                            array element
.                                             structure member
->                                           pointer to structure member
!                                             Logical
-                                             Minus
+                                            Add
- -                                           Decrement
++                                          Increment
&                                            address of
=                                            content of
*                                             Multiply
/                                             Divide
%                                           Modulus
<<                                         (left shift)
>>                                         (right shift)
<                                            less than
<=                                          less than or equal to
>                                            greater than
>=                                          greater than or equal to
==                                          equality
!=                                            not equal
&                                             AND (bit by bit)
^                                             XOR (bit by bit)
!                                              OR (bit by bit)
&&                                            logical AND
||                                             logical OR
?:                                             Conditional
=                                             Assignment
*=/=%=+=                              compound assignment
-=<<=>>=                              compound assignment
&=^=!=                                   compound assignment
,                                              comma operator

 

ตัวแปรและการประกาศตัวแปร ตัวแปรคือตัวแทนค่าตัวเลข อักษร ข้อความ ที่ใช้ในการประมวลผล ในการเขียนโปรแกรมจะต้องประกาศตัวแปรก่อนดำเนินการคำสั่งอื่น ซึ่งเป็นการแจ้งต่อคอมไพเลอร์ว่าตำแหน่งใดคือค่าอะไร ชื่ออะไรเป็นต้น
Char  ตัวอักษร 8 บิท  เก็บรหัสแอสกี้
Float  ตัวเลขทศนิยม 32 บิท 3.4x(10)-38 ถึง 3.4x(10)38
Short  ตัวเลข 1 บิท  0 , 1
Long  ตัวเลข 16 บิท  0 - 65,535
Int  ตัวเลข 8 บิท   0 - 255
Int1  ตัวเลข 1 บิท  0 , 1
Int8  ตัวเลข 8 บิท  0 - 255
Int16  ตัวเลข 16 บิท  0 - 65,535
Int32  ตัวเลข 32 บิท  0 - 4,294,967,295
ตัวอย่าง เช่น  int k=0;  หมายถึง กำหนดค่าคงที่ ชื่อ k มีค่าเท่ากับ  0  เป็นต้น
ตัวแปรแบบอาเรย์ เมื่อต้องการประกาศตัวแปรหลายๆตัวเพื่อใช้ เก็บข้อมูลที่มีหลายอย่าง เราสามารถใช้ตัวแปรชนิดนี้ได้ เพราะตัวแปรชนิดนี้สามารถเก็บตัวแปรไดจำนวนมากและยังเข้าถึงกลุ่มข้อมูลได้ รวดเร็ว อีกด้วย
รูปแบบที่1เป็นการประกาศตัวแปรที่เป็นชื่อเดียวกันที่สามารถเก็บค่าได้ 5 ตัว
 ชนิดของตัวแปร  ชื่ออาเรย์ [ขนาดของอาเรย์]
เช่น       int money[5];
           คือ money[0] , money[1] , money[2] , money[3] , money[4]
รูปแบบที่2เป็นการประกาศตัวแปรที่เป็นชื่อเดียวกัน 5 ตัว โดยแต่ละตัวแปรมีค่าอยู่
เช่น       int number[5] = {0,1,2,3,4};
           คือ number[0]=0 , number[1]=1 , number[2]=2 , number[3]=3 , number[4]=4
รูปแบบที่3เป็นการประกาศที่ไม่กำหนดขนาดของอาเรย์ในระบบจะจองหน่วยความจำเอาไว้เท่ากับจำนวนค่าที่ประกาศเอาไว้
เช่น    unsigned char number[ ] = {P,E,T,E,R};
         unsigned char number[ ] = "PETER CORP";

โครงสร้างของภาษาซีคอมไพเลอร์ไดเร็คทีฟ(Compiler directive) คือส่วนหัวของโปรแกรมนั่นเอง ซึ่งจะเป็นการบอกแหล่งไฟล์อ้างอิงประเภท head file ที่จำเป็นนำมาใช้ในการประมวลผลในโปรแกรมนั้น
รูปแบบคือ    #include <ชื่อไฟล์อ้างอิง.h>
ตัวอย่าง       #include <16F877.h>  หมายถึง โปรแกรมนี้มีการอ้างอิงข้อมูลจากไฟล์ 16F877.h ซึ่งเป็นข้อมูลเกี่ยวกับไมโครคอนโทรลเลอร์เบอร์ 16F877 นั่นเอง
ตัวโปรแกรม(Body)
 ในส่วนที่โปรแกรมเริ่มประมวลคำสั่งจริงๆจะอยู่ในส่วนนี้ ซึ่งจะเป็นตัวกำหนดขอบเขตของโปแกรม
รูปแบบคือ void main()
  {
   คำสั่งต่างๆ ;
  }
สำหรับฟังก์ชั่นย่อย  เขียนดังนี้
  void ชื่อโปรแกรม(ชนิดตัวแปร  ชื่อตัวแปรคืนค่า)
  {
   คำสั่งต่างๆ และตัวแปร ;
  }
ส่วนอธิบายโปรแกรม ในการเขียนส่วนอธิบายโปรแกรมจะต้องมีขอบเขตเช่นกัน ดังนี้
 / *   ข้อความอธิบาย   */
           

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

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

เฟต(FET)

ไอซีและเบอร์แทน