
Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:03



Dzisiaj opowiem o rdzeniu STM32, L476RG, który jest twarzą Ultra Low Power. Możesz to zobaczyć po lewej stronie obrazu. To urządzenie ma dwie żeńskie pin bary, po jednej z każdej strony, które są niczym innym jak złączami do nakładki arduino. To świetnie, nie?
Moim zdaniem STMicroelectronics zrobiło to w swoim zestawie rozwojowym, ponieważ wie, że profesjonaliści używają tego układu. Ta firma coraz bardziej zmierza w kierunku arduino. Dotyczy to również kilku innych profesjonalnych zestawów STMicroelectronics.
Wreszcie, jeśli chodzi o dzisiejszy projekt, oprócz L476RG użyjemy dwóch czujników DS18b20. Zrobimy więc prosty montaż za pomocą L476RG, zaimportujemy bibliotekę do środowiska MBED, stworzymy program w środowisku MBED i uzyskamy dane z L476RG przez USB / Serial.
Mówiłem już trochę o L476RG w tym filmie: ŁATWIEJSZY SPOSÓB PROGRAMOWANIA MIKROKONTROLERA, gdzie pokazuję, jak skonfigurować środowisko MBED, które jest dostępne online.
Niektóre osoby, które śledzą moje filmy, pytają mnie, czy STM32 zastępuje ESP32. Powiem jedno: nie zastąpi i nie mogło, bo to dwie zupełnie różne rzeczy.
Ten układ STM32 to mikrokontroler, a raczej; nie jest to „klaster rzeczy”, jak ESP32. Więc nazwa może wyglądać podobnie, ale są zupełnie inne. STM32 to mikrokontroler ogólnego przeznaczenia, taki jak na przykład PIC, Atmel.
Krok 1: Wykorzystane zasoby

1 rdzeń L476RG
2 czujniki DS18b20 (używamy popularnych na rynku modułów wodoodpornych)
1 rezystor 4k7
Minipłyta prototypowa
Zworki do połączenia
Krok 2: Montaż

Wstępnie wykonamy montaż za pomocą jednego z czujników temperatury.
Jego moc będzie wynosić 5V.
Rezystor 4k7 zostanie użyty do podciągania linii danych (1-Wire).
Odczytamy dane za pomocą pinu A0.
Krok 3: Nowy program w MBED



Po skonfigurowaniu konta w MBED i uzyskaniu do niego dostępu, utworzymy nowy program. Aby to zrobić, kliknij prawym przyciskiem myszy „Moje programy” i wybierz „Nowy program…”
Upewnij się, że „Platforma” jest zgodna z używaną płytą.
Teraz klikamy „Szablon”.
Stworzymy program na podstawie przykładu „Wyświetl komunikat na PC za pomocą UART”.
Wprowadź nazwę programu w "Nazwa programu".
Zaznacz opcję „Zaktualizuj ten program i biblioteki do najnowszej wersji”.
Zostanie utworzony nowy folder dla twojego programu, w tym domyślna biblioteka MBED i plik main.cpp.
Możesz go użyć do sprawdzenia, czy wszystko działa dobrze. Aby to zrobić, po prostu skompiluj go i skopiuj na platformę.
Korzystając z wybranego terminala szeregowego, możesz otrzymywać następujące komunikaty.
Krok 4: Importowanie biblioteki DS18b20

Ponieważ istnieje kilka wersji bibliotek dla Ds18b20, zaimportujemy je za pomocą adresu URL, aby Twój przykład używał tej samej biblioteki.
Krok 5: Nowy program w MBED


