Indholdsfortegnelse:

Utroligt let at programmere !: 10 trin
Utroligt let at programmere !: 10 trin

Video: Utroligt let at programmere !: 10 trin

Video: Utroligt let at programmere !: 10 trin
Video: 💦Blackview BV9200 ЧЕСТНЫЙ ОБЗОР ПРОТИВОУДАРНОГО 2024, Juli
Anonim
Image
Image
Utroligt let at programmere!
Utroligt let at programmere!

I dag vil jeg tale om STM32 Core, L476RG, som er ansigtet til Ultra Low Power. Du kan se det til venstre på billedet. Denne enhed har to hunstifter, en på hver side, som ikke er andet end stikene til arduino -skjoldet. Det er fantastisk, ikke?

Efter min mening gjorde STMicroelectronics dette i sit Development Kit, fordi det ved, at fagfolk bruger denne chip. Dette firma går mere og mere mod arduinoen. Og det gælder også for flere andre professionelle STMicroelectronics -kits.

Endelig vedrørende projektet i dag vil vi bruge to DS18b20 sensorer ud over L476RG. Så vi laver en simpel samling ved hjælp af L476RG, importerer et bibliotek til MBED -miljøet, opretter et program i MBED -miljøet og får data fra L476RG via USB / Serial.

Jeg har allerede talt lidt om L476RG i denne video: DEN NEMMERE MÅDE AT PROGRAMMERE EN MIKROKONTROLLER, hvor jeg viser, hvordan man konfigurerer MBED -miljøet, som er online.

Nogle mennesker, der følger mine videoer, spørger mig, om STM32 erstatter ESP32. Jeg siger en ting: den erstatter ikke, og den kunne ikke, fordi de er to helt forskellige ting.

Denne STM32 -chip er en mikrokontroller, eller rettere; det er ikke en "klynge af ting", ligesom ESP32. Så navnet ligner måske, men de er helt forskellige. STM32 er en generel mikrokontroller, f.eks. En PIC, en Atmel.

Trin 1: Brugte ressourcer

Ressourcer brugt
Ressourcer brugt

1 kerne L476RG

2 DS18b20 sensorer (vi bruger de almindelige vandtætte moduler på markedet)

1 4k7 modstand

Mini protoboard

Jumpere til tilslutning

Trin 2: Montering

montage
montage

Vi vil i første omgang udføre samlingen ved hjælp af en af temperatursensorerne.

Dens effekt vil være 5V.

En 4k7 modstand vil blive brugt til at foretage en pull-up på datalinjen (1-Wire).

Vi læser dataene ved hjælp af A0 -stiften.

Trin 3: Nyt program i MBED

Nyt program i MBED
Nyt program i MBED
Nyt program i MBED
Nyt program i MBED
Nyt program i MBED
Nyt program i MBED

Når du har oprettet din konto i MBED og har adgang til den, opretter vi et nyt program. For at gøre dette skal du højreklikke på "Mine programmer" og vælge "Nyt program …"

Bekræft, at "Platformen" er i overensstemmelse med det bræt, du bruger.

Vi klikker nu på "Skabelon".

Vi opretter et program baseret på eksemplet "Vis en meddelelse på pc ved hjælp af UART".

Indtast programmets navn i "Programnavn".

Marker indstillingen "Opdater dette program og biblioteker til seneste version".

Der oprettes en ny mappe til dit program, inklusive standard MBED -biblioteket og main.cpp -filen.

Du kan bruge den til at teste, om alt fungerer godt. For at gøre dette skal du blot kompilere det og kopiere det til platformen.

Ved hjælp af en valgfri seriel terminal kan du modtage følgende meddelelser.

Trin 4: Import af DS18b20 -biblioteket

Import af DS18b20 -biblioteket
Import af DS18b20 -biblioteket

Da der er flere versioner af biblioteker til Ds18b20, importerer vi ved hjælp af en url, så dit eksempel bruger det samme bibliotek.

Trin 5: Nyt program i MBED

Nyt program i MBED
Nyt program i MBED
Nyt program i MBED
Nyt program i MBED

I feltet "Kilde -URL" skal du udfylde: https://os.mbed.com/users/Sissors/code/DS1820/ og klikke på import.

Dit DS1820 -bibliotek skal vises i din programmappe.

Trin 6: Kildekode

Inkluderer

Vi startede med at inkludere de nødvendige biblioteker.

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

Vi definerer konstanter, der repræsenterer de benyttede stifter.

Bemærk, at DS18b20 er en sensor med 1-WIRE-kommunikation. Af denne grund bruger vi biblioteket, der håndterer hele kommunikationsprotokollen med enhederne. Dette inkluderer at identificere hver enhed op til læsekommandoerne.

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

Vi opretter en vektor, der vil pege på hver af de 16 mulige enheder, der er forbundet til datalinjen.

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

Vi starter hovedmetoden (), hvor vi ved hjælp af metoden "unassignedProbe ()" i DS1820 -biblioteket leder efter alle tilgængelige enheder i kommunikationslinjen.

Vi fylder sensorvektoren med de instanser, der repræsenterer hver af de tilgængelige sensorer.

Vi gør dette, indtil den sidste er fundet, eller indtil vi når maksimum 16 sensorer.

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

Vi sender antallet af sensorer fundet på linjen.

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

Vi starter en uendelig sløjfe, der anmoder om, at alle tilgængelige sensorer beregner deres respektive temperaturer og derefter itererer gennem sensorvektoren ved at sende de opnåede aflæsninger.

printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); mens (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"); vent (1); }

Trin 7: Data modtaget

Data modtaget
Data modtaget

Ved hjælp af en enkelt sensor opnår vi følgende serielle output.

Trin 8: Inkluderer flere sensorer

Herunder flere sensorer
Herunder flere sensorer
Herunder flere sensorer
Herunder flere sensorer

For at teste koden introducerer vi en anden sensor i kommunikationslinjen ved blot at forbinde den parallelt med den første sensor.

Husk at slukke for enheden, før du tilslutter nye sensorer.

Ved genstart af samlingen fik vi følgende output uden ændringer i kildekoden.

Trin 9: Vis kilde

#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 número máximo para o vetor de sensores DS1820* sensor [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] = ny DS1820 (PINO_DE_DADOS); // cria uma instancia para o sensor encontrado encontrados ++; hvis (encontrados == MAX_SENSORES) // verifica se atingiu o máximo de sensores break; } printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); mens (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"); vent (1); }}

Trin 10: Filer

PDF

Andre

Anbefalede: