Mục lục:
- Giới thiệu
- Bước 1: Flash các chân GPIO - GPIO6 đến GPIO11
- Bước 2: Các chân GPIO0, GPIO2 và GPIO15
- Bước 3: Sử dụng GPIO0, GPIO2 và GPIO15 làm đầu ra
- Bước 4: Sử dụng GPIO0, GPIO2 và GPIO15 làm đầu vào
- Phần kết luận
Video: ESP8266 Sử dụng các chân GPIO0 / GPIO2 / GPIO15: 4 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:34
Cập nhật ngày 1 tháng 7 năm 2018 - Đã thêm ghi chú về lập trình lại khi GPIO0 là đầu ra
Đây là một ghi chú rất ngắn về cách sử dụng các chân GPIO0 / GPIO2 và GPIO15 trên mô-đun ESP8266.
Cập nhật: Cũng xem Cách sử dụng các chân ESP8266-01
Giới thiệu
ESP8266 là một chip kích hoạt wifi giá rẻ. Nó có nhiều loại mô-đun khác nhau và có thể được lập trình theo nhiều cách khác nhau. Tất cả các mô-đun làm cho GPIO0 và GPIO2 có thể truy cập được. Hầu hết các mô-đun, ngoài ESP8266-01, cũng làm cho GPIO15 có thể truy cập được. Các GPIO này kiểm soát cách mô-đun khởi động và như vậy yêu cầu xử lý đặc biệt nếu chúng được sử dụng. GPIO6-GPIO11 cũng yêu cầu điều trị đặc biệt như mô tả bên dưới.
Bước 1: Flash các chân GPIO - GPIO6 đến GPIO11
Hầu hết các bo mạch ESP8266 có một chip flash được kết nối với một số hoặc tất cả GPIO6-GPIO11. Hầu hết các chương trình sử dụng bộ nhớ flash, cũng như RAM, vì vậy trừ khi bạn đảm bảo đặc biệt rằng mã của mình chỉ chạy từ RAM, bạn không thể sử dụng các chân này cho các mục đích khác.
Số chân chính xác được sử dụng trong phạm vi GPIO6 đến GPIO11 tùy thuộc vào loại phần cứng flash được sử dụng trên mô-đun của bạn. Quad IO sử dụng 4 dòng cho dữ liệu (tổng cộng 6 chân) cho tốc độ gấp 4 lần tiêu chuẩn. IO kép sử dụng 2 đường cho dữ liệu (tổng 4 chân) Tiêu chuẩn sử dụng một đường duy nhất cho dữ liệu (tổng 3 chân).
Trừ khi bạn biết chính xác những gì hội đồng quản trị của bạn yêu cầu, bạn tốt nhất chỉ nên bỏ qua GPIO6 đến GPIO11 và không tham chiếu đến chúng từ mã của bạn.
Bước 2: Các chân GPIO0, GPIO2 và GPIO15
Các chân này xác định chế độ khởi động của chip.
Để thực hiện chương trình bình thường, GPIO0 và GPIO2 cần được kéo lên Vcc (3.3V) và GPIO15 cần được kéo lên GND, mỗi loại có một điện trở trong khoảng điện trở 2K đến 10K. Điện trở 2K cho khả năng chống nhiễu tốt hơn. OLIMEX sử dụng điện trở 2K SparkFun sử dụng điện trở 10K. Tôi sử dụng điện trở 3K3.
Cài đặt của các đầu vào này chỉ được kiểm tra trong quá trình khởi động (hoặc đặt lại) chip. Sau đó, các chân có sẵn để sử dụng chung, nhưng như đã thảo luận bên dưới, việc sử dụng chúng bị hạn chế bởi các điện trở kéo lên / xuống bên ngoài này.
Bước 3: Sử dụng GPIO0, GPIO2 và GPIO15 làm đầu ra
Như đã lưu ý ở trên, các chân này sẽ có một điện trở được kết nối với VCC (GPIO0 và GPIO2) hoặc GND cho GPIO15. Điều này xác định cách bất kỳ thiết bị bên ngoài nào, như rơ le hoặc đèn led + điện trở, phải được kết nối. Đối với GPIO0 và GPIO2, một rơ le bên ngoài phải được kết nối giữa VCC và chân cắm để nó không cản trở hoạt động của điện trở kéo lên. Ngược lại, một rơ le bên ngoài được kết nối với GPIO15 phải được kết nối giữa GND và chân cắm để không cản trở hoạt động của điện trở kéo xuống.
Để kích hoạt thiết bị bên ngoài, GPIO0 hoặc GPIO2 phải được điều khiển THẤP (Active LOW) trong khi GPIO15 phải được điều khiển CAO (Active HIGH).
Sơ đồ trên cho thấy cách sử dụng GPIO0 và GPIO2 và GPIO15 làm đầu ra. Mạch này cũng bao gồm các điện trở kéo lên / kéo xuống cần thiết. Lưu ý rằng mô-đun rơle 5V được điều khiển bởi GPIO0 được cách ly quang học và có kết nối chung riêng cho đầu vào. Điều quan trọng là điện áp 5V VCCA không được cấp cho chân ESP8266.
Cách lập trình lại khi sử dụng GPIO0 làm đầu ra
Lưu ý: GPIO0 cần được nối đất để vào chế độ lập trình. Nếu bạn phác thảo đang đẩy nó lên cao, việc nối đất nó có thể làm hỏng chip ESP8266 của bạn. Cách an toàn để lập trình lại ESP8266 khi mã của bạn điều khiển đầu ra GPIO0 là: - a) Tắt nguồn bo mạch b) tắt GPIO0 để gnd c) bật nguồn bo mạch chuyển sang chế độ chương trình do GPIO0 bị chập mạch d) gỡ bỏ đoạn ngắn từ GPIO0 để bạn không bị hụt đầu ra khi chương trình chạy e) lập trình lại bảng f) chu kỳ nguồn cho bảng nếu cần.
Bước 4: Sử dụng GPIO0, GPIO2 và GPIO15 làm đầu vào
Sử dụng các chân này làm đầu vào là một chút khó khăn. Như đã lưu ý ở trên khi bật nguồn và trong khi đặt lại, các chân này phải được kéo lên hoặc xuống theo yêu cầu để mô-đun ESP8266 khởi động ở chế độ chạy bình thường. Điều này có nghĩa là, nói chung, bạn không thể chỉ gắn một công tắc bên ngoài vào các chân này vì khi bật nguồn, bạn thường không thể đảm bảo công tắc sẽ không kéo đầu vào xuống đất và do đó ngăn mô-đun khởi động chính xác.
Mẹo là không kết nối công tắc bên ngoài trực tiếp từ GPIO0 hoặc GPIO2 với GND mà thay vào đó kết nối nó với một chân GPIO khác được điều khiển xuống đất (như một đầu ra) chỉ sau khi ESP8266 khởi động. Hãy nhớ rằng, khi được sử dụng làm đầu ra, các chân GPIO cung cấp kết nối điện trở rất thấp tới VCC hoặc GND tùy thuộc vào việc chúng được điều khiển CAO hay THẤP.
Ở đây chỉ GPIO0 và GPIO2 sẽ được xem xét. Sử dụng phương pháp này, bạn có thể nhận được một (1) đầu vào bổ sung bằng cách sử dụng hai (2) GPIO này.
Một phương pháp tương tự có thể được sử dụng cho GPIO15 bằng cách sử dụng một chân GPIO khác để kết nối công tắc của nó với + VCC, nhưng điều này không thu được thêm đầu vào, bạn cũng có thể chỉ sử dụng trực tiếp chân GPIO khác làm đầu vào.
Mạch trên sử dụng mô-đun ESP8266-01 làm ví dụ. Nếu không sử dụng thủ thuật này, ESP8266-01 không có bất kỳ chân miễn phí nào để sử dụng làm đầu vào nếu bạn đang sử dụng chân RX / TX cho kết nối UART.
Vì phương thức setup () của sketch chỉ được chạy sau khi mô-đun ESP8266 khởi động, nên có thể an toàn khi đặt đầu ra GPIO0 THẤP và do đó cung cấp nền tảng cho S1 được kết nối với GPIO2. Sau đó, bạn có thể sử dụng digitalRead (2) ở nơi khác trong bản phác thảo của mình để đọc cài đặt chuyển đổi.
Phần kết luận
Ghi chú ngắn này cho thấy cách sử dụng GPIO0, GPIO2 và GPIO15 làm đầu ra và cách sử dụng để có thêm đầu vào bằng cách sử dụng GPIO0 và GPIO2 cùng nhau.
Đề xuất:
(Các) đèn LED USB tự làm siêu đơn giản giá rẻ (và các nội dung khác): 16 bước
(Các) Đèn LED USB Tự làm Siêu đơn giản Giá rẻ (và Các nội dung khác): Xin chào và Chào mừng bạn đến với tài liệu hướng dẫn đầu tiên của tôi:) Tôi cá là tất cả chúng ta đều đang thiết lập và tái tạo lại không gian nhà sản xuất của chúng ta một lần nữa sau khi vi-rút, vì vậy tôi nghĩ đã đến lúc chúng ta tạo ra tất cả đều học cách tạo ra USB của riêng mình thay vì phụ thuộc vào đội quân dễ cạn kiệt
Các cách hay để tái sử dụng các bộ phận máy tính cũ: 7 bước (có hình ảnh)
Những cách hay để tái sử dụng các bộ phận máy tính cũ: Trong phần hướng dẫn này, tôi sẽ ngắn gọn cung cấp cho bạn một số ý tưởng về cách tái sử dụng một số bộ phận của máy tính cũ mà mọi người đang vứt bỏ. Bạn sẽ không tin, nhưng những chiếc máy tính cũ này có nhiều bộ phận thú vị bên trong. sẽ không cung cấp đầy đủ
Bắt đầu với Kicad - Gán các dấu chân PCB cho các biểu tượng sơ đồ: 9 bước
Bắt đầu với Kicad - Gán các dấu chân PCB cho các biểu tượng sơ đồ: Tiếp tục với loạt bài hướng dẫn nhỏ về cách sử dụng Kicad, bây giờ chúng ta có một phần mà dường như đối với tôi khi một người bắt đầu sử dụng Kicad là phức tạp nhất đó là liên kết ký hiệu hoặc biểu tượng của giản đồ thành các mảnh thực tế mà chúng ta sẽ
Làm giá đỡ cho máy ảnh DSLR với giá chưa đến 6 đô la bằng cách sử dụng ống PVC (Chân máy / Chân máy cho mọi máy ảnh): 6 bước
Làm giá đỡ cho máy ảnh DSLR với giá chưa đến 6 đô la bằng cách sử dụng ống PVC (Monopod / chân máy cho mọi máy ảnh): Có …. Bạn có thể tự làm giá đỡ chỉ với một số ống PVC và chữ T. Nó rất nhẹ … Nó được cân bằng hoàn hảo … Nó rắn chắc … Nó thân thiện với khả năng tùy chỉnh … Tôi là Sooraj Bagal và tôi sẽ chia sẻ kinh nghiệm của mình về giá đỡ máy ảnh này mà tôi đã tạo cho
Làm thế nào để tạo ra một chiếc thuyền không khí RC! Với các bộ phận in 3D và các nội dung khác: 5 bước (có hình ảnh)
Làm thế nào để tạo ra một chiếc thuyền không khí RC! Với các bộ phận in 3D và các nội dung khác: Thuyền máy bay thật tuyệt vời vì chúng thực sự thú vị khi lái và cũng hoạt động trên một số loại bề mặt, như nước, tuyết, băng, nhựa đường hoặc bất cứ thứ gì, nếu động cơ đủ mạnh. không phức tạp lắm, và nếu bạn đã có điện tử