Mục lục:

Cực kỳ dễ lập trình!: 10 bước
Cực kỳ dễ lập trình!: 10 bước

Video: Cực kỳ dễ lập trình!: 10 bước

Video: Cực kỳ dễ lập trình!: 10 bước
Video: Lập trình Python – Tin 10 (KNTT) – Thầy: Đào Viết Phương 2024, Tháng bảy
Anonim
Image
Image
Cực kỳ dễ lập trình!
Cực kỳ dễ lập trình!

Hôm nay, tôi sẽ nói về STM32 Core, L476RG, là bộ mặt của Điện năng cực thấp. Bạn có thể thấy nó ở bên trái của hình ảnh. Thiết bị này có hai thanh pin cái, mỗi bên một thanh, chẳng qua là đầu nối cho tấm chắn arduino. Điều này thật tuyệt phải không?

Theo tôi, STMicroelectronics đã làm điều này trong Bộ công cụ phát triển của mình vì họ biết các chuyên gia sử dụng chip này. Công ty này đang ngày càng hướng tới arduino. Và điều này cũng đúng với một số bộ công cụ STMicroelectronics chuyên nghiệp khác.

Cuối cùng, liên quan đến dự án ngày hôm nay, chúng tôi sẽ sử dụng hai cảm biến DS18b20 ngoài L476RG. Vì vậy, chúng tôi sẽ tạo một lắp ráp đơn giản bằng L476RG, nhập thư viện vào môi trường MBED, tạo chương trình trong môi trường MBED và lấy dữ liệu từ L476RG qua USB / Serial.

Tôi đã nói một chút về L476RG trong video này: CÁCH DỄ DÀNG HƠN ĐỂ LẬP TRÌNH MICROCONTROLLER, nơi tôi hướng dẫn cách cấu hình môi trường MBED trực tuyến.

Một số người theo dõi video của tôi đang hỏi tôi liệu STM32 có thay thế được ESP32 hay không. Tôi nói một điều: nó không thể thay thế và nó không thể, bởi vì chúng là hai thứ hoàn toàn khác nhau.

Chip STM32 này là một bộ vi điều khiển, hay nói đúng hơn là; nó không phải là một "cụm sự vật" như ESP32. Vì vậy, tên có thể giống nhau, nhưng chúng hoàn toàn khác nhau. STM32 là một bộ vi điều khiển đa năng, chẳng hạn như PIC, Atmel chẳng hạn.

Bước 1: Tài nguyên được sử dụng

Tài nguyên được sử dụng
Tài nguyên được sử dụng

1 lõi L476RG

2 cảm biến DS18b20 (chúng tôi sử dụng các mô-đun chống thấm nước phổ biến trên thị trường)

1 điện trở 4k7

Protoboard mini

Jumper để kết nối

Bước 2: Lắp ráp

cuộc họp
cuộc họp

Ban đầu chúng tôi sẽ tiến hành lắp ráp bằng cách sử dụng một trong các cảm biến nhiệt độ.

Nguồn của nó sẽ là 5V.

Một điện trở 4k7 sẽ được sử dụng để thực hiện kéo lên trên đường dữ liệu (1-Wire).

Chúng tôi sẽ đọc dữ liệu bằng chân A0.

Bước 3: Chương trình mới trong MBED

Chương trình mới trong MBED
Chương trình mới trong MBED
Chương trình mới trong MBED
Chương trình mới trong MBED
Chương trình mới trong MBED
Chương trình mới trong MBED

Khi bạn đã thiết lập tài khoản của mình trong MBED và truy cập vào tài khoản đó, chúng tôi sẽ tạo một chương trình mới. Để thực hiện việc này, hãy nhấp chuột phải vào "Chương trình của tôi" và chọn "Chương trình mới…"

Xác nhận rằng "Nền tảng" phù hợp với bảng bạn đang sử dụng.

Bây giờ chúng ta nhấp vào "Mẫu".

Chúng tôi sẽ tạo một chương trình dựa trên ví dụ, "Hiển thị thông báo trên PC bằng UART".

Nhập tên của chương trình trong "Tên chương trình".

Chọn tùy chọn "Cập nhật chương trình này và thư viện lên bản sửa đổi mới nhất".

Một thư mục mới cho chương trình của bạn sẽ được tạo, bao gồm thư viện MBED mặc định và tệp main.cpp.

Bạn có thể sử dụng nó để kiểm tra xem mọi thứ có hoạt động tốt hay không. Để làm điều này, chỉ cần biên dịch nó và sao chép nó vào nền tảng.

Sử dụng thiết bị đầu cuối nối tiếp mà bạn chọn, bạn có thể nhận được các thông báo sau.

Bước 4: Nhập Thư viện DS18b20

Nhập Thư viện DS18b20
Nhập Thư viện DS18b20

Vì có một số phiên bản thư viện cho Ds18b20, chúng tôi sẽ nhập bằng cách sử dụng url để ví dụ của bạn sử dụng cùng một thư viện.

Bước 5: Chương trình mới trong MBED

Chương trình mới trong MBED
Chương trình mới trong MBED
Chương trình mới trong MBED
Chương trình mới trong MBED

Trong trường "URL nguồn", hãy điền vào: https://os.mbed.com/users/Sissors/code/DS1820/ và nhấp vào nhập.

Thư viện DS1820 của bạn sẽ xuất hiện trong thư mục chương trình của bạn.

Bước 6: Mã nguồn

Bao gồm

Chúng tôi bắt đầu bằng cách bao gồm các thư viện cần thiết.

#include "mbed.h" // inclusão da biblioteca padrão do MBED # include "DS1820.h" // inclusão da biblioteca do sensor DS1820

Chúng tôi xác định các hằng số sẽ đại diện cho các chân được sử dụng.

Lưu ý rằng DS18b20 là cảm biến có giao tiếp 1-WIRE. Vì lý do này, chúng tôi sử dụng thư viện sẽ xử lý toàn bộ giao thức giao tiếp với các thiết bị. Điều này bao gồm xác định từng thiết bị cho đến các lệnh đã đọc.

#define PINO_DE_DADOS A0 // xác định o pino para leitura dos dados # xác định MAX_SENSORES 16 // xác định o número máximo para o vetor de sensores

Chúng tôi tạo một vectơ sẽ trỏ đến từng thiết bị trong số 16 thiết bị có thể được kết nối với đường dữ liệu.

DS1820 * cảm biến [MAX_SENSORES]; // cria um vetor com 16 posições para os sensores

Chúng tôi bắt đầu phương thức main (), trong đó, sử dụng phương thức "unassignedProbe ()" có trong thư viện DS1820, chúng tôi tìm kiếm tất cả các thiết bị có sẵn trong đường truyền thông.

Chúng tôi điền vào vectơ cảm biến với các thể hiện sẽ đại diện cho từng cảm biến có sẵn.

Chúng tôi làm điều này cho đến khi tìm thấy cái cuối cùng hoặc cho đến khi chúng tôi đạt được tối đa 16 cảm biến.

int main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// inicia a procura por sensores sensor [encontrados] = new DS1820 (PINO_DE_DADOS); // cria uma instancia para o sensor encontrado encontrados ++; if (encontrados == MAX_SENSORES) // Verifica se atingiu o máximo de sensores break; }

Chúng tôi gửi số lượng cảm biến được tìm thấy trên đường dây.

printf ("Dispositivos encontrado (s):% d / r / n / n", encontrados);

Chúng tôi bắt đầu một vòng lặp vô hạn, yêu cầu tất cả các cảm biến có sẵn tính toán nhiệt độ tương ứng của chúng, sau đó lặp lại qua vector cảm biến bằng cách gửi các kết quả đọc được.

printf ("Dispositivos encontrado (s):% d / r / n / n", encontrados); while (1) {sensor [0] -> convertTempe Heat (true, DS1820:: all_devices); // solicita a leitura de temperatura para todos os dispositivos encontrados for (int i = 0; itempentic ()); //… e sửa lại một temperatura printf ("\ r / n"); đợi (1); }

Bước 7: Dữ liệu đã nhận

Dữ liệu đã nhận
Dữ liệu đã nhận

Sử dụng một cảm biến duy nhất, chúng tôi thu được đầu ra nối tiếp sau đây.

Bước 8: Bao gồm nhiều cảm biến hơn

Bao gồm nhiều cảm biến hơn
Bao gồm nhiều cảm biến hơn
Bao gồm nhiều cảm biến hơn
Bao gồm nhiều cảm biến hơn

Để kiểm tra mã, chúng tôi giới thiệu một cảm biến khác trong đường truyền thông, đơn giản bằng cách kết nối nó song song với cảm biến đầu tiên.

Hãy nhớ tắt cụm trước khi kết nối các cảm biến mới.

Khi khởi động lại lắp ráp, chúng tôi nhận được kết quả sau mà không có bất kỳ thay đổi nào trong mã nguồn.

Bước 9: Xem nguồn

#include "mbed.h" // inclusão da biblioteca padrão do MBED # include "DS1820.h" // inclusão da biblioteca do sensor DS1820 #define PINO_DE_DADOS A0 // xác định o pino para leitura dos dados #define MAX_SENSORES 16 // xác định o número máximo para o vetor de sensores DS1820 * cảm biến [MAX_SENSORES]; // cria um vetor com 16 posições para os sensores int main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// inicia a procura por sensores sensor [encontrados] = new DS1820 (PINO_DE_DADOS); // cria uma instancia para o sensor encontrado encontrados ++; if (encontrados == MAX_SENSORES) // Verifica se atingiu o máximo de sensores break; } printf ("Dispositivos encontrado (s):% d / r / n / n", encontrados); while (1) {sensor [0] -> convertTempe Heat (true, DS1820:: all_devices); // solicita a leitura de temperatura para todos os dispositivos encontrados for (int i = 0; itempentic ()); //… e sửa lại một temperatura printf ("\ r / n"); đợi (1); }}

Bước 10: Tập tin

PDF

Khác

Đề xuất: