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, Juli
Anonim
Image
Image
Nevjerojatno jednostavno programiranje!
Nevjerojatno jednostavno programiranje!

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

Po mom mišljenju, STMicroelectronics je to učinila u svom razvojnom kompletu jer zna da profesionalci koriste ovaj čip. Ova kompanija 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 jednostavan sklop pomoću L476RG, uvesti biblioteku u MBED okruženje, kreirati program u MBED okruženju i dobiti podatke iz L476RG putem USB -a / serijskog priključka.

Već sam govorio malo 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; to nije "grupa stvari" kao što je ESP32. Dakle, ime može izgledati slično, ali su potpuno različiti. STM32 je mikrokontroler opće namjene, poput PIC -a, Atmela, na primjer.

Korak 1: Korišteni resursi

Korišteni resursi
Korišteni resursi

1 jezgro 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

Montaža
Montaža

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 na podatkovnoj liniji (1-žica).

Podaci ć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, kreirat ć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".

Napravit ćemo program na temelju primjera "Prikaz poruke na računaru pomoću UART -a".

Unesite naziv programa u "Naziv programa".

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

Bit će kreirana nova mapa za vaš program, uključujući zadanu MBED biblioteku 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 biblioteke DS18b20

Uvoz biblioteke DS18b20
Uvoz biblioteke DS18b20

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

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" popunite: https://os.mbed.com/users/Sissors/code/DS1820/ i kliknite uvoz.

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

Korak 6: Izvorni kod

Uključuje

Počeli smo uključivanjem potrebnih biblioteka.

#include "mbed.h" // uključuje biblioteku za MBED#include "DS1820.h" // uključuje biblioteku 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 biblioteku 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 parametrima prijenosa podataka#definirajte MAX_SENSORES 16 // definirajte número máximo para o vetoru senzora

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

DS1820* senzor [MAX_SENSORES]; // cria um vetor com 16 pozicija za osjetila

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

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

To radimo dok se ne pronađe posljednji ili dok ne dosegnemo maksimalnih 16 senzora.

int main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// inicia procura senzor senzora [encontrados] = novi DS1820 (PINO_DE_DADOS); // cria uma instancia para senzor encontrado encontrados ++; if (encontrados == MAX_SENSORES) // provjerava se da li se o senzorima mogu prekinuti; }

Š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); // postavljanje temperature na temperaturu za određivanje raspoloživosti encontrados za (int i = 0; itemperature ()); //… e retorna a temperatura printf ("\ r / n"); čekaj (1); }

Korak 7: Primljeni podaci

Podaci su primljeni
Podaci su primljeni

Koristeći jedan senzor, 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 povezivanjem 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" // uključuje biblioteku do MBED -a #uključuje "DS1820.h" // uključuje biblioteku senzora DS1820 #define PINO_DE_DADOS A0 // definirajte pino parametre za prijenos podataka #define MAX_SENSORES 16 // definirajte o najnovijim parametrima ili senzorima senzora DS1820* senzor [MAX_SENSORES]; // cria um vetor com 16 pozicija za senzore int main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// inicia procura senzor senzora [encontrados] = novi DS1820 (PINO_DE_DADOS); // cria uma instancia para senzor encontrado encontrados ++; if (encontrados == MAX_SENSORES) // provjerava se da li se o senzorima mogu prekinuti; } printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); while (1) {sensor [0]-> convertTemperature (true, DS1820:: all_devices); // postavljanje temperature na temperaturu za određivanje raspoloživosti i za (int i = 0; itemperature ()); //… e retorna a temperatura printf ("\ r / n"); čekaj (1); }}

Korak 10: Datoteke

PDF

Drugi

Preporučuje se: