Innehållsförteckning:

Otroligt lätt att programmera !: 10 steg
Otroligt lätt att programmera !: 10 steg

Video: Otroligt lätt att programmera !: 10 steg

Video: Otroligt lätt att programmera !: 10 steg
Video: Полный курс по Next js - Изучи Nextjs за 2 часа! | React SSR +таймкоды 2024, November
Anonim
Image
Image
Otroligt lätt att programmera!
Otroligt lätt att programmera!

Idag ska jag prata om STM32 Core, L476RG, som är ansiktet på Ultra Low Power. Du kan se den till vänster på bilden. Denna enhet har två hona -stiftstänger, en på varje sida, som inte är annat än kontakterna för arduino -skärmen. Det här är bra, eller hur?

Enligt min mening gjorde STMicroelectronics detta i sitt utvecklingspaket eftersom det vet att proffs använder detta chip. Detta företag går mer och mer mot arduino. Och detta gäller även för flera andra professionella STMicroelectronics -kit.

Slutligen, om projektet idag, kommer vi att använda två DS18b20 -sensorer utöver L476RG. Så vi gör en enkel montering med L476RG, importerar ett bibliotek till MBED -miljön, skapar ett program i MBED -miljön och får data från L476RG via USB / Serial.

Jag har redan pratat lite om L476RG i den här videon: ENKLARE SÄTT ATT PROGRAMMERA EN MIKROKONTROLLER, där jag visar hur man konfigurerar MBED -miljön, som är online.

Vissa människor som följer mina videor frågar mig om STM32 ersätter ESP32. Jag säger en sak: den ersätter inte och den kan inte, eftersom de är två helt olika saker.

Detta STM32 -chip är en mikrokontroller, eller snarare; det är inte ett "kluster av saker" liksom ESP32. Så namnet kan se likadant ut, men de är helt olika. STM32 är en mikrokontroller för allmänna ändamål, till exempel en PIC, en Atmel.

Steg 1: Resurser som används

Resurser som används
Resurser som används

1 kärna L476RG

2 DS18b20 -sensorer (vi använder de vanliga vattentäta modulerna på marknaden)

1 4k7 motstånd

Mini protoboard

Byxor för anslutning

Steg 2: Montering

hopsättning
hopsättning

Vi kommer inledningsvis att montera med en av temperatursensorerna.

Dess effekt kommer att vara 5V.

Ett 4k7-motstånd kommer att användas för att dra upp datalinjen (1-tråd).

Vi kommer att läsa data med hjälp av A0 -stiftet.

Steg 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 konfigurerat ditt konto i MBED och har tillgång till det skapar vi ett nytt program. För att göra detta, högerklicka på "Mina program" och välj "Nytt program …"

Bekräfta att "plattformen" överensstämmer med det kort du använder.

Vi klickar nu på "Mall".

Vi skapar ett program baserat på exemplet "Visa ett meddelande på PC med UART".

Ange programmets namn i "Programnamn".

Markera alternativet "Uppdatera detta program och bibliotek till senaste versionen".

En ny mapp för ditt program skapas, inklusive standard MBED -bibliotek och main.cpp -filen.

Du kan använda den för att testa om allt fungerar bra. För att göra detta, kompilera det enkelt och kopiera det till plattformen.

Med en valfri seriell terminal kan du få följande meddelanden.

Steg 4: Importera DS18b20 -biblioteket

Importera DS18b20 -biblioteket
Importera DS18b20 -biblioteket

Eftersom det finns flera versioner av bibliotek för Ds18b20 kommer vi att importera med en webbadress så att ditt exempel använder samma bibliotek.

Steg 5: Nytt program i MBED

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

I fältet "Källadress" fyller du i: https://os.mbed.com/users/Sissors/code/DS1820/ och klickar på Importera.

Ditt DS1820 -bibliotek bör visas i din programmapp.

Steg 6: Källkod

Inkluderar

Vi började med att inkludera nödvändiga bibliotek.

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

Vi definierar konstanter som representerar stiften som används.

Observera att DS18b20 är en sensor med 1-WIRE-kommunikation. Av denna anledning använder vi biblioteket som hanterar hela kommunikationsprotokollet med enheterna. Detta inkluderar att identifiera varje enhet upp till läskommandona.

#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 skapar en vektor som pekar på var och en av de 16 möjliga enheterna som är anslutna till datalinjen.

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

Vi startar huvudmetoden (), där vi med hjälp av metoden "unassignedProbe ()" i DS1820 -biblioteket letar efter alla tillgängliga enheter på kommunikationslinjen.

Vi fyller sensorvektorn med de instanser som kommer att representera var och en av de tillgängliga sensorerna.

Vi gör detta tills den sista hittas eller tills vi når maximalt 16 sensorer.

int main () {int encontrados = 0; medan (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 ++; if (encontrados == MAX_SENSORES) // verifica se atingiu o máximo de sensores break; }

Vi skickar antalet sensorer som finns på linjen.

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

Vi startar en oändlig slinga och begär att alla tillgängliga sensorer beräknar sina respektive temperaturer och itererar sedan genom sensorvektorn genom att skicka de erhållna avläsningarna.

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

Steg 7: Mottagna data

Data mottaget
Data mottaget

Med en enda sensor får vi följande serieutgång.

Steg 8: Inklusive fler sensorer

Inklusive fler sensorer
Inklusive fler sensorer
Inklusive fler sensorer
Inklusive fler sensorer

För att testa koden introducerar vi en annan sensor i kommunikationslinjen, helt enkelt genom att ansluta den parallellt med den första sensorn.

Kom ihåg att stänga av enheten innan du ansluter nya sensorer.

När vi startade om enheten fick vi följande utdata utan några ändringar i källkoden.

Steg 9: Visa källa

#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; medan (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 ++; if (encontrados == MAX_SENSORES) // verifica se atingiu o máximo de sensores break; } printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); medan (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"); vänta (1); }}

Steg 10: Filer

PDF

Andra

Rekommenderad: