14:30 05/04/2023
ESP8266 NodeMCU PWM với Arduino IDE – Đèn LED mờ (Đầu ra tương tự)
ESP8266 NodeMCU PWM với Arduino IDE – Đèn LED
mờ (Đầu ra tương tự)
Hướng dẫn này chỉ ra cách tạo tín hiệu PWM với ESP8266 NodeMCU bằng Arduino IDE.
Ví dụ: chúng tơi sẽ giảm độ sáng của đèn LED bằng cách thay đổi chu kỳ hoạt động theo
thời gian.
Để tạo tín hiệu PWM trên các chân ESP8266 bằng Arduino IDE, hãy sử dụng
analogWrite(pin, value) . Giá trị là một số nguyên từ 0 đến 255.
Đối với các bản phát hành ESP8266 trước 3.0, phạm vi mặc định nằm trong khoảng từ 0
đến 1023. Phạm vi PWM có thể được thay đổi bằng cách gọi
analogWriteRange(new_range) .
Bạn cũng có thể muốn đọc các hướng dẫn khác về PWM:
Trước khi tiếp tục với hướng dẫn này, bạn nên cài đặt tiện ích bổ sung ESP8266 trong
Arduino IDE của mình. Thực hiện theo hướng dẫn tiếp theo để Cài đặt ESP8266 trong
Arduino IDE .
ESP8266 NodeMCU PWM (Điều chế độ rộng xung)
Các GPIO ESP8266 có thể được đặt thành đầu ra 0V hoặc 3,3V, nhưng chúng không
thể xuất bất kỳ điện áp nào ở giữa. Tuy nhiên, bạn có thể xuất điện áp mức trung bình
“giả” bằng cách sử dụng điều chế độ rộng xung (PWM), đây là cách bạn sẽ tạo ra các
mức độ sáng đèn LED khác nhau cho dự án này.
/>
1/7
14:30 05/04/2023
ESP8266 NodeMCU PWM với Arduino IDE – Đèn LED mờ (Đầu ra tương tự)
Nếu bạn xen kẽ điện áp của đèn LED giữa CAO và THẤP rất nhanh, mắt bạn không thể
theo kịp tốc độ bật và tắt của đèn LED; bạn sẽ chỉ thấy một số chuyển màu về độ sáng.
Về cơ bản, đó là cách hoạt động của PWM — bằng cách tạo ra đầu ra thay đổi giữa
CAO và THẤP ở tần số rất cao.
Chu kỳ nhiệm vụ là phần nhỏ của khoảng thời gian mà đèn LED được đặt ở mức CAO.
Hình dưới đây minh họa cách hoạt động của PWM.
Chu kỳ hoạt động là 50 phần trăm dẫn đến độ sáng của đèn LED là 50 phần trăm, chu kỳ
hoạt động là 0 có nghĩa là đèn LED tắt hoàn toàn và chu kỳ hoạt động là 100 có nghĩa là
/>
2/7
ESP8266 NodeMCU PWM với Arduino IDE – Đèn LED mờ (Đầu ra tương tự)
14:30 05/04/2023
đèn LED được bật hoàn toàn. Thay đổi chu kỳ nhiệm vụ là cách bạn tạo ra các mức độ
sáng khác nhau.
tương tựWrite()
Để tạo tín hiệu PWM trên một chân nhất định, bạn sử dụng chức năng sau:
analogWrite(pin, value);
pin : PWM có thể được sử dụng trên các chân 0 đến 16
giá trị : phải nằm trong phạm vi từ 0 đến PWMRANGE , theo mặc định là 255. Khi
giá trị là 0, PWM bị vô hiệu hóa trên chân đó. Giá trị 255 tương ứng với chu kỳ nhiệm
vụ 100%
Bạn có thể thay đổi phạm vi PWM bằng cách gọi:
analogWriteRange(new_range);
Theo mặc định, tần số PWM của ESP8266 là 1kHz. Bạn có thể thay đổi tần số PWM
bằng: analogWriteFreq(new_frequency);
Các giá trị hợp lệ là từ 100Hz đến 40000Hz.
Đèn LED mờ ESP8266 NodeMCU với PWM
Trong phần này, chúng ta sẽ xây dựng một ví dụ đơn giản làm mờ đèn LED để bạn thấy
cách sử dụng PWM trong các dự án của mình. Bạn sẽ cần những phần sau:
ESP8266 (đọc bảng phát triển ESP8266 tốt nhất
) đèn LED 5mm điện trở 330 Ohm bánh mì dây
nhảy
Máy hiện sóng tùy chọn (đọc Máy hiện sóng tốt nhất cho người mới bắt đầu )
Nếu đang sử dụng ESP-01 , bạn cần có một lập trình viên FTDI hoặc Bộ điều hợp
nối tiếp để tải mã lên.
Bạn có thể sử dụng các liên kết trước hoặc truy cập trực tiếp vào
MakerAdvisor.com/tools để tìm tất cả các bộ phận cho dự án của mình với giá tốt nhất!
sơ đồ
Sau khi tải mã lên, hãy đấu dây đèn LED vào ESP8266 của bạn như thể hiện trong sơ đồ
sau. Chúng tôi đang kết nối đèn LED với GPIO 2 , nhưng bạn có thể sử dụng bất kỳ
GPIO phù hợp nào khác.
/>
3/7
14:30 05/04/2023
ESP8266 NodeMCU PWM với Arduino IDE – Đèn LED mờ (Đầu ra tương tự)
Nếu bạn đang sử dụng ESP-01, bạn có thể kiểm tra sơ đồ chân bo mạch tại đây .
Mã PWM ESP8266 NodeMCU
Sao chép mã vào Arduino IDE của bạn và tải nó lên ESP8266 của bạn.
/*********
Rui Santos
Complete project details at
*********/ const int
ledPin = 2;
void setup() {
}
void loop() {
// increase the LED brightness
for(int dutyCycle = 0; dutyCycle < 255; dutyCycle++){
// changing the LED brightness with PWM
analogWrite(ledPin, dutyCycle);
delay(1);
}
// decrease the LED brightness
for(int dutyCycle =
255; dutyCycle > 0; dutyCycle--){
// changing the LED brightness with PWM
analogWrite(ledPin, dutyCycle);
delay(1);
}
}
/>
4/7
14:30 05/04/2023
ESP8266 NodeMCU PWM với Arduino IDE – Đèn LED mờ (Đầu ra tương tự)
Xem mã thô
Cách thức hoạt động của mã
Tiếp tục đọc phần này để tìm hiểu cách hoạt động của mã hoặc chuyển sang phần tiếp
theo.
Bắt đầu bằng cách xác định pin LED được gắn vào. Trong trường hợp này, đèn LED
được gắn vào GPIO 2 (D4). const
int ledPin = 2;
Trong loop() , bạn thay đổi chu kỳ nhiệm vụ trong khoảng từ 0 đến 255 để tăng độ sáng
của đèn LED.
for(int dutyCycle = 0; dutyCycle < 255; dutyCycle++){
// changing the LED brightness with PWM
analogWrite(ledPin, dutyCycle);
delay(1); }
Và sau đó, giữa 255 và 0 để giảm độ sáng.
for(int dutyCycle = 255; dutyCycle > 0; dutyCycle--){
// changing the LED brightness with PWM
analogWrite(ledPin, dutyCycle);
delay(1);
}
Để đặt độ sáng của đèn LED, bạn cần sử dụng hàm analogWrite() chấp nhận làm đối số
GPIO nơi bạn muốn nhận tín hiệu PWM và giá trị trong khoảng từ 0 đến 255 để đặt chu
kỳ nhiệm vụ.
Tải lên mã
Trong Arduino IDE của bạn, đi tới Công cụ > Bảng mạch và chọn kiểu máy ESP8266
của bạn (Nếu bạn đang sử dụng một chiếc ESP-01, hãy chọn “Mô-đun ESP8266
chung”).
Vào Tools > Port và chọn cổng COM mà ESP8266 được kết nối.
Nếu đang sử dụng ESP-01, bạn cần một lập trình viên FTDI hoặc Bộ điều hợp nối tiếp để
tải mã lên. Dưới đây là các kết nối bạn cần thực hiện:
/>
5/7
ESP8266 NodeMCU PWM với Arduino IDE – Đèn LED mờ (Đầu ra tương tự)
14:30 05/04/2023
ESP-01
Lập trình viên FTDI
RX
TX
TX
RX
CH_PD
3,3V
GPIO 0
GND
VCC
3,3V
GND
GND
trình diễn
Sau khi tải lên bản phác thảo của bạn, đèn LED được kết nối với GPIO 2 sẽ tăng và
giảm độ sáng theo thời gian.
Bạn có thể kết nối GPIO 2 với máy hiện sóng để xem tín hiệu PWM thay đổi như thế nào
theo thời gian.
/>
6/7
14:30 05/04/2023
ESP8266 NodeMCU PWM với Arduino IDE – Đèn LED mờ (Đầu ra tương tự)
Đọc hướng dẫn mua hàng của chúng tơi: Máy hiện sóng tốt nhất cho người mới bắt
đầu và người u thích điện tử .
kết thúc
Chúng tơi hy vọng bạn thấy hướng dẫn này về cách sử dụng ESP8266 PWM hữu ích.
Bên cạnh việc kiểm sốt độ sáng của đèn LED, PWM cũng có thể được sử dụng để kiểm
soát tốc độ của động cơ DC .
/>
7/7