Sadržaj:

Nevjerojatno jednostavno programiranje!: 10 koraka
Nevjerojatno jednostavno programiranje!: 10 koraka

Video: Nevjerojatno jednostavno programiranje!: 10 koraka

Video: Nevjerojatno jednostavno programiranje!: 10 koraka
Video: Сексуальный живот за 2 недели (интенсивный) | 10 минут домашней тренировки 2024, Prosinac
Anonim
Image
Image
Nevjerojatno jednostavno programiranje!
Nevjerojatno jednostavno programiranje!

Danas ću govoriti o jezgri STM32, L476RG, koja je zaštitno lice Ultra Low Power. Možete ga vidjeti s lijeve strane slike. Ovaj uređaj ima dvije ženske šipke, po jednu sa svake strane, koje nisu ništa drugo do priključci za arduino štit. Ovo je super, zar ne?

Po mom mišljenju, STMicroelectronics je to učinila u svom razvojnom kompletu jer zna da profesionalci koriste ovaj čip. Ova tvrtka sve više ide prema arduinu. To vrijedi i za nekoliko drugih profesionalnih kompleta STMicroelectronics.

Konačno, što se tiče današnjeg projekta, upotrijebit ćemo dva senzora DS18b20 pored L476RG. Napravit ćemo jednostavnu montažu pomoću L476RG, uvesti knjižnicu u MBED okruženje, stvoriti program u MBED okruženju i dobiti podatke iz L476RG putem USB -a / serijskog priključka.

Već sam malo govorio o L476RG u ovom videu: LAKŠI NAČIN PROGRAMIRANJA MIKROKONTROLERA, gdje pokazujem kako konfigurirati MBED okruženje, koje je na mreži.

Neki ljudi koji prate moje videozapise pitaju me zamjenjuje li STM32 ESP32. Kažem jedno: ne zamjenjuje i ne može, jer su to dvije potpuno različite stvari.

Ovaj čip STM32 je mikrokontroler, bolje rečeno; nije "skupina stvari" kao što je ESP32. Dakle, naziv može izgledati slično, ali su potpuno različiti. STM32 je mikrokontroler opće namjene, kao što je PIC, Atmel, na primjer.

Korak 1: Korišteni resursi

Korišteni resursi
Korišteni resursi

1 jezgra L476RG

2 senzora DS18b20 (koristimo uobičajene vodootporne module na tržištu)

1 4k7 otpornik

Mini protoboard

Džemperi za povezivanje

Korak 2: Montaža

Skupština
Skupština

U početku ćemo montažu izvesti pomoću jednog od temperaturnih senzora.

Njegova snaga bit će 5V.

Otpornik 4k7 će se koristiti za izvlačenje podatkovne linije (1-žica).

Podatke ćemo čitati pomoću A0 pina.

Korak 3: Novi program u MBED -u

Novi program u MBED -u
Novi program u MBED -u
Novi program u MBED -u
Novi program u MBED -u
Novi program u MBED -u
Novi program u MBED -u

Nakon što svoj račun postavite u MBED -u i pristupite mu, izradit ćemo novi program. Da biste to učinili, desnom tipkom miša kliknite "Moji programi" i odaberite "Novi program …"

Potvrdite da je "Platforma" u skladu s pločom koju koristite.

Sada kliknemo na "Predložak".

Na temelju primjera izradit ćemo program "Prikaz poruke na računalu pomoću UART -a".

Unesite naziv programa u "Naziv programa".

Označite opciju "Ažuriraj ovaj program i knjižnice na najnoviju reviziju".

Bit će stvorena nova mapa za vaš program, uključujući zadanu knjižnicu MBED i datoteku main.cpp.

Pomoću njega možete provjeriti radi li sve dobro. Da biste to učinili, jednostavno ga sastavite i kopirajte na platformu.

Koristeći serijski terminal po vašem izboru, možete primiti sljedeće poruke.

Korak 4: Uvoz knjižnice DS18b20

Uvoz knjižnice DS18b20
Uvoz knjižnice DS18b20

Budući da postoji nekoliko verzija knjižnica za Ds18b20, uvozit ćemo pomoću URL -a tako da vaš primjer koristi istu knjižnicu.

Korak 5: Novi program u MBED -u

Novi program u MBED -u
Novi program u MBED -u
Novi program u MBED -u
Novi program u MBED -u

U polje "Izvorni URL" ispunite: https://os.mbed.com/users/Sissors/code/DS1820/ i kliknite uvoz.

Vaša bi se biblioteka DS1820 trebala pojaviti u mapi programa.

Korak 6: Izvorni kod

Uključuje

Počeli smo uključivanjem potrebnih knjižnica.

#include "mbed.h" // uključuje da biblioteca padrão do MBED#include "DS1820.h" // uključuje biblioteku do senzora DS1820

Definiramo konstante koje će predstavljati korištene pinove.

Imajte na umu da je DS18b20 senzor s 1-WIRE komunikacijom. Iz tog razloga koristimo knjižnicu koja će rukovati cijelim protokolom komunikacije s uređajima. To uključuje identifikaciju svakog uređaja do naredbi za čitanje.

#define PINO_DE_DADOS A0 // definirajte o pino para leitura dos dados#definirajte MAX_SENSORES 16 // definirajte o número máximo para o vetoru senzora

Izrađujemo vektor koji će pokazivati na svaki od 16 mogućih uređaja spojenih na podatkovnu liniju.

Senzor DS1820* [MAX_SENSORES]; // cria um vetor com 16 posições para os sensores

Pokrećemo metodu main () gdje pomoću metode "unassignedProbe ()" sadržane u knjižnici DS1820 tražimo sve dostupne uređaje u komunikacijskoj liniji.

Vektor senzora ispunjavamo instancama koje će predstavljati svaki od dostupnih senzora.

Činimo to dok se ne pronađe zadnji ili dok ne dosegnemo maksimalnih 16 senzora.

int main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// inicia a procura por sensores sensor [encontrados] = novi 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; }

Šaljemo broj senzora koji se nalaze na liniji.

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

Pokrećemo beskonačnu petlju, tražeći da svi dostupni senzori izračunaju svoje temperature, a zatim ponavljamo kroz vektor senzora slanjem dobivenih očitanja.

printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); while (1) {sensor [0]-> convertTemperature (true, DS1820:: all_devices); // solicita a leitura de temperature para todos os dispositivos encontrados for (int i = 0; itemperature ()); //… e retorna a temperatura printf ("\ r / n"); čekati (1); }

Korak 7: Primljeni podaci

Podaci primljeni
Podaci primljeni

Pomoću jednog senzora dobivamo sljedeći serijski izlaz.

Korak 8: Uključivanje više senzora

Uključujući više senzora
Uključujući više senzora
Uključujući više senzora
Uključujući više senzora

Kako bismo testirali kôd, uvodimo još jedan senzor u komunikacijsku liniju, jednostavno povezujući ga paralelno s prvim senzorom.

Ne zaboravite isključiti sklop prije povezivanja novih senzora.

Prilikom ponovnog pokretanja sklopa dobili smo sljedeći izlaz, bez ikakvih promjena u izvornom kodu.

Korak 9: Pogledajte izvor

#include "mbed.h" // inclusão da biblioteca padrão do MBED #include "DS1820.h" // includesão da biblioteca do sensor DS1820 #define PINO_DE_DADOS A0 // define o pino para leitura dos dados #define MAX_SENSORES 16 // define o najnovijim parametrima ili senzorima senzora DS1820* senzor [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] = novi 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]-> convertTemperature (true, DS1820:: all_devices); // solicita a leitura de temperature para todos os dispositivos encontrados for (int i = 0; itemperature ()); //… e retorna a temperatura printf ("\ r / n"); čekati (1); }}

Korak 10: Datoteke

PDF

Drugi

Preporučeni: