ESP8266 - Chớp tắt bóng LED
Kiến thức
Đèn LED viết tắt (Light Emitting Diodes) - là bóng bán dẫn có thể
phát sáng với màu sắc khác nhau tùy thuộc vào chất liệu bán dẫn. Để điều
khiển được bóng LED cần cung cấp mức điện áp chênh lệch giữa cực âm và
cực dương của bóng LED cao hơn mức điện áp Vf (datasheet), thường là
3.2v, và dòng điện nhỏ hơn mức chịu đựng của nó, thường là 15mA.
Arduino IDE
Biên dịch chương trình (kiểm tra có lỗi hay không).
Biên dịch và nạp chương trình.
Tab tên file.
Khu vực nội dung file
ino
.
Đấu nối
Kết nối bóng LED thông qua điện trở 330Ω vào chân D0 trên board NodeMCU
(tức là chân GPIO16).
Với mã nguồn bên dưới, sau khi kiểm tra chương trình, bạn cần chắc chắn
đã ??? và ???
Mã nguồn chớp tắt dùng Delay
int pin_led = 16;
/* hàm này được gọi 1 lần duy nhất khi khởi động */
void setup() {
pinMode(pin_led, OUTPUT); // cấu hình pin 16 là ngõ ra
}
/* hàm loop sẽ được gọi liên tục */
void loop() {
digitalWrite(pin_led, HIGH); // tắt LED (HIGH - có nghĩa là mức cao)
delay(1000); // chờ 1 giây
digitalWrite(pin_led, LOW); // bật LED bởi mức điện áp LOW
delay(1000); // chờ 1 giây
}
Mã nguồn chớp tắt dùng định thời
int ledPin = 16;
int ledState = LOW;
unsigned long previousMillis = 0;
const long interval = 1000;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
if (ledState == LOW)
ledState = HIGH; // Đổi trạng thái
else
ledState = LOW; // Đổi trạng thái
digitalWrite(ledPin, ledState);
}
}
Digital IO
Tên Pin trong Arduino (Pin number) giống với thứ tự chân của ESP8266.
pinMode
, digitalRead
, và digitalWrite
đều sử dụng Pin Number như
nhau, ví dụ như đọc GPIO2, gọi hàm digitalRead(2).
Các chân GPIO0 đến GPIO15 có thể là INPUT
, OUTPUT
, hay
INPUT_PULLUP
. Chân GPIO16
có thể là INPUT
, OUTPUT
hay
INPUT_PULLDOWN_16
. Khi khởi động, tất cả các chân sẽ được cấu hình là
INPUT
.
Mỗi chân có thể phục vụ cho một tính năng nào đó, ví dụ Serial
, I2C
,
SPI
. Và tính năng đó sẽ được cấu hình đúng khi sử dụng thư viện.
GPIO9
và GPIO11
không được thể hiện bởi vì nó được sử dụng cho việc
kết nối với Flash. Việc sử dụng 2 chân này có thể gây lỗi chương trình.
Ngắt GPIO hỗ trợ thông qua các hàm attachInterrupt
, detachInterrupt
.
Ngắt GPIO có thể gán cho bất kỳ GPIO nào, ngoại trừ GPIO16 và đều hỗ trợ
các ngắt tiêu chuẩn của Arduino như: CHANGE
, RISING
, FALLING
.
Tổng kết
Các ứng dụng mở rộng
Fading LED (sáng dần hay tắt dần)
Chớp tắt LED dùng Ticker
Top comments (0)