Page 214 - เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอร์เบื้องต้น
P. 214

เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอร์เบื้องต้น    30



                       4.3.2 analogWrite(pin, value)

                              ใช้ในการเขียนค่าแอนะล็อกไปยังขาพอร์ตที่ก าหนดไว้เพื่อสร้างสัญญาณ PWM

                       พารามิเตอร์

                              pin - หมายเลขขาพอร์ตของ MCU
                              value - เป็นค่าดิวตี้ไซเกิลมีค่าระหว่าง 0 ถึ ง 255

                       เมื่อค่าเป็น 0 แรงดันของขาพอร์ตที่ก าหนดจะเป็น 0V  เมื่อมีค่าเป็น 255 แรงดันที่ขาพอร์ตจะเป็น +5V

               ส าหรับค่าระหว่าง 0 ถึง 255 จะท าให้ขาพอร์ตที่ก าหนดไว้มีค่าแรงดันเปลี่ยนแปลงในย่าน 0 ถึ ง 5V ค่าที่ส่ง

               กลับจากฟังก์ชั่นเลขจ านวนเต็มจาก 0 ถึง 255

                       หมายเหตุ
                       ขาพอร์ตที่ใช้สร้างสัญญาณ PWM ด้วยฟังก์ชั่น analogWrite () ซึ่งก็คือขา 3, 5, 9, 10 และ 11 จะพิเศษ

               จากขาที่เป็นพอร์ตดิจิตอลปกติ คือไม่ต้องก าหนดค่าเพื่อเลือกเป็น INPUT หรือOUTPUT ค่าความถี่ของสัญญาณ

               PWM มีค่าประมาณ 490Hz ค าสั่ง analogWrite ท างานกับขา 3, 5, 9, 10, 11 เท่านั้น ส าหรับขาอื่นๆ จะต้อง

               เขียนค่าดิจิตอลก าหนดเป็น 0 หรือ 5V

                       ผู้ใช้งานสามารถน าสัญญาณที่ได้จากค าสั่งนี้ไปใช้ในการปรับความสว่างของ LED  หรือต่อขยายกระแส

               เพื่อต่อปรับความเร็วของมอเตอร์ได้ หลังจากเรียกใช้ค าสั่งนี้ที่ขาพอร์ตที่ก าหนดจะมีสัญญาณ PWM ส่งออกมาอย่าง
               ต่อเนื่องจนกว่าจะเรียกใช้ analogWrite (หรือเรียกค าสั่ง digitalRead หรือ digitalWrite ที่ขาเดียวกัน)

                       ตัวอย่างที่ 4.12

                              int ledPin = 11; // LED connected to digital pin 11

                              int analogPin = 0; // potentiometer connected to analog pin 0

                              int val = 0; // variable to store the read value

                       void setup()
                              {

                              pinMode(ledPin, OUTPUT); // sets the pin as output

                              }

                       void loop()

                              {
                              val = analogRead(analogPin); // read the input pin

                              analogWrite(ledPin, val / 4); // analogRead values go from 0 to 1023,

                              // analogWrite values from 0 to 255

                              }




               หน่วยที่ 4 ฟังก์ชั่นพื้นฐานของ Arduino และการควบคุมหลอดไฟ LED                                 เรียบเรียงโดยครูทันพงษ์  ภู่รักษ์
   209   210   211   212   213   214   215   216   217   218   219