Inhaltsverzeichnis:

Unglaublich einfach zu programmieren! - Gunook
Unglaublich einfach zu programmieren! - Gunook

Video: Unglaublich einfach zu programmieren! - Gunook

Video: Unglaublich einfach zu programmieren! - Gunook
Video: PROGRAMMIEREN LERNEN - So startest du! 2024, Juli
Anonim
Image
Image
Unglaublich einfach zu programmieren!
Unglaublich einfach zu programmieren!

Heute werde ich über den STM32-Core, den L476RG, sprechen, der das Gesicht von Ultra Low Power ist. Sie können es links im Bild sehen. Dieses Gerät verfügt über zwei weibliche Stiftleisten, eine auf jeder Seite, die nichts anderes als die Anschlüsse für das Arduino-Shield sind. Das ist großartig, nicht wahr?

Meiner Meinung nach hat STMicroelectronics dies in seinem Development Kit getan, weil es weiß, dass Profis diesen Chip verwenden. Dieses Unternehmen geht immer mehr in Richtung Arduino. Dies gilt auch für mehrere andere professionelle STMicroelectronics-Kits.

Schließlich werden wir in Bezug auf das heutige Projekt neben dem L476RG zwei DS18b20-Sensoren verwenden. Wir machen also eine einfache Assemblierung mit dem L476RG, importieren eine Bibliothek in die MBED-Umgebung, erstellen ein Programm in der MBED-Umgebung und holen Daten vom L476RG über USB / Seriell.

Ich habe bereits ein wenig über den L476RG in diesem Video gesprochen: THE EASIER WAY TO PROGRAM A MICROCONTROLLER, wo ich zeige, wie die MBED-Umgebung konfiguriert wird, die online ist.

Einige Leute, die meinen Videos folgen, fragen mich, ob STM32 ESP32 ersetzt. Ich sage eines: Es ersetzt nicht und könnte es nicht, weil es zwei völlig verschiedene Dinge sind.

Dieser STM32-Chip ist ein Mikrocontroller, oder besser gesagt; es ist kein "Cluster von Dingen" wie der ESP32. Der Name mag also ähnlich aussehen, aber sie sind völlig unterschiedlich. Der STM32 ist ein Allzweck-Mikrocontroller, wie beispielsweise ein PIC, ein Atmel.

Schritt 1: Verwendete Ressourcen

Verwendete Ressourcen
Verwendete Ressourcen

1 Kern L476RG

2 DS18b20 Sensoren (wir verwenden die gängigen wasserdichten Module auf dem Markt)

1 4k7 Widerstand

Mini-Protoboard

Jumper zum Anschluss

Schritt 2: Montage

Montage
Montage

Die Montage führen wir zunächst mit einem der Temperatursensoren durch.

Seine Leistung beträgt 5V.

Ein 4k7-Widerstand wird verwendet, um einen Pull-up auf der Datenleitung (1-Wire) durchzuführen.

Wir werden die Daten mit dem A0-Pin lesen.

Schritt 3: Neues Programm in MBED

Neues Programm in MBED
Neues Programm in MBED
Neues Programm in MBED
Neues Programm in MBED
Neues Programm in MBED
Neues Programm in MBED

Sobald Sie Ihr Konto in MBED eingerichtet haben und darauf zugreifen, erstellen wir ein neues Programm. Klicken Sie dazu mit der rechten Maustaste auf „Meine Programme“und wählen Sie „Neues Programm …“

Bestätigen Sie, dass die "Plattform" mit dem von Ihnen verwendeten Board übereinstimmt.

Wir klicken nun auf "Vorlage".

Wir erstellen ein Programm basierend auf dem Beispiel "Anzeige einer Nachricht auf dem PC mit UART".

Geben Sie unter "Programmname" den Namen des Programms ein.

Aktivieren Sie die Option "Dieses Programm und diese Bibliotheken auf die neueste Version aktualisieren".

Ein neuer Ordner für Ihr Programm wird erstellt, einschließlich der Standard-MBED-Bibliothek und der Datei main.cpp.

Sie können es verwenden, um zu testen, ob alles gut funktioniert. Dazu einfach kompilieren und auf die Plattform kopieren.

Mit einem seriellen Terminal Ihrer Wahl können Sie die folgenden Meldungen empfangen.

Schritt 4: Importieren der DS18b20-Bibliothek

Importieren der DS18b20-Bibliothek
Importieren der DS18b20-Bibliothek

Da es mehrere Versionen von Bibliotheken für den Ds18b20 gibt, importieren wir mit einer URL, damit Ihr Beispiel dieselbe Bibliothek verwendet.

Schritt 5: Neues Programm in MBED

Neues Programm in MBED
Neues Programm in MBED
Neues Programm in MBED
Neues Programm in MBED

Geben Sie im Feld "Quell-URL" Folgendes ein: https://os.mbed.com/users/Sissors/code/DS1820/ und klicken Sie auf Importieren.

Ihre DS1820-Bibliothek sollte in Ihrem Programmordner erscheinen.

Schritt 6: Quellcode

Beinhaltet

Wir begannen damit, die notwendigen Bibliotheken einzubinden.

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

Wir definieren Konstanten, die die verwendeten Pins darstellen.

Beachten Sie, dass der DS18b20 ein Sensor mit 1-WIRE-Kommunikation ist. Aus diesem Grund verwenden wir die Bibliothek, die das gesamte Kommunikationsprotokoll mit den Geräten abwickelt. Dies beinhaltet die Identifizierung jedes Geräts bis hin zu den Lesebefehlen.

#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

Wir erstellen einen Vektor, der auf jedes der 16 möglichen Geräte zeigt, die an die Datenleitung angeschlossen sind.

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

Wir starten die Methode main(), bei der wir mit der Methode "unassignedProbe()", die in der DS1820-Bibliothek enthalten ist, nach allen verfügbaren Geräten in der Kommunikationsleitung suchen.

Wir füllen den Sensorvektor mit den Instanzen, die jeden der verfügbaren Sensoren repräsentieren.

Wir tun dies, bis der letzte gefunden wird oder bis wir das Maximum von 16 Sensoren erreichen.

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

Wir senden die Anzahl der auf der Leitung gefundenen Sensoren.

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

Wir starten eine Endlosschleife, in der alle verfügbaren Sensoren ihre jeweiligen Temperaturen berechnen und dann den Sensorvektor durchlaufen, indem wir die erhaltenen Messwerte senden.

printf("Dispositivos encontrado(s): %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 temperature printf("\r\n"); warten(1); }

Schritt 7: Daten empfangen

Daten erhalten
Daten erhalten

Bei Verwendung eines einzelnen Sensors erhalten wir die folgende serielle Ausgabe.

Schritt 8: Weitere Sensoren einschließen

Einschließlich weiterer Sensoren
Einschließlich weiterer Sensoren
Einschließlich weiterer Sensoren
Einschließlich weiterer Sensoren

Um den Code zu testen, führen wir einen weiteren Sensor in die Kommunikationsleitung ein, indem wir ihn einfach parallel zum ersten Sensor schalten.

Denken Sie daran, die Baugruppe auszuschalten, bevor Sie neue Sensoren anschließen.

Beim Neustart der Assembly haben wir die folgende Ausgabe erhalten, ohne dass der Quellcode geändert wurde.

Schritt 9: Quelle anzeigen

#include "mbed.h" //inclusão da biblioteca padrão do MBED#include "DS1820.h" //include the 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] = new 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); 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 temperature printf("\r\n"); warten(1); } }

Schritt 10: Dateien

PDF

Andere

Empfohlen: