Innholdsfortegnelse:

Utrolig enkelt å programmere !: 10 trinn
Utrolig enkelt å programmere !: 10 trinn

Video: Utrolig enkelt å programmere !: 10 trinn

Video: Utrolig enkelt å programmere !: 10 trinn
Video: Нелогичная жизнь_Рассказ_Слушать 2024, Juli
Anonim
Image
Image
Utrolig enkelt å programmere!
Utrolig enkelt å programmere!

I dag skal jeg snakke om STM32 Core, L476RG, som er ansiktet til Ultra Low Power. Du kan se det til venstre på bildet. Denne enheten har to kvinnelige tappestenger, en på hver side, som ikke er annet enn kontaktene for arduino -skjoldet. Dette er flott, ikke sant?

Etter min mening gjorde STMicroelectronics dette i sitt utviklingssett fordi det vet at fagfolk bruker denne brikken. Dette selskapet går mer og mer mot arduinoen. Og dette gjelder også for flere andre profesjonelle STMicroelectronics -sett.

Til slutt, angående prosjektet i dag, vil vi bruke to DS18b20 sensorer i tillegg til L476RG. Så vi skal lage en enkel montering ved hjelp av L476RG, importere et bibliotek til MBED -miljøet, lage et program i MBED -miljøet og få data fra L476RG via USB / Serial.

Jeg har allerede snakket litt om L476RG i denne videoen: ENKLERE MÅTE Å PROGRAMMERE EN MIKROKONTROLLER, der jeg viser hvordan jeg konfigurerer MBED -miljøet, som er online.

Noen som følger videoene mine, spør meg om STM32 erstatter ESP32. Jeg sier en ting: den erstatter ikke, og den kan ikke, fordi de er to helt forskjellige ting.

Denne STM32 -brikken er en mikrokontroller, eller rettere sagt; det er ikke en "klynge av ting" som ESP32. Så navnet kan se likt ut, men de er helt forskjellige. STM32 er en generell mikrokontroller, for eksempel en PIC, en Atmel.

Trinn 1: Ressurser brukt

Ressurser brukt
Ressurser brukt

1 kjerne L476RG

2 DS18b20 sensorer (vi bruker de vanntette vanntette modulene på markedet)

1 4k7 motstand

Mini protoboard

Gensere for tilkobling

Trinn 2: Montering

montering
montering

Vi vil først utføre monteringen ved hjelp av en av temperatursensorene.

Strømmen vil være 5V.

En 4k7 motstand vil bli brukt til å trekke opp datalinjen (1-ledning).

Vi leser dataene ved hjelp av A0 -pinnen.

Trinn 3: Nytt program i MBED

Nytt program i MBED
Nytt program i MBED
Nytt program i MBED
Nytt program i MBED
Nytt program i MBED
Nytt program i MBED

Når du har konfigurert kontoen din i MBED og får tilgang til den, lager vi et nytt program. For å gjøre dette, høyreklikk på "Mine programmer" og velg "Nytt program …"

Bekreft at "Plattformen" samsvarer med brettet du bruker.

Vi klikker nå på "Mal".

Vi lager et program basert på eksemplet "Vis en melding på PC ved hjelp av UART".

Skriv inn navnet på programmet i "Programnavn".

Merk av for alternativet "Oppdater dette programmet og bibliotekene til siste versjon".

En ny mappe for programmet ditt vil bli opprettet, inkludert standard MBED -bibliotek og main.cpp -filen.

Du kan bruke den til å teste om alt fungerer bra. For å gjøre dette, bare kompiler det og kopier det til plattformen.

Ved å bruke en seriell terminal etter eget valg, kan du motta følgende meldinger.

Trinn 4: Importere DS18b20 -biblioteket

Importerer DS18b20 -biblioteket
Importerer DS18b20 -biblioteket

Siden det er flere versjoner av biblioteker for Ds18b20, importerer vi ved hjelp av en url slik at eksempelet ditt bruker det samme biblioteket.

Trinn 5: Nytt program i MBED

Nytt program i MBED
Nytt program i MBED
Nytt program i MBED
Nytt program i MBED

I feltet "Kilde -URL" fyll ut: https://os.mbed.com/users/Sissors/code/DS1820/ og klikk på import.

DS1820 -biblioteket ditt skal vises i programmappen.

Trinn 6: Kildekode

Inkluderer

Vi begynte med å inkludere de nødvendige bibliotekene.

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

Vi definerer konstanter som skal representere pinnene som brukes.

Vær oppmerksom på at DS18b20 er en sensor med 1-WIRE-kommunikasjon. Av denne grunn bruker vi biblioteket som skal håndtere hele kommunikasjonsprotokollen med enhetene. Dette inkluderer å identifisere hver enhet opp til lesekommandoene.

#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 lager en vektor som vil peke på hver av de 16 mulige enhetene som er koblet til datalinjen.

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

Vi starter hovedmetoden (), hvor vi ved hjelp av metoden "unassignedProbe ()" i DS1820 -biblioteket ser etter alle tilgjengelige enheter på kommunikasjonslinjen.

Vi fyller sensorvektoren med forekomstene som vil representere hver av de tilgjengelige sensorene.

Vi gjør dette til den siste er funnet eller til 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 antall sensorer funnet på linjen.

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

Vi starter en uendelig sløyfe og ber om at alle tilgjengelige sensorer beregner sine respektive temperaturer, og deretter går det gjennom sensorvektoren ved å sende innhentede målinger.

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); }

Trinn 7: Data mottatt

Data motatt
Data motatt

Ved å bruke en enkelt sensor får vi følgende serieutgang.

Trinn 8: Inkludert flere sensorer

Inkludert flere sensorer
Inkludert flere sensorer
Inkludert flere sensorer
Inkludert flere sensorer

For å teste koden introduserer vi en annen sensor i kommunikasjonslinjen, ganske enkelt ved å koble den parallelt med den første sensoren.

Husk å slå av enheten før du kobler til nye sensorer.

Ved omstart av samlingen fikk vi følgende utgang, uten noen endringer i kildekoden.

Trinn 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); }}

Trinn 10: Filer

PDF

Andre

Anbefalt: