1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Đọc giá trị tương tự bằng ESP8266 ADC với Arduino IDE, MicroPython và Lua

13 5 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đọc giá trị tương tự bằng ESP8266 ADC với Arduino IDE, MicroPython và Lua
Chuyên ngành Điện tử
Thể loại Hướng dẫn
Năm xuất bản 2023
Định dạng
Số trang 13
Dung lượng 673,99 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cả ESP826612E và ESP826607 đều có một chân ADC dễ tiếp cận. Điều này có nghĩalà các bo mạch ESP8266 đó có thể đọc tín hiệu tương tự. Trong hướng dẫn này, chúngtôi sẽ chỉ cho bạn cách sử dụng chức năng đọc tương tự với ESP8266 bằng phần mềmArduino IDE, MicroPython hoặc Lua.

Trang 1

Cả ESP8266-12E và ESP8266-07 đều có một chân ADC dễ tiếp cận Điều này có nghĩa

là các bo mạch ESP8266 đó có thể đọc tín hiệu tương tự Trong hướng dẫn này, chúng

tôi sẽ chỉ cho bạn cách sử dụng chức năng đọc tương tự với ESP8266 bằng phần mềm

Arduino IDE, MicroPython hoặc Lua

Ví dụ, chúng tôi sẽ chỉ cho bạn cách đọc các giá trị tương tự từ chiết áp Bài đăng này

được chia thành ba phần:

1 ESP8266 Đọc tương tự với Arduino IDE

2 ESP8266 Đọc tương tự với MicroPython

3 ESP8266 Đọc tương tự với Lua/NodeMCU

Thông số kỹ thuật ADC ESP8266

Khi đề cập đến chân ADC ESP8266, bạn sẽ thường nghe thấy các thuật ngữ khác nhau

này thay thế cho nhau:

ADC (Bộ chuyển đổi tương tự sang số)

TOUT

Pin6

A0

Chân tương tự 0

Tất cả các thuật ngữ này đề cập đến cùng một chân trong ESP8266 được đánh dấu

trong phần tiếp theo

Trang 2

Độ phân giải ADC ESP8266

Chân ADC có độ phân giải 10 bit, nghĩa là bạn sẽ nhận được các giá trị từ 0 đến 1023

Dải điện áp đầu vào ESP8266

Dải điện áp đầu vào chân ADC của ESP8266 là từ 0 đến 1V nếu bạn đang sử dụng chip

trần Tuy nhiên, hầu hết các bo mạch phát triển ESP8266 đều có bộ chia điện áp bên

trong, vì vậy phạm vi đầu vào là 0 đến 3,3V Vì vậy, tóm lại:

ADC Dải điện áp trong các bo mạch phát triển ESP8266: 0 đến 3.3V (ví dụ:

ESP8266 12-E NodeMCU Kit , WeMos D1 Mini , …)

ADC Dải điện áp trong chip ESP8266: 0 đến 1V (ví dụ: chip 07 , chip

ESP-12E ,…)

Chân tương tự ESP8266

Với bộ công cụ 12-E NodeMCU của ESP8266 và các bo mạch phát triển ESP8266 khác,

việc truy cập A0 rất dễ dàng, bạn chỉ cần kết nối dây nhảy với chân (xem hình bên dưới)

Nếu bạn đang sử dụng chip ESP8266, chẳng hạn như ESP8266-07, bạn cần hàn dây

vào chân đó

Trang 3

Bộ phận bắt buộc

Để chỉ cho bạn cách sử dụng chức năng đọc tương tự với ESP8266, chúng tôi sẽ đọc

các giá trị từ chiết áp Để làm được điều đó, bạn cần nối một chiết áp vào bảng của

mình

Đây là phần cứng mà bạn cần để hoàn thành hướng dẫn này:

Khuyến nghị: Bộ công cụ NodeMCU ESP8266-12E (đọc bảng so sánh bảng phát

triển ESP8266 )

Thay thế: 1x chip ESP8266-07 hoặc 1x chip ESP8266-12E + Bộ lập trình FTDI Điện trở 100 Ohm (cần thiết nếu bạn đang sử dụng chip trần)

Điện trở 220 Ohm (cần thiết nếu bạn đang sử dụng chip

trần) Chiết áp 1k Ohm bánh mì dây nhảy

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ơ đồ

Nếu bạn đang sử dụng bảng phát triển ESP8266, hãy làm theo sơ đồ tiếp theo

Trang 4

Nếu bạn đang sử dụng chip ESP8266 với dải điện áp đầu vào từ 0V đến 1V, bạn cần

đảm bảo rằng điện áp đầu vào trên chân A0 không vượt quá 1V Vì vậy, bạn cần một

mạch chia điện áp, như hình bên dưới

Chúng tôi đang sử dụng điện trở 100 Ohm và 220 Ohm, do đó Vout là 1V

Trang 5

Đề nghị đọc: Tham khảo sơ đồ chân ESP8266: Bạn nên sử dụng chân GPIO nào?

1 Đọc tương tự ESP8266 với Arduino IDE

Phần này cho thấy cách đọc các giá trị tương tự với ESP8266 bằng Arduino IDE

Cài đặt ESP8266 trong Arduino IDE

Để tải mã lên ESP8266 của bạn, trước tiên bạn cần cài đặt tiện ích bổ sung ESP8266,

nếu bạn chưa cài đặt Thực hiện theo các hướng dẫn tiếp theo:

Cài đặt Bảng ESP8266 trong Arduino IDE

Mã số

Sao chép đoạn mã sau vào Arduino IDE của bạn

/*********

Rui Santos

Complete project details at https://randomnerdtutorials.com

*********/ const int analogInPin = A0; // ESP8266 Analog

Pin ADC0 = A0 int sensorValue = 0; // value read from the

pot

void setup() {

// initialize serial communication at 115200

Serial.begin(115200);

}

void loop() {

// read the analog in value

sensorValue = analogRead(analogInPin);

// print the readings in the Serial Monitor

Serial.print("sensor = ");

Serial.print(sensorValue);

delay(1000);

}

Xem mã thô

Trang 6

Đoạn mã bắt đầu bằng cách khai báo chân analog ESP8266 trong biến analogInPin :

const int analogInPin = A0; // ESP8266 Analog Pin ADC0 = A0 Giá trị chiết áp sẽ được

lưu trữ trên biến sensorValue : int sensorValue = 0; // value read from the pot

Trong setup() , hãy khởi tạo Serial Monitor cho mục đích gỡ lỗi:

void setup() {

// initialize serial communication at 115200

Serial.begin(115200);

}

Trong loop() , chúng ta đọc giá trị analog bằng cách sử dụng hàm analogRead() và

chuyển analogInPin làm đối số Giá trị được lưu trên biến sensorValue : sensorValue

= analogRead(analogInPin);

Cuối cùng, các bài đọc được hiển thị trên Màn hình nối tiếp, để bạn có thể thực sự thấy

điều gì đang diễn ra

Serial.print(sensorValue);

Tải lên mã

Tải mã trước đó lên ESP8266 Hãy chắc chắn rằng bạn đã chọn đúng bo mạch và cổng

COM Vào Tools > Board và chọn model ESP8266 bạn đang sử dụng Trong trường

hợp của chúng tôi, chúng tôi đang sử dụng Bộ công cụ NodeMCU 12-E ESP8266

Trang 7

Vào Tools > Port và chọn cổng COM mà ESP8266 được kết nối

Trang 8

Nhấn nút tải lên Arduino IDE

Lưu ý: nếu bạn đang sử dụng chip ESP-07 hoặc ESP-12E, bạn cần có một lập trình viên

FTDI để tải mã lên

trình diễn

Sau khi tải mã lên, hãy mở Màn hình nối tiếp ở tốc độ truyền 115200 Các giá trị đọc

tương tự sẽ được hiển thị

Trang 9

Xoay chiết áp và xem các giá trị tăng hoặc giảm

2 Đọc tương tự ESP8266 với MicroPython

Phần này cho thấy cách đọc các giá trị tương tự với ESP8266 bằng phần sụn

MicroPython

Để làm theo hướng dẫn này, bạn cần cài đặt chương trình cơ sở MicroPython trong bo

mạch ESP8266 của mình Bạn cũng cần một IDE để viết và tải mã lên bảng của mình

Chúng tôi khuyên bạn nên sử dụng Thonny IDE hoặc uPyCraft IDE:

Thonny IDE:

uPyCraft IDE:

Cài đặt uPyCraft IDE ( Windows , Mac OS X , Linux ) Flash/Tải chương trình cơ sở MicroPython lên ESP32 và ESP8266

Script – Đọc Analog ESP82266

Tập lệnh sau cho ESP8266 đọc các giá trị tương tự từ chân A0

# Complete project details at https://RandomNerdTutorials.com

Trang 10

from machine import Pin, ADC

from time import sleep pot =

ADC(0)

while True:

pot_value = pot.read()

print(pot_value)

sleep(0.1)

Xem mã thô

Cách thức hoạt động của mã

Để đọc các đầu vào tương tự, hãy nhập lớp ADC ngoài lớp Pin từ mô-đun máy Chúng

tôi cũng nhập phương thức ngủ

from machine import Pin, ADC

from time import sleep

Sau đó, tạo một đối tượng ADC có tên là pot trên chân A0

pot = ADC(0)

Trong vòng lặp, đọc giá trị pot và lưu nó vào biến pot_value Để đọc giá trị từ pot, hãy sử

dụng phương thức read() trên đối tượng pot pot_value = pot.read() Sau đó, in pot_value print(pot_value)

Cuối cùng, thêm độ trễ 100 ms

sleep(0.1)

Tóm tắt:

Để đọc một giá trị tương tự, bạn sử dụng lớp ADC ;

Để tạo một đối tượng ADC , chỉ cần gọi ADC(0)

Để đọc giá trị tương tự, hãy sử dụng phương thức read() trên đối tượng ADC

trình diễn

Sau khi tải mã lên bảng ESP8266 bằng Thonny IDE hoặc uPyCraft IDE , hãy xoay chiết

áp

Kiểm tra vỏ của MicroPython IDE của bạn để đọc các giá trị từ chiết áp

Trang 11

3 ESP8266 Đọc Analog với Lua/NodeMCU

Phần này cho biết cách sử dụng phần sụn NodeMCU để đọc các giá trị tương tự với

ESP8266

Nhấp nháy ESP8266 với phần sụn Lua/NodeMCU

Trước tiên, bạn phải flash các ESP của mình bằng NodeMCU firmare

Tôi khuyên bạn nên sử dụng ESPlorer IDE , một chương trình được tạo bởi 4refr0nt để

gửi lệnh tới ESP8266 của bạn

Thực hiện theo các hướng dẫn sau để tải xuống và cài đặt ESPlorer IDE:

1 Nhấn vào đây để tải xuống ESPlorer

2 Giải nén thư mục đó

3 Chuyển đến thư mục chính

4 Chạy ESPlorer.jar

5 Mở ESPlorer

Kiểm tra Chân ADC (A0)

Trang 12

Để gửi lệnh với ESPlorer IDE, bạn cần thiết lập giao tiếp nối tiếp với ESP của mình, hãy

làm theo các hướng dẫn sau:

1 Kết nối lập trình viên ESP-12E hoặc FTDI với máy tính của bạn

2 Đặt giá trị xấu là 9600

3 Chọn cổng lập trình viên ESP-12E hoặc FTDI của bạn (ví dụ: COM3)

4 Nhấn Mở/Đóng

Sau đó gõ lệnh sau:

print(adc.read(0))

Bấm vào nút “ Gửi ” như hình bên dưới

Trang 13

Nó sẽ trả về một giá trị trong khoảng từ 0 đến 1024 Xoay chiết áp của bạn và gửi lệnh

print(adc.read(0)) thêm vài lần nữa để nhận giá trị chiết áp

Khi chiết áp của bạn ở gần 0V, nó sẽ in 0 và khi đạt 3,3V, nó sẽ in 1024

kết thúc

Trong hướng dẫn này, chúng tôi đã chỉ cho bạn cách đọc các giá trị analog bằng cách sử

dụng chân analog ESP8266 (A0) Một điều quan trọng cần lưu ý là phạm vi đầu vào

tương tự của ESP8266 là 0-1V nếu bạn đang sử dụng chip trần hoặc 0-3,3V nếu bạn

đang sử dụng bảng mạch phát triển

Ngày đăng: 05/04/2023, 21:06

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w