W polu „Source URL” wypełnij: https://os.mbed.com/users/Sissors/code/DS1820/ i kliknij import.
Twoja biblioteka DS1820 powinna pojawić się w folderze programu.
Krok 6: Kod źródłowy
Zawiera
Zaczęliśmy od włączenia niezbędnych bibliotek.
#include "mbed.h" //inclusão da biblioteca padrão do MBED#include "DS1820.h" //inclusão da biblioteca do sensor DS1820
Definiujemy stałe, które będą reprezentować używane piny.
Zauważ, że DS18b20 jest czujnikiem z komunikacją 1-WIRE. Z tego powodu korzystamy z biblioteki, która obsłuży cały protokół komunikacji z urządzeniami. Obejmuje to identyfikację każdego urządzenia aż do poleceń odczytu.
#define PINO_DE_DADOS A0 //define o pino para leitura dos dados#define MAX_SENSORES 16 //define o maksymalnej liczbie czujników
Tworzymy wektor, który wskaże każde z 16 możliwych urządzeń podłączonych do linii danych.
czujnik DS1820*[MAX_SENSORES]; //cria um vetor com 16 posições para os sensores
Rozpoczynamy metodę main(), gdzie za pomocą metody „unassignedProbe()” zawartej w bibliotece DS1820 szukamy wszystkich dostępnych urządzeń w linii komunikacyjnej.
Wypełniamy wektor czujnika instancjami, które będą reprezentować każdy z dostępnych czujników.
Robimy to, dopóki nie zostanie znaleziony ostatni lub dopóki nie osiągniemy maksymalnie 16 czujników.
int main(){ int encontrados = 0; while(DS1820::unassignedProbe(PINO_DE_DADOS)) { //inicjacja czujnika [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; }
Przesyłamy ilość czujników znalezionych na linii.
printf("Załącznik(i): %d \r\n\n", załączony);
Rozpoczynamy nieskończoną pętlę, żądając, aby wszystkie dostępne czujniki obliczały swoje temperatury, a następnie iterujemy przez wektor czujnika, wysyłając uzyskane odczyty.
printf("Załącznik(i): %d \r\n\n", załączony); while(1) { sensor[0]->convertTemperature(true, DS1820::all_devices); //solicita a leitura de temperatura para todos os dispositivos encontrados for (int i = 0; itemperature()); //… e retorna a temperatura printf("\r\n"); czekaj(1); }
Krok 7: Otrzymane dane

Używając pojedynczego czujnika otrzymujemy następujące wyjście szeregowe.
Krok 8: Dołącz więcej czujników


Aby przetestować kod, wprowadzamy kolejny czujnik w linię komunikacyjną, po prostu łącząc go równolegle z pierwszym czujnikiem.
Pamiętaj o wyłączeniu zespołu przed podłączeniem nowych czujników.
Po ponownym uruchomieniu asemblera otrzymaliśmy następujący wynik, bez żadnych zmian w kodzie źródłowym.
Krok 9: Wyświetl źródło
#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 //define o pino para leitura dos dados #define MAX_SENSORES 16 //define o maksymalna liczba czujników czujników DS1820*[MAX_SENSORES]; //cria um vetor com 16 pozycji dla czujników int main() { int encontrados = 0; while(DS1820::unassignedProbe(PINO_DE_DADOS)) { //inicjuj uruchomienie czujnika [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("Załączone urządzenia: %d \r\n\n", podpisane); while(1) { sensor[0]->convertTemperature(true, DS1820::all_devices); //solicita a leitura de temperatura para todos os dispositivos encontrados for (int i = 0; itemperature()); //… e retorna a temperatura printf("\r\n"); czekaj(1); } }
Krok 10: Pliki
Inni
Zalecana:
Niezwykle podstawowy, nieskalibrowany kompas serwo: 7 kroków

Niezwykle podstawowy, nieskalibrowany kompas serwo: To tylko podstawowa instrukcja dla projektu, nad którym pracuję. To jest nieskalibrowane i jest bardzo podstawowym prototypem stworzonym dla klasy. W dalszej instrukcji pokażę, jak to skalibrować. Na twoim miejscu nie spodziewałbym się po tym wiele wspaniałości, to
Niezwykle prosty sposób na rozpoczęcie pracy z automatyką domową za pomocą modułów DIY: 6 kroków

Niezwykle prosty sposób na rozpoczęcie pracy z automatyką domową za pomocą modułów DIY: Byłem mile zaskoczony, gdy zdecydowałem się spróbować dodać do asystenta domowego czujniki DIY. Korzystanie z ESPHome jest niezwykle proste, a w tym poście dowiemy się, jak sterować pinem GPIO, a także uzyskiwać temperaturę i amp; dane o wilgotności z bezprzewodowego n
SaQai: niezwykle przystępny telefon: 11 kroków

SaQai: Niezwykle przystępny telefon: Witam,Dziękuję za zainteresowanie naszym projektem o nazwie SaQai (wymawiane Say-Qwah). Naszym celem jest pomoc w odtworzeniu tego projektu oraz w przyszłych przedsięwzięciach związanych z drukowaniem 3D, programowaniem i projektowaniem sprzętu. Jestem Sam Conklin i jestem cu
Niezwykle czuły tani sejsmometr domowej roboty: 8 kroków (ze zdjęciami)

Niezwykle czuły tani sejsmometr domowej roboty: łatwy w budowie i tani czuły sejsmometr Arduino
DIY MusiLED, zsynchronizowane z muzyką diody LED z aplikacją Windows i Linux jednym kliknięciem (32-bitowe i 64-bitowe). Łatwe do odtworzenia, łatwe w użyciu, łatwe do przenoszenia

DIY MusiLED, zsynchronizowane z muzyką diody LED z aplikacją Windows i Linux jednym kliknięciem (32-bitowe i 64-bitowe). Łatwy do odtworzenia, łatwy w użyciu, łatwy do przenoszenia. Ten projekt pomoże Ci podłączyć 18 diod LED (6 czerwonych + 6 niebieskich + 6 żółtych) do płyty Arduino i przeanalizować sygnały karty dźwiękowej komputera w czasie rzeczywistym i przekazać je do diody LED, aby je oświetlić zgodnie z efektami beatu (Snare, High Hat, Kick)