Inhoudsopgave:

Ongelooflijk eenvoudig te programmeren!: 10 stappen
Ongelooflijk eenvoudig te programmeren!: 10 stappen

Video: Ongelooflijk eenvoudig te programmeren!: 10 stappen

Video: Ongelooflijk eenvoudig te programmeren!: 10 stappen
Video: JE PC SNELLER MAKEN IN 10 STAPPEN! - Top 10 2024, November
Anonim
Image
Image
Ongelooflijk eenvoudig te programmeren!
Ongelooflijk eenvoudig te programmeren!

Vandaag zal ik het hebben over de STM32 Core, de L476RG, het gezicht van Ultra Low Power. Je ziet het aan de linkerkant van de afbeelding. Dit apparaat heeft twee vrouwelijke pin-bars, één aan elke kant, die niets meer zijn dan de connectoren voor het arduino-schild. Dit is geweldig, niet?

Naar mijn mening deed STMicroelectronics dit in zijn Development Kit omdat het weet dat professionals deze chip gebruiken. Dit bedrijf gaat steeds meer richting de arduino. En dit geldt ook voor verschillende andere professionele STMicroelectronics-kits.

Tot slot, met betrekking tot het project van vandaag, zullen we naast de L476RG twee DS18b20-sensoren gebruiken. Dus we zullen een eenvoudige montage maken met behulp van de L476RG, een bibliotheek importeren in de MBED-omgeving, een programma maken in de MBED-omgeving en gegevens van de L476RG krijgen via USB / serieel.

Ik heb het al een beetje gehad over de L476RG in deze video: DE EENVOUDIGE MANIER OM EEN MICROCONTROLLER TE PROGRAMMEREN, waar ik laat zien hoe de MBED-omgeving, die online is, moet worden geconfigureerd.

Sommige mensen die mijn video's volgen, vragen me of STM32 ESP32 vervangt. Ik zeg één ding: het vervangt niet en het zou ook niet kunnen, want het zijn twee totaal verschillende dingen.

Deze STM32-chip is een microcontroller, of beter gezegd; het is geen "cluster van dingen", zoals de ESP32. Dus de naam lijkt misschien op elkaar, maar ze zijn totaal verschillend. De STM32 is een microcontroller voor algemene doeleinden, zoals een PIC, een Atmel bijvoorbeeld.

Stap 1: Gebruikte bronnen

Gebruikte bronnen
Gebruikte bronnen

1 kern L476RG

2 DS18b20-sensoren (we gebruiken de gangbare waterdichte modules op de markt)

1 4k7 weerstand

Mini-protoboard

Jumpers voor verbinding

Stap 2: Montage

samenkomst
samenkomst

De montage zullen we in eerste instantie uitvoeren met behulp van een van de temperatuursensoren.

Zijn vermogen zal 5V zijn.

Een 4k7-weerstand wordt gebruikt om een pull-up op de datalijn uit te voeren (1-draads).

We zullen de gegevens lezen met behulp van de A0-pin.

Stap 3: Nieuw programma in MBED

Nieuw programma in MBED
Nieuw programma in MBED
Nieuw programma in MBED
Nieuw programma in MBED
Nieuw programma in MBED
Nieuw programma in MBED

Zodra je je account hebt ingesteld in MBED en er toegang toe hebt, zullen we een nieuw programma maken. Klik hiervoor met de rechtermuisknop op "Mijn programma's" en selecteer "Nieuw programma …"

Bevestig dat het "Platform" overeenkomt met het bord dat u gebruikt.

We klikken nu op "Sjabloon".

We zullen een programma maken op basis van het voorbeeld "Een bericht weergeven op pc met UART".

Voer de naam van het programma in bij "Programmanaam".

Vink de optie "Dit programma en bibliotheken bijwerken naar de laatste revisie" aan.

Er wordt een nieuwe map voor uw programma gemaakt, inclusief de standaard MBED-bibliotheek en het main.cpp-bestand.

Je kunt het gebruiken om te testen of alles goed werkt. Om dit te doen, compileert u het eenvoudig en kopieert u het naar het platform.

Met een seriële terminal naar keuze kunt u de volgende berichten ontvangen.

Stap 4: De DS18b20-bibliotheek importeren

De DS18b20-bibliotheek importeren
De DS18b20-bibliotheek importeren

Aangezien er verschillende versies van bibliotheken zijn voor de Ds18b20, zullen we importeren met behulp van een url, zodat uw voorbeeld dezelfde bibliotheek gebruikt.

Stap 5: Nieuw programma in MBED

Nieuw programma in MBED
Nieuw programma in MBED
Nieuw programma in MBED
Nieuw programma in MBED

Vul in het veld "Bron-URL" in: https://os.mbed.com/users/Sissors/code/DS1820/ en klik op importeren.

Uw DS1820-bibliotheek zou in uw programmamap moeten verschijnen.

Stap 6: Broncode

Inclusief

We zijn begonnen met het opnemen van de benodigde bibliotheken.

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

We definiëren constanten die de gebruikte pinnen vertegenwoordigen.

Merk op dat de DS18b20 een sensor is met 1-draads communicatie. Om deze reden gebruiken we de bibliotheek die het volledige communicatieprotocol met de apparaten afhandelt. Dit omvat het identificeren van elk apparaat tot aan de leesopdrachten.

#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

We maken een vector die wijst naar elk van de 16 mogelijke apparaten die op de datalijn zijn aangesloten.

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

We starten de main ()-methode, waarbij we met behulp van de "unassignedProbe ()"-methode in de DS1820-bibliotheek zoeken naar alle beschikbare apparaten in de communicatielijn.

We vullen de sensorvector met de instanties die elk van de beschikbare sensoren vertegenwoordigen.

Dit doen we totdat de laatste is gevonden of totdat we het maximum van 16 sensoren hebben bereikt.

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

We sturen het aantal sensoren dat op de lijn is gevonden.

printf("Beschikking(en): %d \r\n\n", encontrados);

We starten een oneindige lus en vragen dat alle beschikbare sensoren hun respectieve temperaturen berekenen en vervolgens de sensorvector doorlopen door de verkregen meetwaarden te verzenden.

printf("Beschikking(en): %d \r\n\n", encontrados); while(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"); wacht(1); }

Stap 7: ontvangen gegevens

Gegevens ontvangen
Gegevens ontvangen

Met behulp van een enkele sensor verkrijgen we de volgende seriële uitvoer.

Stap 8: Meer sensoren opnemen

Inclusief meer sensoren
Inclusief meer sensoren
Inclusief meer sensoren
Inclusief meer sensoren

Om de code te testen, introduceren we een andere sensor in de communicatielijn, simpelweg door deze parallel aan de eerste sensor aan te sluiten.

Denk eraan om het geheel uit te schakelen voordat u nieuwe sensoren aansluit.

Bij het herstarten van de assembly hebben we de volgende output verkregen, zonder enige wijziging in de broncode.

Stap 9: Bron bekijken

#include "mbed.h" //inclusief biblioteca padrão MBED#include "DS1820.h" //include biblioteca do sensor DS1820 #define PINO_DE_DADOS A0 //define o pino para leitura dos dados #define MAX_SENSORES 16 //define MAX_SENSORES 16 //define MAX_SENSORES 16 //define MAX_SENSORES 16 //define MAX_SENSORES 16 meer aantal maximale sensoren 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)) {// initicia a procura por sensores sensor [encontrados] = nieuwe 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("Beschikking(en): %d \r\n\n", encontrados); while(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"); wacht(1); } }

Stap 10: Bestanden

PDF

anderen

Aanbevolen: