ESP8266 Biến trở
Tutorial này hướng dẫn bạn cách sử dụng ESP8266 với một potentiometer, còn được biết đến với các tên pot, trimmer, biến trở (variable resistor), rheostat, hoặc cảm biến góc quay. Cụ thể, chúng ta sẽ học:
- Cách hoạt động của potentiometer.
- Cách kết nối một potentiometer với ESP8266.
- Cách lập trình ESP8266 để đọc giá trị từ potentiometer.
- Cách chuyển đổi giá trị đã đọc sang các giá trị khác như điện áp, góc quay của servo, tốc độ của động cơ, độ sáng của LED...
Phần cứng cần chuẩn bị
| 1 | × | ESP8266 NodeMCU ESP-12E | ||
| 1 | × | Recommended: ESP8266 NodeMCU ESP-12E (Uno-form) | ||
| 1 | × | USB Cable Type-A to Type-C (for USB-A PC) | ||
| 1 | × | USB Cable Type-C to Type-C (for USB-C PC) | ||
| 1 | × | Chiết áp | ||
| 1 | × | Alternatively, 10k Ohm Trimmer Potentiometer | ||
| 1 | × | Mô-đun chiết áp có núm xoay | ||
| 1 | × | (Hoặc) Potentiometer Kit | ||
| 1 | × | (Hoặc) Potentiometer Module with Knob | ||
| 1 | × | breadboard | ||
| 1 | × | dây jumper | ||
| 1 | × | (Khuyến nghị) Screw Terminal Expansion Board for ESP8266 | ||
| 1 | × | (Khuyến nghị) Power Splitter for ESP8266 Type-C |
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Về biến trở
Một biến trở quay còn được biết đến với các tên gọi là pot, trimmer, biến trở điều chỉnh, rheostat, hoặc cảm biến góc quay. Nó được dùng để điều chỉnh bằng tay giá trị của một thứ gì đó. Ví dụ bao gồm âm lượng của máy stereo, độ sáng của một bóng đèn, và mức phóng đại của một máy hiện dao động.

Bố trí chân của biến trở
Một biến trở thường có ba chân:
- Chân GND nên được kết nối với đất (0V).
- Chân VCC nên được kết nối với nguồn điện áp (5V hoặc 3.3V).
- Chân đầu ra gửi điện áp đến chân đầu vào của Arduino.

※ Lưu ý:
Các chân GND và VCC có thể hoán đổi cho nhau.
Cách hoạt động
Độ quay của trục biến trở có thể từ 0°, tương ứng với vị trí gần nhất với GND, đến một góc tối đa, gần nhất với chân VCC, được gọi là ANGLE_MAX.
※ Lưu ý:
Giá trị của ANGLE_MAX được xác định bởi nhà sản xuất. Nói chung, chúng ta không cần xem xét giá trị này trừ khi chúng ta đang tính toán một góc quay (xem phần các trường hợp sử dụng).

Nguyên lý hoạt động:
- Người dùng xoay trục của biến trở
- ⇒ Góc của biến trở được thay đổi
- ⇒ Điện trở của biến trở được thay đổi
- ⇒ Điện áp tại chân đầu ra của biến trở được thay đổi
- ⇒ Giá trị tương tự ESP8266 đọc được bị thay đổi
ESP8266 - Biến trở xoay
Một số chân của ESP8266 có thể hoạt động như đầu vào tương tự. Các chân đầu vào tương tự này chuyển đổi điện áp (từ 0 V đến VCC) thành các giá trị số nguyên (từ 0 đến 1023), được gọi là giá trị ADC hoặc giá trị tương tự.
Chúng ta có thể kết nối một chân đầu ra của biến trở với một chân đầu vào analog. Điều này cho phép chúng ta đọc giá trị analog từ chân và chuyển đổi nó thành một giá trị có ý nghĩa.
Giá trị mà ESP8266 nhận được không phải là một góc hay điện áp; thay vào đó, nó là một giá trị số nguyên nằm trong khoảng từ 0 đến 1023.
Một khi chúng ta đã thu được giá trị số nguyên từ chân đầu vào analog, chúng ta có thể quy đổi giá trị này sang một giá trị khác. Hãy xem xét các ứng dụng.
Các trường hợp sử dụng
- Điều chỉnh lại tỷ lệ theo góc của biến trở.
- Điều chỉnh lại tỷ lệ theo điện áp của biến trở.
- Điều chỉnh lại tỷ lệ về một giá trị có thể điều khiển, chẳng hạn như âm lượng của một dàn stereo, độ sáng, hoặc tốc độ của động cơ DC - đây là trường hợp sử dụng phổ biến nhất.
Phạm vi tái tỷ lệ
| FROM | TO | |||
|---|---|---|---|---|
| Angle | rotated by user | 0° | → | ANGLE_MAX |
| Voltage | from potentiometer's pin | 0V | → | VCC |
| ADC value | read by Arduino | 0 | → | 1023 |
| Other value | converted by Arduino | VALUE_MIN | → | VALUE_MAX |
Sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image
Xem thêm Sơ đồ chân ESP8266 và Cách cấp nguồn cho ESP8266.
Cách Lập Trình Cho Biến Trở
- Truy cập chân đầu ra của biến trở bằng analogRead() và đọc giá trị từ chân đầu vào.
- Sử dụng hàm map() để điều chỉnh góc quay của biến trở.
- Điều chỉnh điện áp về mức của biến trở.
- Điều chỉnh lại giá trị sao cho có thể kiểm soát được, ví dụ như âm lượng của một dàn stereo, độ sáng, hoặc tốc độ của động cơ DC.
- Ví dụ, chúng ta có thể điều chỉnh độ sáng của một LED bằng cách tái chuẩn hóa. Như được nêu trong , độ sáng của LED có thể được điều chỉnh bằng một giá trị PWM dao động từ 0 (hoàn toàn tắt) đến 255 (hoàn toàn bật). Do đó, chúng ta có thể ánh xạ giá trị tương tự (analog) tới độ sáng của LED (từ tắt đến sáng nhất) như sau:
Nếu bạn muốn điều chỉnh LED từ đèn ngủ mờ sang sáng nhất của nó,
※ Lưu ý:
Hàm map() bị giới hạn ở việc tái chuẩn hóa một giá trị analog về kiểu int hoặc long. Nếu giá trị điều khiển là kiểu float, thì hàm floatMap() nên được sử dụng thay cho map().
Mã nguồn ESP8266
Hướng dẫn từng bước
Để bắt đầu với ESP8266 trên Arduino IDE, hãy làm theo các bước sau:
- Hãy xem hướng dẫn ESP8266 - Cài đặt phần mềm nếu đây là lần đầu bạn sử dụng ESP8266.
- Nối các thành phần như được vẽ trong sơ đồ.
- Kết nối bo mạch ESP8266 với máy tính của bạn bằng cáp USB.
- Mở Arduino IDE trên máy tính của bạn.
- Chọn bo mạch ESP8266 phù hợp, chẳng hạn như (ví dụ NodeMCU 1.0 (ESP-12E Module)), và cổng COM tương ứng của nó.
- Sao chép mã và mở nó trong Arduino IDE.
- Khi đã mở, nhấn nút Upload để tải mã lên ESP8266.

- Mở Serial Monitor.
- Quay biến trở.
- Xem kết quả trên Serial Monitor.
※ Lưu ý:
Hướng dẫn này sử dụng hàm analogRead() để lấy dữ liệu từ một ADC (Bộ chuyển đổi tương tự sang số) được kết nối với một cảm biến hoặc một bộ phận khác. ADC của ESP8266 hoạt động tốt cho các dự án mà bạn không cần các giá trị đo đạc quá chính xác. Tuy nhiên, hãy nhớ rằng ADC của ESP8266 không quá chính xác cho các phép đo chi tiết. Nếu dự án của bạn cần độ chính xác cao, bạn có thể muốn sử dụng một ADC riêng như ADS1115 với ESP8266, hoặc sử dụng Arduino như Arduino Uno R4 WiFi, vốn có một ADC đáng tin cậy hơn.
Video Tutorial
Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.
Thách thức bản thân
Sử dụng biến trở để thực hiện một trong các nhiệm vụ sau:
- Điều chỉnh vị trí của động cơ servo. Mẹo: Xem ESP8266 - Động cơ servo.
- Điều chỉnh độ sáng của đèn LED. Mẹo: Xem ESP8266 - LED - Mờ dần.
Kiến thức bổ sung
- Các chân GND và VCC có thể hoán đổi cho nhau mà không có quy ước cụ thể. Tất cả những gì bạn cần lưu ý là giá trị điện áp tại chân đầu ra sẽ bị đảo ngược khi hai chân này được hoán đổi.