สารบัญ:
- ขั้นตอนที่ 1: ส่วนประกอบ
- ขั้นตอนที่ 2: การเปิดเครื่อง RGB Strip ด้วยทรานซิสเตอร์และแหล่งพลังงาน
- ขั้นตอนที่ 3: การควบคุมสีของแถบ LED RGB
- ขั้นตอนที่ 4: ควบคุมสี RGB LED Strip ขึ้นอยู่กับการอ่านของเซนเซอร์
- ขั้นตอนที่ 5: รหัสสุดท้าย
- ขั้นตอนที่ 6: คุณทำเสร็จแล้ว
วีดีโอ: เทอร์โมมิเตอร์ RGB โดยใช้ PICO: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
นั่นคือผลลัพธ์สุดท้ายของความพยายามของเราในวันนี้ เป็นเทอร์โมมิเตอร์ที่จะแจ้งให้คุณทราบว่าห้องของคุณอุ่นเพียงใด โดยใช้แถบ LED RGB ที่วางอยู่ในภาชนะอะคริลิกที่เชื่อมต่อกับเซ็นเซอร์อุณหภูมิเพื่ออ่านอุณหภูมิ และเราจะใช้ PICO เพื่อทำให้โครงการนี้เป็นจริง
ขั้นตอนที่ 1: ส่วนประกอบ
- PICO มีอยู่ใน mellbell.cc ($ 17)
- แถบ LED RGB 1 เมตร
- 3 TIP122 ทรานซิสเตอร์ดาร์ลิงตัน ชุด 10 บนอีเบย์ ($3.31)
- 1 PCA9685 ไดรเวอร์ PWM 12 บิต 16 ช่องสัญญาณ มีให้ใน ebay ($2.12)
- แหล่งพลังงาน 12v
- ตัวต้านทาน 3 1k ohm, มัด 100 บน ebay ($ 0.99)
- เขียงหั่นขนมพร้อมใช้งานบนอีเบย์ ($ 2.30)
- สายจัมเปอร์ตัวผู้-ตัวเมีย มัดละ 40 เส้นบน ebay ($0.95)
ขั้นตอนที่ 2: การเปิดเครื่อง RGB Strip ด้วยทรานซิสเตอร์และแหล่งพลังงาน
แถบ LED เป็นแผงวงจรแบบยืดหยุ่นที่มีไฟ LED มีการใช้ในหลายลักษณะ เช่น ในบ้าน รถยนต์ หรือจักรยาน คุณยังสามารถสร้างอุปกรณ์สวมใส่ RGB สุดเท่ได้โดยใช้อุปกรณ์เหล่านี้
ดังนั้นพวกเขาทำงานอย่างไร? จริงๆแล้วมันค่อนข้างง่าย ไฟ LED ทั้งหมดในแถบ LED เชื่อมต่อแบบขนาน และทำหน้าที่เหมือนไฟ LED RGB ขนาดใหญ่ดวงเดียว และในการเรียกใช้ คุณเพียงแค่เชื่อมต่อแถบกับแหล่งพลังงานกระแสสูง 12v
ในการควบคุมแถบ LED ด้วยไมโครคอนโทรลเลอร์ คุณต้องแยกแหล่งพลังงานออกจากแหล่งควบคุม เนื่องจากแถบ LED ต้องการ 12v และไมโครคอนโทรลเลอร์ของเราไม่สามารถให้แรงดันเอาต์พุตได้มาก และนั่นคือเหตุผลที่เราเชื่อมต่อแหล่งพลังงานกระแสสูงภายนอก 12v ในขณะที่ส่งสัญญาณควบคุมจาก PICO ของเรา
นอกจากนี้ การดึงกระแสไฟของเซลล์ RGB แต่ละเซลล์นั้นสูง เนื่องจาก LED ทุกดวงในนั้น - ไฟ LED สีแดง สีเขียว และสีน้ำเงิน - ต้องการ 20mA ในการทำงาน ซึ่งหมายความว่าเราต้องการ 60mA เพื่อให้แสงเซลล์ RGB เซลล์เดียวสว่างขึ้น และนั่นก็เป็นปัญหามาก เนื่องจากพิน GPIO ของเราสามารถจ่ายไฟได้สูงสุด 40mA ต่อพินเท่านั้น และการเชื่อมต่อแถบ RGB กับ PICO โดยตรงจะเบิร์นได้ ดังนั้นโปรดอย่าทำ
แต่มีวิธีแก้ปัญหาและเรียกว่าทรานซิสเตอร์ดาร์ลิงตันซึ่งเป็นทรานซิสเตอร์คู่หนึ่งที่มีอัตราขยายกระแสสูงมากซึ่งจะช่วยเราเพิ่มกระแสของเราเพื่อเติมเต็มความต้องการของเรา
มาเรียนรู้เพิ่มเติมเกี่ยวกับกำไรในปัจจุบันกันก่อน อัตราขยายปัจจุบันเป็นคุณสมบัติของทรานซิสเตอร์ ซึ่งหมายความว่ากระแสที่ไหลผ่านทรานซิสเตอร์จะถูกคูณด้วยมัน และสมการของมันจะเป็นดังนี้:
กระแสโหลด = กระแสอินพุต * อัตราขยายของทรานซิสเตอร์
สิ่งนี้แข็งแกร่งกว่าในทรานซิสเตอร์ดาร์ลิงตัน เนื่องจากเป็นทรานซิสเตอร์คู่ไม่ใช่ตัวเดียว และเอฟเฟกต์ของพวกมันจะถูกคูณด้วยกันเอง ทำให้เราได้รับกระแสมหาศาล
ตอนนี้เราจะเชื่อมต่อแถบ LED กับแหล่งพลังงานภายนอก ทรานซิสเตอร์ และแน่นอน PICO ของเรา
- ฐาน (ทรานซิสเตอร์) → D3 (PICO)
- คอลเลคเตอร์ (ทรานซิสเตอร์) → B (แถบ LED)
- อิมิตเตอร์ (ทรานซิสเตอร์) → GND
- +12 (แถบ LED) → +12 (แหล่งพลังงาน)
อย่าลืมเชื่อมต่อ GND ของ PICO กับกราวด์แหล่งพลังงาน
ขั้นตอนที่ 3: การควบคุมสีของแถบ LED RGB
เรารู้ว่า PICO ของเรามีขา PWM เดียว (D3) ซึ่งหมายความว่าไม่สามารถควบคุม LED 16 ดวงของเราได้ นี่คือเหตุผลที่เราแนะนำโมดูล PCA9685 16-channel 12-bit PWM I2C แบบ 16 ช่องสัญญาณ ซึ่งช่วยให้เราขยายพิน PWM ของ PICO ได้
ก่อนอื่น I2C คืออะไร?
I2C เป็นโปรโตคอลการสื่อสารที่ใช้เพียง 2 สายเพื่อสื่อสารกับอุปกรณ์หนึ่งเครื่องขึ้นไปโดยระบุที่อยู่ของอุปกรณ์และข้อมูลที่จะส่งข้อมูล
มีอุปกรณ์สองประเภท: อันแรกคืออุปกรณ์หลักซึ่งมีหน้าที่รับผิดชอบในการส่งข้อมูลและอีกอันเป็นอุปกรณ์สเลฟซึ่งรับข้อมูล นี่คือพินลึกหนาบางของโมดูล PCA9685:
- VCC → นี่คือพลังของบอร์ดเอง สูงสุด 3-5v
- GND → นี่คือพินลบ และต้องเชื่อมต่อกับ GND เพื่อให้วงจรสมบูรณ์
- V+ → นี่คือพินไฟเสริมที่จะจ่ายไฟให้กับเซอร์โวหากคุณเชื่อมต่อกับโมดูลของคุณ คุณสามารถปล่อยให้มันตัดการเชื่อมต่อได้หากคุณไม่ได้ใช้เซอร์โวใดๆ
- SCL → Serial clock pin และเราเชื่อมต่อกับ SCL ของ PICO
- SDA → Serial Data pin และเราเชื่อมต่อกับ SDA ของ PICO
- OE → พินที่เปิดใช้งานเอาต์พุต พินนี้ทำงาน LOW เมื่อพินต่ำ เอาต์พุตทั้งหมดจะถูกเปิดใช้งาน เมื่อสูง เอาต์พุตทั้งหมดจะถูกปิดใช้งาน และพินเสริมนี้ใช้เพื่อเปิดใช้งานหรือปิดใช้งานพินของโมดูลอย่างรวดเร็ว
มี 16 พอร์ต แต่ละพอร์ตมี V+, GND, PWM พิน PWM แต่ละตัวทำงานแยกกันโดยสิ้นเชิง และถูกตั้งค่าไว้สำหรับเซอร์โว แต่คุณสามารถใช้เป็นไฟ LED ได้อย่างง่ายดาย PWM แต่ละตัวสามารถรองรับกระแสไฟได้ 25mA ดังนั้นควรระมัดระวัง
ตอนนี้เรารู้แล้วว่าพินของโมดูลของเราคืออะไรและทำอะไร ลองใช้มันเพื่อเพิ่มจำนวนพิน PWM ของ PICO เพื่อให้เราสามารถควบคุมแถบ LED RGB LED ของเราได้
เราจะใช้โมดูลนี้ร่วมกับทรานซิสเตอร์ TIP122 และนี่คือวิธีที่คุณควรเชื่อมต่อกับ PICO ของคุณ:
- VCC (PCA9685) → VCC (PICO)
- GND (PCA9685) → GND.
- SDA (PCA9685) → D2 (PICO)
- SCL (PCA9685) → D3 (PICO)
- PWM 0 (PCA9685) → BASE (TIP122 ตัวแรก)
- PWM 1 (PCA9685) → BASE (TIP122 ที่สอง)
- PWM 2 (PCA9685) → BASE (TIP122 ที่สาม)
อย่าลืมเชื่อมต่อ GND ของ PICO กับ GND ของแหล่งจ่ายไฟ และอย่าเชื่อมต่อพิน PCA9685 VCC กับแหล่งจ่ายไฟ +12 โวลต์ มิฉะนั้นจะเกิดความเสียหาย
ขั้นตอนที่ 4: ควบคุมสี RGB LED Strip ขึ้นอยู่กับการอ่านของเซนเซอร์
นี่เป็นขั้นตอนสุดท้ายในโปรเจ็กต์นี้ และด้วยเหตุนี้ โปรเจ็กต์ของเราจะเปลี่ยนจากการ "โง่" เป็นสมาร์ทและมีความสามารถในการประพฤติตามสภาพแวดล้อม ในการทำเช่นนั้น เราจะเชื่อมต่อ PICO ของเรากับเซ็นเซอร์อุณหภูมิ LM35DZ
เซ็นเซอร์นี้มีแรงดันเอาต์พุตแบบอะนาล็อกที่ขึ้นอยู่กับอุณหภูมิโดยรอบ เริ่มต้นที่ 0v ซึ่งสอดคล้องกับ 0 องศาเซลเซียส และแรงดันไฟฟ้าเพิ่มขึ้น 10mV สำหรับแต่ละองศาที่สูงกว่า 0c ส่วนประกอบนี้ง่ายมากและมีเพียง 3 ขาและเชื่อมต่อดังนี้:
- VCC (LM35DZ) → VCC (PICO)
- GND (LM35DZ) → GND (PICO)
- เอาท์พุต (LM35DZ) → A0 (PICO)
ขั้นตอนที่ 5: รหัสสุดท้าย
ตอนนี้เรามีทุกอย่างที่เชื่อมต่อกับ PICO แล้ว เรามาเริ่มตั้งโปรแกรมเพื่อให้ไฟ LED เปลี่ยนสีตามอุณหภูมิ
สำหรับสิ่งนี้ เราต้องการสิ่งต่อไปนี้:
คอนสตรัค ตัวแปรชื่อ "tempSensor" ด้วยค่า A0 ซึ่งรับค่าที่อ่านได้จากเซ็นเซอร์อุณหภูมิ
ตัวแปรจำนวนเต็มชื่อ "sensorReading" โดยมีค่าเริ่มต้นเป็น 0 ซึ่งเป็นตัวแปรที่จะบันทึกการอ่านเซ็นเซอร์ดิบ
ตัวแปร float ชื่อ "volts" โดยมีค่าเริ่มต้นเป็น 0 ซึ่งเป็นตัวแปรที่จะบันทึกค่าการอ่านข้อมูลดิบของเซ็นเซอร์ที่แปลงเป็นโวลต์
ตัวแปร float ชื่อ "temp" โดยมีค่าเริ่มต้นเป็น 0 ซึ่งเป็นตัวแปรที่จะบันทึกการอ่านค่าโวลต์ของเซ็นเซอร์ที่แปลงแล้วและแปลงเป็นอุณหภูมิ
ตัวแปร Integer ชื่อ "mapped" โดยมีค่าเริ่มต้นเป็น 0 ซึ่งจะบันทึกค่า PWM ที่เราจับคู่กับตัวแปร temp และตัวแปรนี้จะควบคุมสีของแถบ LED
โดยใช้รหัสนี้ PICO จะอ่านข้อมูลของเซ็นเซอร์อุณหภูมิ แปลงเป็นโวลต์ จากนั้นเป็นเซลเซียส และสุดท้ายจะจับคู่องศาเซลเซียสเป็นค่า PWM ที่แถบ LED ของเราอ่านได้ และนั่นคือสิ่งที่เราต้องการ
ขั้นตอนที่ 6: คุณทำเสร็จแล้ว
นอกจากนี้เรายังทำภาชนะอะคริลิกสำหรับแถบ LED เพื่อให้ยืนขึ้นได้อย่างสวยงาม คุณสามารถค้นหาไฟล์ CAD ได้ที่นี่ หากคุณต้องการดาวน์โหลดไฟล์
ตอนนี้คุณมีเทอร์โมมิเตอร์แบบ LED ที่ดูสวยงาม ซึ่งจะบอกอุณหภูมิโดยอัตโนมัติเมื่อคุณมองดู ซึ่งสะดวกมากที่จะพูดอย่างน้อย:P
แสดงความคิดเห็นหากคุณมีข้อเสนอแนะหรือข้อเสนอแนะ และอย่าลืมติดตามเราบน Facebook หรือเยี่ยมชมเราที่ mellbell.cc สำหรับเนื้อหาที่ยอดเยี่ยมยิ่งขึ้น
แนะนำ:
เทอร์โมมิเตอร์ - Micro:Bit: 11 Steps
เครื่องวัดอุณหภูมิ - Micro:Bit: ใช้ Micro:Bit ของคุณเพื่ออ่านอุณหภูมิของสภาพแวดล้อมของคุณ
เทอร์โมมิเตอร์ IR แบบไม่สัมผัส 8 ขั้นตอน (พร้อมรูปภาพ)
เครื่องวัดอุณหภูมิอินฟราเรดแบบไม่สัมผัส: กรมอนามัยในพื้นที่ของฉันติดต่อกับฉันเพราะพวกเขาต้องการวิธีติดตามอุณหภูมิร่างกายของสุขภาพของพนักงานในแต่ละวันในช่วงวิกฤตโควิด-19 ในปี 2020 ปกติ เทอร์โมมิเตอร์ IR นอกชั้นวางเริ่มหายาก
โล่สำหรับ Arduino จากหลอด VFD รัสเซียรุ่นเก่า: นาฬิกา, เทอร์โมมิเตอร์, โวลต์มิเตอร์: 21 ขั้นตอน (พร้อมรูปภาพ)
Shield for Arduino จากหลอด VFD รุ่นเก่าของรัสเซีย นาฬิกา เทอร์โมมิเตอร์ โวลต์มิเตอร์…: โครงการนี้ใช้เวลาเกือบครึ่งปีจึงจะเสร็จสมบูรณ์ ฉันไม่สามารถอธิบายได้ว่าโครงการนี้มีงานมากแค่ไหน การทำโปรเจ็กต์นี้คนเดียวจะใช้เวลาตลอดไป ดังนั้นฉันจึงได้รับความช่วยเหลือจากเพื่อนๆ ที่นี่คุณสามารถเห็นงานของเราที่รวบรวมไว้ในคำสั่งเดียวที่ยาวมาก
Neopixel Ws2812 Rainbow LED เรืองแสงพร้อม M5stick-C - เรียกใช้ Rainbow บน Neopixel Ws2812 โดยใช้ M5stack M5stick C โดยใช้ Arduino IDE: 5 ขั้นตอน
Neopixel Ws2812 Rainbow LED เรืองแสงพร้อม M5stick-C | เรียกใช้ Rainbow บน Neopixel Ws2812 โดยใช้ M5stack M5stick C การใช้ Arduino IDE: สวัสดีทุกคนในคำแนะนำนี้ เราจะเรียนรู้วิธีใช้ neopixel ws2812 LED หรือแถบนำหรือเมทริกซ์นำหรือวงแหวน LED พร้อมบอร์ดพัฒนา m5stack m5stick-C พร้อม Arduino IDE และเราจะทำ ลายรุ้งกับมัน
Arduino AD8495 เทอร์โมมิเตอร์: 7 ขั้นตอน
Arduino AD8495 เทอร์โมมิเตอร์: คู่มือฉบับย่อวิธีแก้ปัญหาของคุณด้วยเทอร์โมมิเตอร์ชนิด K นี้ เราหวังว่าจะช่วยได้ :) สำหรับโปรเจ็กต์ต่อไปนี้ คุณจะต้องมี: Arduino 1x (ชนิดใดก็ได้ ดูเหมือนเราจะมี Arduino Nano ฟรี 1 รายการ) AD8495 1x (โดยทั่วไปจะมาพร้อมกับชุดเซ็นเซอร์