สารบัญ:

เทอร์โมมิเตอร์ RGB โดยใช้ PICO: 6 ขั้นตอน
เทอร์โมมิเตอร์ RGB โดยใช้ PICO: 6 ขั้นตอน

วีดีโอ: เทอร์โมมิเตอร์ RGB โดยใช้ PICO: 6 ขั้นตอน

วีดีโอ: เทอร์โมมิเตอร์ RGB โดยใช้ PICO: 6 ขั้นตอน
วีดีโอ: How to Use WS2812B RGB LEDs with Raspberry Pi Pico (using MicroPython) 2024, กรกฎาคม
Anonim
Image
Image

นั่นคือผลลัพธ์สุดท้ายของความพยายามของเราในวันนี้ เป็นเทอร์โมมิเตอร์ที่จะแจ้งให้คุณทราบว่าห้องของคุณอุ่นเพียงใด โดยใช้แถบ LED RGB ที่วางอยู่ในภาชนะอะคริลิกที่เชื่อมต่อกับเซ็นเซอร์อุณหภูมิเพื่ออ่านอุณหภูมิ และเราจะใช้ PICO เพื่อทำให้โครงการนี้เป็นจริง

ขั้นตอนที่ 1: ส่วนประกอบ

การจ่ายไฟให้กับแถบ RGB ด้วยทรานซิสเตอร์และแหล่งพลังงาน
การจ่ายไฟให้กับแถบ RGB ด้วยทรานซิสเตอร์และแหล่งพลังงาน
  • 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 ด้วยทรานซิสเตอร์และแหล่งพลังงาน

การจ่ายไฟให้กับแถบ RGB ด้วยทรานซิสเตอร์และแหล่งพลังงาน
การจ่ายไฟให้กับแถบ RGB ด้วยทรานซิสเตอร์และแหล่งพลังงาน
การจ่ายไฟให้กับแถบ RGB ด้วยทรานซิสเตอร์และแหล่งพลังงาน
การจ่ายไฟให้กับแถบ RGB ด้วยทรานซิสเตอร์และแหล่งพลังงาน
การจ่ายไฟให้กับแถบ RGB ด้วยทรานซิสเตอร์และแหล่งพลังงาน
การจ่ายไฟให้กับแถบ RGB ด้วยทรานซิสเตอร์และแหล่งพลังงาน

แถบ 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

การควบคุมสีของแถบ LED RGB
การควบคุมสีของแถบ LED RGB
การควบคุมสีของแถบ LED RGB
การควบคุมสีของแถบ LED RGB
การควบคุมสีของแถบ LED RGB
การควบคุมสีของแถบ 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 ขึ้นอยู่กับการอ่านของเซนเซอร์

ควบคุมสีแถบ LED RGB ขึ้นอยู่กับการอ่านของเซ็นเซอร์
ควบคุมสีแถบ LED RGB ขึ้นอยู่กับการอ่านของเซ็นเซอร์
ควบคุมสีแถบ LED RGB ขึ้นอยู่กับการอ่านของเซ็นเซอร์
ควบคุมสีแถบ LED RGB ขึ้นอยู่กับการอ่านของเซ็นเซอร์

นี่เป็นขั้นตอนสุดท้ายในโปรเจ็กต์นี้ และด้วยเหตุนี้ โปรเจ็กต์ของเราจะเปลี่ยนจากการ "โง่" เป็นสมาร์ทและมีความสามารถในการประพฤติตามสภาพแวดล้อม ในการทำเช่นนั้น เราจะเชื่อมต่อ 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: คุณทำเสร็จแล้ว

Image
Image

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

ตอนนี้คุณมีเทอร์โมมิเตอร์แบบ LED ที่ดูสวยงาม ซึ่งจะบอกอุณหภูมิโดยอัตโนมัติเมื่อคุณมองดู ซึ่งสะดวกมากที่จะพูดอย่างน้อย:P

แสดงความคิดเห็นหากคุณมีข้อเสนอแนะหรือข้อเสนอแนะ และอย่าลืมติดตามเราบน Facebook หรือเยี่ยมชมเราที่ mellbell.cc สำหรับเนื้อหาที่ยอดเยี่ยมยิ่งขึ้น

แนะนำ: