ไฟ LED 3 ดวงกะพริบ (R, G, B) ตามลำดับโดยใช้วงจร Arduino

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา





โพสต์อธิบายวิธีการเรียกใช้หรือกะพริบ LED สามดวงตามลำดับโดยใช้ Arduino โพสต์นี้เขียนและส่งโดย: แจ็คแฟรนโก

PROGRAM
/* make RGB LEDs to blink in series one by one at interval
of 1000MS */

int R = 12int G = 11int B = 10
void setup(){ pinMode
(R,OUTPUT) pinMode
(G,OUTPUT) pinMode
(B,OUTPUT)

}
void loop(){ digitalWrite
(R,HIGH) delay (1000) digitalWrite
(R,LOW) delay (1000) digitalWrite
(G,HIGH) delay (1000) digitalWrite
(G,LOW) delay (1000) digitalWrite
(B,HIGH) delay (1000) digitalWrite
(B,LOW) delay (1000)

}



คำอธิบาย

วันนี้เราจะไป
เพื่อเรียนรู้การเปิดและปิดไฟ LED 3 ดวง (แดง, เขียว, น้ำเงิน) ทีละดวงในช่วงเวลา
1000MS นั่นคือหนึ่งวินาที
int R = 12 int G = 11 int B = 10

ดังที่เราทราบถึงคำสั่งจำนวนเต็มที่เราเคยเรียนรู้มาก่อน
วันนี้เราจะใช้จำนวนเต็ม R, G & B ซึ่งจะถูกตั้งค่าบนพิน arduino หมายเลข 12, 11 และ 10 ตามลำดับ
เราใช้ R, G และ B สำหรับสีนำในการตั้งค่าและปิดมันอย่างเป็นความลับเพื่อให้ซับซ้อนน้อยลงและเข้าใจง่ายในสิ่งที่เรากำลังทำ
หลังจากตั้งค่าจำนวนเต็มทั้งหมดตามที่แสดงในโปรแกรมด้านบนเราจะกำหนดส่วนของโปรแกรมหลักซึ่งเป็นการตั้งค่าโมฆะตามที่ระบุไว้ด้านล่าง



void setup(){ pinMode
(R,OUTPUT) pinMode
(G,OUTPUT) pinMode
(B,OUTPUT)

ที่นี่เรากำลังระบุโหมดไพน์เป็นเอาต์พุตด้วยจำนวนเต็มที่ตั้งไว้ก่อนหน้านี้เช่น R สำหรับพินหมายเลข 12, G สำหรับพินหมายเลข 11 และ B สำหรับพินหมายเลข 10 หลังจากระบุพิน arduino ด้วยพินโหมดเป็นเอาต์พุตโดยใช้เวลาจำนวนเต็มเพื่อตั้งค่าลูปของเราสำหรับพินทั้งหมดที่จะทำงานด้วย ที่นี่ฟังก์ชั่นหลักที่ 2 คือ void loop ตามที่ระบุด้านล่าง

void loop(){ digitalWrite
(R,HIGH) delay (1000) digitalWrite
(R,LOW) delay (1000) digitalWrite
(G,HIGH) delay (1000) digitalWrite
(G,LOW) delay (1000) digitalWrite
(B,HIGH) delay (1000) digitalWrite
(B,LOW) delay (1000)

} ในคำสั่งของลูปเรากำลังบอกให้ arduino ทำงานกับพินหมายเลข 12 ซึ่งระบุว่าเป็น R เป็นจำนวนเต็มและเอาต์พุตในการตั้งค่าโมฆะ เราจะบอกให้ arduino ตั้งค่าพินหมายเลข 12 ที่ตำแหน่ง 'สูง' ซึ่งหมายถึง 'เปิด' และรอหนึ่งวินาทีซึ่ง 1000MS ในภาษาทางคณิตศาสตร์โดยใช้ฟังก์ชัน 'ดีเลย์' สคริปต์ที่ระบุด้านล่างจะถูกตั้งค่าให้นำไปที่ตำแหน่งและจะรอ 1 วินาที แต่ Arduino จะไม่เข้าใจว่าจะทำอย่างไรหลังจากรอ 1 วินาทีสิ่งนี้จะทำให้อยู่ในตำแหน่งเป็นเวลานาน

digitalWrite
(R,HIGH) delay (1000)

ดังนั้นหลังจากผ่านไปหนึ่งวินาทีเราต้องบอกให้ arduino ตั้งค่า pin no '12' เช่น 'R' ไปที่ตำแหน่ง 'low' ซึ่งเป็น 'OFF'

digitalWrite
(R,LOW)

คำสั่งที่ระบุไว้ข้างต้นจะทำให้นำออก หากเราไม่แสดงความคิดเห็นเพื่อรอ 1 วินาที Arduino จะยังคงอ่านลูปต่อไปและหมุน LED ไปที่ตำแหน่ง“ ON” บ่อยๆดังนั้นในขั้นตอนนี้เราต้องแสดงความคิดเห็นและระบุฟังก์ชันการหน่วงเวลาเพื่อบอก Arduino ว่าหลังจากพิน 12 ใน“ OFF” รอ 1 วินาทีซึ่ง 1000MS.

delay (1000)

นี่คือลูปที่สมบูรณ์สำหรับพินหมายเลข 12 ซึ่งเราได้ระบุไว้สำหรับไฟ LED สีแดง ซึ่งจะส่งผลให้เปิดไฟ led และรอ 1 วินาทีและปิด LED แล้วรอ 1 วินาที หลังจากนี้เราต้องตั้งค่าลูปเดียวกันสำหรับ LED สีเขียวและสีน้ำเงินซึ่งมีดังนี้

digitalWrite
(G,HIGH) delay (1000) digitalWrite
(G,LOW) delay (1000) digitalWrite
(B,HIGH) delay (1000) digitalWrite
(B,LOW) delay (1000)

โปรแกรมนี้จะตั้งค่า LED สามดวง R, G & B เพื่อเปิด“ ON” และ“ OFF” ตามลำดับเป็นเวลานาน คุณสามารถตั้งโปรแกรม LED ได้มากกว่า 3 ดวงเพื่อเปิดและปิดตามที่คุณต้องการ บทช่วยสอนนี้มีไว้สำหรับ Newbees เพื่อทำความเข้าใจโปรแกรมและเล่นกับ Arduino




คู่ของ: วงจรตรวจจับอินฟราเรด (IR) แบบปรับ ถัดไป: สร้างวงจรรีเซ็ตการตั้งค่าอย่างง่ายโดยใช้ IC 555