Đèn Điều Chỉnh Được Độ Sáng
Trong bài này chúng ta cùng nhau làm một ứng dụng điều chỉnh độ sáng tối của đèn led bằng module núm xoay Rotary Angle. Khi ta xoay sang trái đèn led sẽ mờ dần và xoay sang phải đèn led sẽ sáng dần.
Yêu Cầu Cần Có
Module Blocky đã được thiết lập để kết nối với cloud server (tham khảo phần Cài Đặt Blocky nếu bạn chưa thực hiện)
Module Rotary Angle Sensor
Module led
Kết Nối Phần Cứng
Module led được nối với port D1 của Blocky
Module Rotary Angle thuộc loại analog (đo một dải giá trị) nên phải nối với 1 trong 4 port analog A1-A4. Trong bài này ta sẽ dùng port A1.
Chương Trình
Giải Thích
Module rotary là loại analog, trả về giá trị trong khoảng 0-4095 (analog 12 bit, 2^12=4096, 0 = xoay hết về bên trái, 4095 = xoay hết về bên phải).
Để điều chỉnh độ sáng của led, ta dùng chức năng PWM (Pulse Width Module) với frequency là 1000Hz (1kHz).
Pulse width modulation (PWM) là cách để xuất ra giá trị analog cho một pin digital thay vì chỉ bật hoặc tắt. Điều này thực hiện được bằng cách bật tắt pin này liên tục. Có 2 tham số ảnh hưởng đến PWM là frequency và duty cycle. Duty cycle là khoảng thời gian Pin được bật trong 1 chu kỳ. Thời gian này càng dài thì đèn led nối với Pin này càng sáng.
Do cảm biến Rotary angle trả về giá trị từ 0 đến 4095 mà duty cycle nhận giá trị từ 0 đến 1023 nên ta dùng phép toàn chuyển đổi là duty cần ghi = (giá trị thu được từ rotary * 4095)/2013.