Съдържание:

Невероятно лесно за програмиране!: 10 стъпки
Невероятно лесно за програмиране!: 10 стъпки

Видео: Невероятно лесно за програмиране!: 10 стъпки

Видео: Невероятно лесно за програмиране!: 10 стъпки
Видео: 10 убеждений, от которых НЕОБХОДИМО отказаться 2024, Ноември
Anonim
Image
Image
Невероятно лесно за програмиране!
Невероятно лесно за програмиране!

Днес ще говоря за ядрото STM32, L476RG, което е лицето на Ultra Low Power. Можете да го видите вляво на изображението. Това устройство има две женски щифтове, по една от всяка страна, които не са нищо повече от съединителите за щита arduino. Това е страхотно, нали?

Според мен STMicroelectronics направи това в своя комплект за разработка, защото знае, че професионалистите използват този чип. Тази компания се насочва все повече към arduino. Това важи и за няколко други професионални комплекта STMicroelectronics.

И накрая, що се отнася до проекта днес, ще използваме два сензора DS18b20 в допълнение към L476RG. Така че ще направим просто сглобяване с помощта на L476RG, ще импортираме библиотека в средата MBED, ще създадем програма в средата MBED и ще получим данни от L476RG чрез USB / Serial.

Вече говорих малко за L476RG в това видео: ПО -ЛЕСНИЯТ НАЧИН НА ПРОГРАМИРАНЕ НА МИКРОКОНТРОЛЕР, където показвам как да конфигурирам средата MBED, която е онлайн.

Някои хора, които следват видеоклиповете ми, ме питат дали STM32 заменя ESP32. Казвам едно: не замества и не би могло, защото те са две напълно различни неща.

Този STM32 чип е микроконтролер, или по -скоро; това не е "куп неща", както е ESP32. Така че името може да изглежда подобно, но те са напълно различни. STM32 е микроконтролер с общо предназначение, като PIC, Atmel, например.

Стъпка 1: Използвани ресурси

Използвани ресурси
Използвани ресурси

1 ядро L476RG

2 сензора DS18b20 (използваме общите водоустойчиви модули на пазара)

1 4k7 резистор

Мини протоборд

Джъмпери за свързване

Стъпка 2: Монтаж

Монтаж
Монтаж

Първоначално ще извършим монтажа с помощта на един от температурните сензори.

Мощността му ще бъде 5V.

Резистор 4k7 ще се използва за издърпване на линията за данни (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" // включване на библиотека padrão do MBED#include "DS1820.h" // включване на biblioteca до сензор DS1820

Определяме константи, които ще представляват използваните пинове.

Обърнете внимание, че DS18b20 е сензор с 1-WIRE комуникация. Поради тази причина използваме библиотеката, която ще обработва целия протокол за комуникация с устройствата. Това включва идентифициране на всяко устройство до команди за четене.

#define PINO_DE_DADOS A0 // дефинирайте o pino para leitura dos dados#дефинирайте MAX_SENSORES 16 // дефинирайте número máximo para o vetor de sensores

Създаваме вектор, който ще сочи към всяко от 16 -те възможни устройства, свързани към линията за данни.

Сензор DS1820* [MAX_SENSORES]; // cria um vetor com 16 позиции за ос сензори

Стартираме метода main (), където, използвайки метода "unassignedProbe ()", съдържащ се в библиотеката DS1820, търсим всички налични устройства в комуникационната линия.

Запълваме сензорния вектор с инстанциите, които ще представляват всеки от наличните сензори.

Правим това, докато не бъде намерен последният или докато достигнем максимума от 16 сензора.

int main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// инициира прокурарен сензор за сензори [encontrados] = нов DS1820 (PINO_DE_DADOS); // cria uma instancia para o sensor encontrado encontrados ++; if (encontrados == MAX_SENSORES) // проверете дали не можете да прекъснете сензорите; }

Изпращаме броя на сензорите, намерени на линията.

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

Стартираме безкраен цикъл, като искаме всички налични сензори да изчислят съответните си температури, и след това да повторим през сензорния вектор, като изпратим получените показания.

printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); while (1) {сензор [0]-> convertTemperature (вярно, DS1820:: всички_устройства); // solicita a leitura de temperature para todos os dispositivos encontrados for (int i = 0; itemperature ()); //… e retorna a temperature printf ("\ r / n"); изчакайте (1); }

Стъпка 7: Получени данни

Получени данни
Получени данни

С помощта на един сензор получаваме следния сериен изход.

Стъпка 8: Включване на още сензори

Включително още сензори
Включително още сензори
Включително още сензори
Включително още сензори

За да тестваме кода, въвеждаме друг сензор в комуникационната линия, просто като го свържем паралелно с първия сензор.

Не забравяйте да изключите монтажа, преди да свържете нови сензори.

При рестартиране на сборката получихме следния изход, без никакви промени в изходния код.

Стъпка 9: Преглед на източника

#include "mbed.h" // включване на библиотека padrão do MBED #include "DS1820.h" // включване на библиотека на сензор DS1820 #define PINO_DE_DADOS A0 // дефиниране на pino para leitura dos dados #дефиниране MAX_SENSORES 16 // дефиниране за най -новите параметри за сензори DS1820* сензор [MAX_SENSORES]; // cria um vetor com 16 позиции за ос сензори int main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// инициира прокурарен сензор за сензори [encontrados] = нов DS1820 (PINO_DE_DADOS); // cria uma instancia para o sensor encontrado encontrados ++; if (encontrados == MAX_SENSORES) // проверете дали не можете да прекъснете сензорите; } printf ("Dispositivos encontrado (s): %d / r / n / n", encontrados); while (1) {сензор [0]-> convertTemperature (вярно, DS1820:: всички_устройства); // solicita a leitura de temperature para todos os dispositivos encontrados for (int i = 0; itemperature ()); //… e retorna a temperature printf ("\ r / n"); изчакайте (1); }}

Стъпка 10: Файлове

PDF

Други

Препоръчано: