Πίνακας περιεχομένων:

Απίστευτα εύκολο στον προγραμματισμό!: 10 βήματα
Απίστευτα εύκολο στον προγραμματισμό!: 10 βήματα

Βίντεο: Απίστευτα εύκολο στον προγραμματισμό!: 10 βήματα

Βίντεο: Απίστευτα εύκολο στον προγραμματισμό!: 10 βήματα
Βίντεο: 1 Ποτήρι Νερό Με Σκόρδο Την Ημέρα - 10 Οφέλη Για Οργανισμό & Σώμα! 2024, Νοέμβριος
Anonim
Image
Image
Απίστευτα εύκολο στον προγραμματισμό!
Απίστευτα εύκολο στον προγραμματισμό!

Σήμερα, θα μιλήσω για το STM32 Core, το L476RG, το οποίο είναι το πρόσωπο της Ultra Low Power. Μπορείτε να το δείτε στα αριστερά της εικόνας. Αυτή η συσκευή διαθέτει δύο θηλυκές ράβδους καρφιτσών, μία σε κάθε πλευρά, οι οποίες δεν είναι τίποτε άλλο από τις συνδέσεις για την ασπίδα arduino. Αυτό είναι υπέροχο, όχι;

Κατά τη γνώμη μου, η STMicroelectronics το έκανε αυτό στο κιτ ανάπτυξης, επειδή γνωρίζει ότι οι επαγγελματίες χρησιμοποιούν αυτό το τσιπ. Αυτή η εταιρεία πηγαίνει όλο και περισσότερο προς το arduino. Και αυτό ισχύει επίσης για πολλά άλλα επαγγελματικά κιτ STMicroelectronics.

Τέλος, όσον αφορά το έργο σήμερα, θα χρησιμοποιήσουμε δύο αισθητήρες DS18b20 επιπλέον του L476RG. Έτσι, θα κάνουμε μια απλή συναρμολόγηση χρησιμοποιώντας το L476RG, θα εισαγάγουμε μια βιβλιοθήκη στο περιβάλλον MBED, θα δημιουργήσουμε ένα πρόγραμμα στο περιβάλλον MBED και θα λάβουμε δεδομένα από το L476RG μέσω USB / Serial.

Έχω ήδη μιλήσει λίγο για το L476RG σε αυτό το βίντεο: Ο ΠΙΟ ΕΥΚΟΛΟΣ ΤΡΟΠΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΙΚΡΟΕΛΕΓΧΟΥ, όπου δείχνω πώς να διαμορφώσετε το περιβάλλον MBED, το οποίο είναι online.

Μερικοί άνθρωποι που ακολουθούν τα βίντεό μου με ρωτούν αν το STM32 αντικαθιστά το ESP32. Λέω ένα πράγμα: δεν αντικαθιστά και δεν θα μπορούσε, γιατί είναι δύο εντελώς διαφορετικά πράγματα.

Αυτό το τσιπ STM32 είναι ένας μικροελεγκτής, ή μάλλον? δεν είναι "σύμπλεγμα πραγμάτων" όπως είναι το ESP32. Έτσι, το όνομα μπορεί να μοιάζει, αλλά είναι εντελώς διαφορετικά. Το STM32 είναι ένας μικροελεγκτής γενικής χρήσης, όπως ένα PIC, ένα Atmel, για παράδειγμα.

Βήμα 1: Χρησιμοποιημένοι πόροι

Πόροι που χρησιμοποιήθηκαν
Πόροι που χρησιμοποιήθηκαν

1 Core L476RG

2 αισθητήρες DS18b20 (χρησιμοποιούμε τις κοινές αδιάβροχες μονάδες στην αγορά)

1 αντίσταση 4k7

Μίνι protoboard

Μπλουζάκια για σύνδεση

Βήμα 2: Συναρμολόγηση

Συνέλευση
Συνέλευση

Αρχικά θα πραγματοποιήσουμε τη συναρμολόγηση χρησιμοποιώντας έναν από τους αισθητήρες θερμοκρασίας.

Η ισχύς του θα είναι 5V.

Μια αντίσταση 4k7 θα χρησιμοποιηθεί για να κάνει pull-up στη γραμμή δεδομένων (1-Wire).

Θα διαβάσουμε τα δεδομένα χρησιμοποιώντας τον ακροδέκτη A0.

Βήμα 3: Νέο πρόγραμμα στο MBED

Νέο Πρόγραμμα στο MBED
Νέο Πρόγραμμα στο MBED
Νέο Πρόγραμμα στο MBED
Νέο Πρόγραμμα στο MBED
Νέο Πρόγραμμα στο MBED
Νέο Πρόγραμμα στο MBED

Μόλις ρυθμίσετε τον λογαριασμό σας στο MBED και έχετε πρόσβαση σε αυτόν, θα δημιουργήσουμε ένα νέο πρόγραμμα. Για να το κάνετε αυτό, κάντε δεξί κλικ στο "Τα προγράμματά μου" και επιλέξτε "Νέο πρόγραμμα …"

Επιβεβαιώστε ότι η "Πλατφόρμα" συμμορφώνεται με τον πίνακα που χρησιμοποιείτε.

Τώρα κάνουμε κλικ στο "Πρότυπο".

Θα δημιουργήσουμε ένα πρόγραμμα με βάση το παράδειγμα "Εμφάνιση μηνύματος στον υπολογιστή χρησιμοποιώντας το UART".

Εισαγάγετε το όνομα του προγράμματος στο "Όνομα προγράμματος".

Ελέγξτε την επιλογή "Ενημέρωση αυτού του προγράμματος και των βιβλιοθηκών στην πιο πρόσφατη αναθεώρηση".

Θα δημιουργηθεί ένας νέος φάκελος για το πρόγραμμά σας, συμπεριλαμβανομένης της προεπιλεγμένης βιβλιοθήκης MBED και του αρχείου main.cpp.

Μπορείτε να το χρησιμοποιήσετε για να ελέγξετε αν όλα λειτουργούν καλά. Για να το κάνετε αυτό, απλώς μεταγλωττίστε το και αντιγράψτε το στην πλατφόρμα.

Χρησιμοποιώντας σειριακό τερματικό της επιλογής σας, μπορείτε να λάβετε τα ακόλουθα μηνύματα.

Βήμα 4: Εισαγωγή της βιβλιοθήκης DS18b20

Εισαγωγή της βιβλιοθήκης DS18b20
Εισαγωγή της βιβλιοθήκης DS18b20

Καθώς υπάρχουν αρκετές εκδόσεις βιβλιοθηκών για το Ds18b20, θα εισαγάγουμε χρησιμοποιώντας ένα url, έτσι ώστε το παράδειγμά σας να χρησιμοποιεί την ίδια βιβλιοθήκη.

Βήμα 5: Νέο πρόγραμμα στο MBED

Νέο Πρόγραμμα στο MBED
Νέο Πρόγραμμα στο MBED
Νέο Πρόγραμμα στο MBED
Νέο Πρόγραμμα στο MBED

Στο πεδίο "Διεύθυνση URL πηγής" συμπληρώστε: https://os.mbed.com/users/Sissors/code/DS1820/ και κάντε κλικ στην εισαγωγή.

Η βιβλιοθήκη DS1820 θα πρέπει να εμφανίζεται στο φάκελο του προγράμματος σας.

Βήμα 6: Πηγαίος κώδικας

Περιλαμβάνει

Ξεκινήσαμε συμπεριλαμβάνοντας τις απαραίτητες βιβλιοθήκες.

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

Ορίζουμε σταθερές που θα αντιπροσωπεύουν τις καρφίτσες που χρησιμοποιούνται.

Σημειώστε ότι το DS18b20 είναι ένας αισθητήρας με επικοινωνία 1-WIRE. Για το λόγο αυτό, χρησιμοποιούμε τη βιβλιοθήκη που θα χειρίζεται ολόκληρο το πρωτόκολλο επικοινωνίας με τις συσκευές. Αυτό περιλαμβάνει την αναγνώριση κάθε συσκευής μέχρι τις εντολές ανάγνωσης.

#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

Δημιουργούμε ένα διάνυσμα που θα δείχνει κάθε μία από τις 16 πιθανές συσκευές που είναι συνδεδεμένες στη γραμμή δεδομένων.

Αισθητήρας DS1820* [MAX_SENSORES]; // cria um vetor com 16 posições para os sensores

Ξεκινάμε την κύρια () μέθοδο, όπου, χρησιμοποιώντας τη μέθοδο "unassignedProbe ()" που περιέχεται στη βιβλιοθήκη DS1820, αναζητούμε όλες τις διαθέσιμες συσκευές στη γραμμή επικοινωνίας.

Γεμίζουμε το διάνυσμα του αισθητήρα με τις περιπτώσεις που θα αντιπροσωπεύουν κάθε έναν από τους διαθέσιμους αισθητήρες.

Αυτό το κάνουμε μέχρι να βρεθεί ο τελευταίος ή μέχρι να φτάσουμε στο μέγιστο των 16 αισθητήρων.

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

Στέλνουμε τον αριθμό των αισθητήρων που βρίσκονται στη γραμμή.

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

Ξεκινάμε έναν άπειρο βρόχο, ζητώντας από όλους τους διαθέσιμους αισθητήρες να υπολογίσουν τις αντίστοιχες θερμοκρασίες τους και στη συνέχεια να επαναληφθεί μέσω του διανύσματος του αισθητήρα στέλνοντας τις μετρήσεις που λαμβάνονται.

printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); ενώ (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"); περιμένετε (1)? }

Βήμα 7: Λήφθηκαν δεδομένα

Δεδομένα που ελήφθησαν
Δεδομένα που ελήφθησαν

Χρησιμοποιώντας έναν μόνο αισθητήρα, λαμβάνουμε την ακόλουθη σειριακή έξοδο.

Βήμα 8: Συμπεριλαμβανομένων περισσότερων αισθητήρων

Συμπεριλαμβανομένων περισσότερων αισθητήρων
Συμπεριλαμβανομένων περισσότερων αισθητήρων
Συμπεριλαμβανομένων περισσότερων αισθητήρων
Συμπεριλαμβανομένων περισσότερων αισθητήρων

Για να δοκιμάσετε τον κώδικα, εισάγουμε έναν άλλο αισθητήρα στη γραμμή επικοινωνίας, απλώς συνδέοντάς τον παράλληλα με τον πρώτο αισθητήρα.

Θυμηθείτε να απενεργοποιήσετε τη διάταξη πριν συνδέσετε νέους αισθητήρες.

Κατά την επανεκκίνηση του συγκροτήματος, λάβαμε την ακόλουθη έξοδο, χωρίς αλλαγές στον πηγαίο κώδικα.

Βήμα 9: Προβολή πηγής

#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; ενώ (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 ++; εάν (encontrados == MAX_SENSORES) // verifica se atingiu o máximo de sensores break? } printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); ενώ (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"); περιμένετε (1)? }}

Βήμα 10: Αρχεία

PDF

Οι υπολοιποι

Συνιστάται: