Mục lục:

Không có đèn xanh: 4 bước
Không có đèn xanh: 4 bước

Video: Không có đèn xanh: 4 bước

Video: Không có đèn xanh: 4 bước
Video: Hướng Dẫn Chậm Bài Nhảy Tập Thể DISCO 24 Bước / Leo( Bài Khớp Nhạc BẤM 🔽 ) 2024, Tháng bảy
Anonim
Không có đèn xanh
Không có đèn xanh
Không có đèn xanh
Không có đèn xanh
Không có đèn xanh
Không có đèn xanh
Không có đèn xanh
Không có đèn xanh

Vì vậy, gã già lười biếng này (L. O. G.) đã làm việc trong một Dự án Ánh sáng Xanh:

www.instructables.com/id/Blue-Light-Projec…

www.instructables.com/id/Blue-Light-Projec…

Chà, đối với bước tiếp theo, tôi muốn một chiếc đèn sáng vào ban ngày và không có ánh sáng xanh vào buổi tối / ban đêm.

Phần cứng thiết kế:

Tôi quyết định sử dụng RTC (Đồng hồ thời gian thực) để kiểm soát thời gian thay đổi ánh sáng.

Tôi chọn DS3231 vì nó có thời gian giữ độ chính xác tốt hơn DS1307. DS3231 có thể là 5v hoặc 3,3v.

Đối với ánh sáng, tôi sẽ sử dụng một chuỗi LED WS2812B. Chúng có giao diện ba dây đơn giản và các đèn LED Đỏ, Xanh lục và Xanh lam có thể điều khiển được. WS2812B là các thiết bị 5v.

Đối với bộ vi điều khiển, tôi sẽ sử dụng Pro Micro, 5v 16MHz.

Mặc dù WS2812B có thể sẽ hoạt động với 3.3V, nhưng tốt hơn nên sử dụng Arduino 5V.

Pro Micro là một Arduino giá rẻ sử dụng vi điều khiển Atmega32U4.

Đèn sẽ có công tắc bật / tắt để bật hoặc tắt đèn.

Sẽ có một chiết áp để kiểm soát độ sáng.

Phần mềm thiết kế:

DS3231 RTC sẽ kiểm soát thời gian, nó có pin dự phòng nên sẽ giữ được thời gian ngay cả khi mất điện.

Trong ngày, tất cả các đèn LED RGB sẽ được bật, có thể điều khiển bằng nồi ở cường độ tối đa.

Đầu buổi tối, các đèn LED Xanh lam sẽ tắt, tối đa là Đỏ và Xanh lục.

Khi tiến triển vào buổi tối, các đèn LED Đỏ và Xanh lục sẽ mờ đi, với ưu tiên Đỏ hơn Xanh lá cây (Thử nghiệm của tôi trong Phần 2 cho thấy các đèn LED Xanh lục có một số màu Xanh lam trong đó).

Sau khoảng 10p.m. tất cả các đèn LED sẽ tắt.

VẤN ĐỀ:

Quay lại mô-đun DS3231 RTC, tôi đã mua của tôi từ Aliexpress giống như tôi đã làm cho các thành phần khác.

Chúng được cho là hoạt động với và sạc pin có thể sạc lại LIR2032. Tôi đã thử nó ra. Sau khoảng một ngày, pin đã chết.

Sau một số tìm kiếm trên Internet, tôi đã tìm thấy bài viết này.

www.onetransistor.eu/2019/07/zs042-ds3231-…

Tôi đồng ý với phân tích này nhưng nghĩ rằng LIR2032 sẽ sạc đầy đủ nhưng không quá mức. Tôi đã nhầm. DS3231 của tôi mặc dù cũng được đánh dấu là ZS-042 như trong bài viết thì hơi khác so với của anh ấy nhưng gần như giống nhau. Vì vậy, tôi đã mở bán diode nhìn thấy trong hình và lắp pin CR2032. Nếu không có diode, mô-đun sẽ không cố sạc pin. Giờ đây, DS3231 giữ thời gian chính xác ngay cả khi ngắt điện và pin sẽ tốt trong nhiều năm.

Yêu cầu về nguồn điện:

WS2812B là một chuỗi đèn LED RGB đôi khi được gọi là NeoPixels. Mỗi NeoPixel yêu cầu tối đa 60mA. Tôi đang sử dụng 12 điểm ảnh Neo nên cần 0,72A. Tôi đang sử dụng bộ chuyển đổi USB 2A nên có nhiều dòng điện.

Bước 1: BlueLamp PCB

BlueLamp PCB
BlueLamp PCB
BlueLamp PCB
BlueLamp PCB

Vì vậy, như tôi thường làm, tôi đã sử dụng phần mềm Eagle Cadsoft miễn phí (bây giờ là Autodesk) để bố trí và tạo PCB của mình.

www.autodesk.com/products/eagle/free-downl…

Các tệp sơ đồ và bảng Eagle được đính kèm cùng với sơ đồ trong một bức tranh.

Một nhận xét về sơ đồ, điện trở 330 ohm và tụ điện 10, 000uFd là các khuyến nghị theo hướng dẫn neopixel của Adafruit:

learn.adafruit.com/adafruit-neopixel-uberg…

Nút bật tắt mà tôi đã sử dụng "Công tắc nút bấm ngọn đuốc" là từ đây:

www.aliexpress.com/item/32904942704.html?s…

Chiết áp 10K (B103) từ đây:

www.aliexpress.com/item/32672253655.html?s…

Bước 2: Lắp ráp đèn

Lắp ráp đèn
Lắp ráp đèn
Lắp ráp đèn
Lắp ráp đèn

Tôi tình cờ có một đế nặng từ một chiếc đèn mà tôi đã mua. Nó có một cái ghim tròn lớn trên đó. Tôi lấy một đoạn ống PVC vừa với nó. Nó hơi lỏng lẻo nên tôi lấy một cái bu lông và một vài đai ốc để tôi có thể siết chặt nó. (xem hình)

WS2812B có thể được cắt thành số lượng NeoPixel mà bạn mong muốn. Dải tôi đã mua có khoảng cách rộng giữa các NeoPixels. Tôi muốn nó sáng hơn một chút vì vậy tôi cắt hai dải 6 NeoPixel và chạy chúng song song với nhau một chút bù trừ. Các dải WS2812B có thể được cắt giữa các NeoPixels. Trong trường hợp này, tôi cần thay đổi 180 độ vì vậy tôi cắt dải và chạy dây jumper ở giữa. Nếu bạn đã từng làm điều này, hãy đảm bảo rằng các tín hiệu và mũi tên chỉ đường là chính xác. (Xem hình)

WS2812B này cũng có dây và đầu nối (đầu nối này là đầu nối JST-SM 3pin nếu bạn muốn sử dụng nó ở nơi khác). Vì đầu nối này đã có ở đó nên tôi chỉ hàn dây vào PCB của mình. Đối với WS2812B này, dây màu đỏ là 5v, màu xanh lá cây là tín hiệu và màu trắng là nối đất.

Khi tôi đã tạo ra PCB, tôi đặt một số băng dính ở phía dưới và dán nó vào đế. Sau đó, tôi cắm Pro Micro và DS3231.

Bước 3: Phác thảo Arduino

Phác thảo Arduino
Phác thảo Arduino

Mặc dù tôi đã mua Pro Micro của mình từ Aliexpress.com, nhưng tôi đã sử dụng thông tin sau để Arduino hoạt động:

learn.sparkfun.com/tutorials/pro-micro--fi…

Để cài đặt thư viện cho DS3231, tôi sử dụng thư viện này:

github.com/PaulStoffregen/DS1307RTC

Tải xuống tệp Zip

Mở Arduino, chọn ‘Phác thảo’ ‘Bao gồm Thư viện’ ‘Thêm thư viện.zip’

Cài đặt phần sau sử dụng cùng một phương pháp

Thư viện thời gian PaulStoffregen

github.com/PaulStoffregen/Time

Thư viện múi giờ

github.com/JChristensen/Timezone

Khi hoàn thành, hãy khởi động Arduino.

Trong Bảng công cụ, chọn “Sparkfun Pro Micro”

Nhấp vào Công cụ một lần nữa, sẽ có một lựa chọn cho bộ xử lý

Bạn có thể cần phải thay đổi nó "Atmega32U4 (5V 16Mhz)"

CẢNH BÁO: Nếu bạn bất cẩn như tôi, tôi đã chọn nhầm “Atmega32U4 (3.3V 8Mhz)”. Điều này làm "gạch" nó để Arduino không thể nhìn thấy nó. Chà, tôi thường cố gắng đọc những thứ mới trước khi tôi nhận được nó và nhớ ra điều gì đó về điều này đang xảy ra:

learn.sparkfun.com/tutorials/pro-micro--fi…

Trong hướng dẫn này, có một phần được gọi là “Cách hồi sinh một Micro‘Bricked’Pro” Như đã đề cập, đó là một thủ tục phức tạp nhưng tôi đã cố gắng khôi phục được.

FYI: Nếu bạn đang thắc mắc tại sao lại có hai phiên bản với điện áp và tốc độ khác nhau, thì Atmega32U4 (giống Atmega328) sẽ hoạt động tốt ở 5V với xung nhịp 16MHz. Nhưng ở 3,3V, thông số thiết kế cho biết xung nhịp 16MHz sẽ không hoạt động, đó là lý do tại sao chúng có xung nhịp 8MHz. Nói chung, phần mềm Arduino sẽ giải quyết mọi vấn đề về thời gian.

MẸO RTC: Hầu hết phần mềm được viết cho DS1307 sẽ hoạt động với DS3231 vì chúng có phần mềm rất giống nhau.

Tiết kiệm thời gian ban ngày

Tôi muốn triển khai DST, vì vậy tôi không phải lập trình lại đèn của mình hai lần một năm. Tôi đã làm việc này trong vài ngày. Tôi không thể tìm thấy bất kỳ lời giải thích đơn giản nào về cách hoạt động của Time, TimeLib và RTClib.

Tôi thực sự đã viết một số mã DST cho IPClock của mình:

www.instructables.com/id/NO-MORE-SPRING-FO…

hoạt động với thời gian Internet nhưng tôi không thể làm cho nó hoạt động với thời gian RTC.

Cuối cùng tôi đã xem qua những điều sau đây của JChristensen:

forum.arduino.cc/index.php?topic=96891.0

github.com/JChristensen/Timezone

Để sử dụng điều này, trước tiên bạn phải đặt RTC thành UTC (Giờ phối hợp quốc tế), đây là thời gian ở Greenwich, Anh. Chà, tôi không biết làm thế nào để làm điều đó nhưng đã tìm thấy bài viết này:

www.justavapor.com/archives/2482

Đã viết lại nó cho Mountain time (đính kèm) UTCtoRTC.ino

Sau đó, tôi kết hợp múi giờ vào Sketch của mình. Thành thật mà nói, tôi chưa thử nghiệm nó nên chỉ giả định rằng nó hoạt động.

Bản phác thảo của tôi được đính kèm MTS_BlueLamp.ino.

Bước 4: Kết luận

Phần kết luận
Phần kết luận

Tôi đã tạo một cái móc nhỏ ở đầu cho mặt nạ CPAP của mình. Tôi thường treo nó trên chiếc đèn ngủ cũ của tôi.

Về cơ bản là rất hài lòng với chiếc đèn này. Hoàn toàn sáng vào ban ngày và không có màu xanh vào buổi tối và ban đêm.

Một điều tôi không thích là tôi không thể sử dụng nó sau 10 giờ tối. và trước 5 giờ sáng

Tôi cũng nhận thấy rằng tôi không sử dụng công tắc bật / tắt vì tôi thường chỉ sử dụng công tắc điều chỉnh độ sáng.

Trong tương lai, tôi có thể viết lại bản phác thảo và thay đổi nút thành công tắc đã lên lịch hoặc đột xuất (bật toàn bộ). Nhưng với kỹ năng viết mã kém của tôi, tôi có thể đợi một lúc.

Đề xuất: