วงจรกำเนิดแสง RGB แบบสุ่ม Arduino

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





บทความนี้กล่าวถึงวงจรกำเนิดเอฟเฟกต์เอฟเฟกต์แสง LED สีแดงสีเขียวสีน้ำเงินแบบง่ายๆของ Arduino ในรูปแบบสุ่ม

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



ต้องใช้ฮาร์ดแวร์

สิ่งที่คุณต้องการสำหรับการสร้างระบบนี้:

1) บอร์ด Arduino



2) ไฟ LED RGB

3) ตัวต้านทาน 220 โอห์ม 1/4 วัตต์

4) หน่วยอะแดปเตอร์ 9V AC เป็น DC

เมื่อคุณได้รับหน่วยด้านบนแล้วก็เป็นเพียงการเขียนโปรแกรม Arduino IC ด้วยรหัสตัวอย่างต่อไปนี้จากนั้นจึงรวม LED ตัวต้านทานและแหล่งจ่ายไฟเข้ากับบอร์ด Arduino ดังที่แสดงด้านล่าง:

วงจรกำเนิดแสง RGB แบบสุ่ม Arduino

วิธีการต่อ Arduino ด้วย LED

การตั้งค่าดูเหมือนจะคล้ายกับไฟล์ โครงการ RGB Arduino ก่อนหน้านี้ ใช่มันเป็นเช่นนั้นยกเว้นโปรแกรมที่ได้รับการเปลี่ยนแปลงในตอนนี้เพื่อสร้างเอฟเฟกต์แสง RGB LED แบบสุ่มแทนที่จะเป็นเอฟเฟกต์สี RGB ที่ไหลตามลำดับก่อนหน้านี้

LED ที่ใช้ที่นี่เป็น LED RGB ขนาด 5 มม. 30 mA ซึ่งควรจะให้แสงสว่างที่ค่อนข้างสูงอย่างไรก็ตามสำหรับการใช้งาน LED จำนวนมากขึ้นจากการตั้งค่าเดียวกันคุณอาจต้องใช้ไดรเวอร์ทรานซิสเตอร์บนขา # 8, 10, 11, ซึ่งอาจช่วยให้คุณสามารถเพิ่ม RGB LEDs ควบคู่ไปกับเอฟเฟกต์สีแบบสุ่มที่เสนอได้

รหัส

รหัสตัวอย่างสำหรับวงจรกำเนิดสี Arduino RGB ที่อธิบายไว้ข้างต้นได้รับการตกแต่งด้านล่าง:

*
RGB LED แบบสุ่ม
สี
แสดงไฟล์
ลำดับของสีสุ่มบน RGB LED
โดย Jeremy
ที่มา
ลิขสิทธิ์ (c)
2012 Jeremy Fonte สงวนลิขสิทธิ์.
รหัสนี้คือ
เผยแพร่ภายใต้ใบอนุญาต MIT:
https://opensource.org/licenses/MIT
* /
//one variable for each of red, green, and blue
int r = 0
int g = 0
int b = 0
// the setup routine runs once when you press reset:
void setup() {
// initialize
the four digital pins as outputs.
pinMode(8,
OUTPUT)
pinMode(9,
OUTPUT)
pinMode(10,
OUTPUT)
pinMode(11,
OUTPUT)
digitalWrite(9, HIGH)
}
// the loop routine runs over and over again forever:
void loop() {
r = random(0,
255)
g = random(0,
255)
b = random(0,
255)
analogWrite(8,
r)
analogWrite(10, g)
analogWrite(11, b)
delay(1000)
}




ก่อนหน้านี้: การสร้างนาฬิกาจับเวลาอัตโนมัติสำหรับนักวิ่งนักกีฬาและนักกีฬา ถัดไป: วงจรไฟสัญญาณรถไฟสีแดงกะพริบสีเขียว