Arduino ตอน9 วิธีใช้ Analog output (PWM) ใน arduino

13 Jul 2019,
Share: 
Cover image

สวัสดีครับ วันนี้เราจะมาเรียนรู้การใช้งาน Analog output หรือ PWM ใน Arduino กันครับ โดยปกติแล้ว Arduino จะทํางานกับข้อมูลหรือ I/O ที่เป็นแบบ Digital HIGH/LOW (0V/5V) แต่ในบางกรณีเราอาจจําเป็นต้องใช้งาน I/O ที่เป็นแบบ Analog (0v, 1V, 2V…5V) เพื่อใช้ควบคุมอุปกรณ์ที่เป็นแบบ Analog เช่น ความสว่างของหลอดไฟ, ควบคุมความเร็วของ Motor ฯลฯ

เริ่มเรียนรู้จาก Workshop ควบคุมความความสว่างของหลอด LED ด้วย Analog output (PWM) ไปทีละ Step ดังนี้

Step1: ทําความรู้จักกับ Analog output ใน Arduino

นอกจาก Arduino จะมี Analog input มาให้เราใช้งานแล้ว ก็ยังมี Analog output มาให้เราใช้งานด้วยเช่นกัน ซึ่ง Arduino ก็จะมี Pin ที่เป็น Analog output มาให้ (แต่ละรุ่นก็จะมีตําแหน่งของ Pin ที่แตกต่างกันออกไป อ่านได้จากคู่มือ) ซึ่งเราสามารถใช้งานโดยกําหนดระดับแรงดันของ Output ได้ ตั้งแต่ 0-255 (256 ระดับ)

Function ที่ใช้ควบคุม Analog output คือ analogWrite() จะอธิบายเพิ่มเติมในส่วนของ Coding ครับ

Step2: อุปกรณ์ที่ใช้

  • Arduino board UNO
  • LED
  • ตัวต้านทาน 220 โอห์ม

Step3: ต่อวงจร

ต่อวงจร โดยเราจะใช้ Pin 9 เป็น Analog output ครับ ซึ่งตัวต้านทานจะช่วยลดระดับแรงดันให้เหมาะสมกับ LED ครับ

Image

Step4: ลงมือ Coding

Coding ตามนี้ได้เลยครับ

int ledPin = 9;
int level = 0;

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  delay(10);
  analogWrite(ledPin, level); // สั่ง Output ให้มีค่าตาม level
  level = (level + 1) % 256; // เพิ่มค่า level 0-255
}

จาก Code โปรแกรมด้านบน ทุกๆครั้งที่วน Loop เราจะทําการเพิ่ม level ทีละ 1 แล้วนํา level ไปปรับระดับของ Output ด้วยคําสั่ง “analogWrite(ledPin, level);” และถ้า level เกินกว่า 255 จะปรับ level เป็น 0 ด้วยการ mod 256 (% 256) ทําแบบนี้ไปเรื่อยๆ ทําให้ LED จะค่อยๆสว่างขึ้น เมื่อสว่างเต็มที่ก็จะดับและค่อยๆสว่างขึ้นอีกครั้ง ดังรูปครับ

Image

เท่านี้เราก็จะสามารถนําไปควบคุมอุปกรณ์ตามที่เราต้องการได้แล้วครับ

ขอบคุณทุกทานที่อ่าน และ Share บทความนี้ แล้วเจอกันใหม่บทความหน้านะครับ :)

Suggestion blogs

Tag and push image to docker registry

สวัสดีครับ ในบทความนี้อธิบายถึงวิธีการ Tag และ push Image ที่เราสร้างขึ้นไปใว้ใน Docker Registry (hub.docker.com) ก่อนที่จะเริ่มเข้าเรื่อง ถ้าอ่านมาถึงตอนนี้แล้วยัง งงๆ ให้กลับไปอ่านเรื่อง สร้าง Docker Image ก่อนครับเพราะเนื่อหาในบทความนี้จะต่อเนื่องกันครับ ก่อน push image ของเราขึ้น Docker Registry ให้เราไปสมัคร account ของ hub.docker.com เมื่อเรียบร้อยผมจะอธิบายโดยแบ่งเป็นสองขั้นตอนดังนี้

Arduino ตอน8 วิธีใช้ Analog input ใน arduino

สวัสดีครับ บทความนี้เราจะมาเรียนรู้ว่า Analog input ใน Arduino มันคืออะไร มีวิธีการใช้งานอย่างไร พร้อมทั้งตัวอย่างการใช้งานเบื้องต้น เรามาเริ่มต้นไปทีละ Step ดังนี้ครับ

Arduino ตอน6 Serial interface ใน Arduino

Serial เป็นรูปแบบการสื่อสารแบบ Asynchronous ชนิดหนึ่งที่ Arduino นํามาใช้ในการสื่อสารกับ Device อื่นๆ เช่น Computer, Arduino, Module Sensor ต่างๆ หรืออุปกรณ์อะไรก็ตามที่รองรับการส่งข้อมูลแบบ Serial สําหรับข้อมูลเพิ่มเติมของการสือสารแบบ Serial อ่านรายละเอียดเพิ่มเติมได้จากบนความนี้ครับ TTL UART RS232 คืออะไร


Copyright © 2019 - 2025 thiti.dev |  v1.56.0 |  Privacy policy | 

Build with ❤️ and Astro.

Github profile   Linkedin profile   Instagram   X profile   Nostr   Youtube channel   Telegram   Email contact   วงแหวนเว็บ