Оглавление:

Невероятно легко программировать! 10 шагов
Невероятно легко программировать! 10 шагов

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

Видео: Невероятно легко программировать! 10 шагов
Видео: Через 7 ДНЕЙ Ты Увидишь НЕВЕРОЯТНЫЕ РЕЗУЛЬТАТЫ | Джо Диспенза - Как Изменить Свою Жизнь За 7 Дней? 2024, Ноябрь
Anonim
Image
Image
Невероятно легко программировать!
Невероятно легко программировать!

Сегодня я расскажу о ядре STM32, L476RG, которое является лицом сверхнизкого энергопотребления. Вы можете увидеть это слева от изображения. Это устройство имеет две розетки с контактами, по одной с каждой стороны, которые представляют собой не что иное, как разъемы для экрана Arduino. Это здорово, не так ли?

На мой взгляд, STMicroelectronics сделала это в своем комплекте разработчика, потому что знает, что профессионалы используют этот чип. Эта компания все больше и больше движется к ардуино. И это также верно для нескольких других профессиональных комплектов STMicroelectronics.

Наконец, что касается сегодняшнего проекта, мы будем использовать два датчика DS18b20 в дополнение к L476RG. Итак, мы сделаем простую сборку с помощью L476RG, импортируем библиотеку в среду MBED, создадим программу в среде MBED и получим данные с L476RG через USB / последовательный порт.

Я уже немного рассказывал о L476RG в этом видео: ПРОСТОЙ СПОСОБ ПРОГРАММИРОВАНИЯ МИКРОКОНТРОЛЛЕРА, где я показываю, как настроить среду MBED, которая находится в сети.

Некоторые люди, которые следят за моими видео, спрашивают меня, заменяет ли STM32 ESP32. Я говорю одно: его не заменить и не могло, потому что это две совершенно разные вещи.

Эта микросхема STM32 представляет собой микроконтроллер, а точнее; это не «кластер вещей», как ESP32. Так что названия могут выглядеть похожими, но они совершенно разные. STM32 - это микроконтроллер общего назначения, например, PIC, Atmel.

Шаг 1. Используемые ресурсы

Используемые ресурсы
Используемые ресурсы

1 ядро L476RG

2 датчика DS18b20 (мы используем обычные водонепроницаемые модули, представленные на рынке)

1 резистор 4k7

Мини-макетная плата

Перемычки для подключения

Шаг 2: Сборка

сборка
сборка

Изначально сборку будем проводить с помощью одного из датчиков температуры.

Его мощность будет 5В.

Резистор 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" // включение библиотеки в MBED # include "DS1820.h" // включение библиотеки в датчик DS1820

Мы определяем константы, которые будут представлять используемые контакты.

Обратите внимание, что DS18b20 - это датчик с 1-WIRE связью. По этой причине мы используем библиотеку, которая будет обрабатывать весь протокол связи с устройствами. Это включает в себя идентификацию каждого устройства до команд чтения.

#define PINO_DE_DADOS A0 // определение pino para leitura dos dados #define MAX_SENSORES 16 // определение максимального числа для вектора сенсоров

Мы создаем вектор, который будет указывать на каждое из 16 возможных устройств, подключенных к линии данных.

DS1820 * датчик [MAX_SENSORES]; // cria um vetor com 16 позиций для сенсорных устройств

Мы запускаем метод main (), где с помощью метода unassignedProbe (), содержащегося в библиотеке DS1820, ищем все доступные устройства в линии связи.

Мы заполняем вектор датчика экземплярами, которые будут представлять каждый из доступных датчиков.

Мы делаем это до тех пор, пока не будет найден последний или пока не наберем максимум 16 датчиков.

int main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// инициирование датчика procura por sensores [encontrados] = новый DS1820 (PINO_DE_DADOS); // cria uma instancia para o sensor encontrado encontrados ++; if (encontrados == MAX_SENSORES) // проверка максимума сенсоров break; }

Высылаем количество найденных на линии датчиков.

printf ("Контрастные диспозиции:% d / r / n / n", прямо противоположные);

Мы запускаем бесконечный цикл, запрашивая, чтобы все доступные датчики вычисляли свои соответствующие температуры, а затем перебираем вектор датчика, отправляя полученные показания.

printf ("Контрастные диспозиции:% d / r / n / n", прямо противоположные); while (1) {датчик [0] -> convertTemperature (true, DS1820:: all_devices); // запросить температуру для заданных параметров для (int i = 0; item temperature ()); //… e восстановить температуру printf ("\ r / n"); ждать (1); }

Шаг 7: полученные данные

Данные получены
Данные получены

Используя один датчик, мы получаем следующий последовательный вывод.

Шаг 8: включение дополнительных датчиков

Включая больше датчиков
Включая больше датчиков
Включая больше датчиков
Включая больше датчиков

Чтобы проверить код, мы вводим еще один датчик в линию связи, просто подключив его параллельно первому датчику.

Не забудьте выключить узел перед подключением новых датчиков.

При перезапуске сборки мы получили следующий результат без каких-либо изменений в исходном коде.

Шаг 9: просмотр исходного кода

#include "mbed.h" // включение библиотеки в MBED # include "DS1820.h" // включение библиотеки в датчик DS1820 #define PINO_DE_DADOS A0 // определение pino для проверки данных #define MAX_SENSORES 16 // определение Максимальное количество датчиков датчика DS1820 * [MAX_SENSORES]; // cria um vetor com 16 позиций для сенсоров int main () {int encontrados = 0; while (DS1820:: unassignedProbe (PINO_DE_DADOS)) {// инициирование датчика procura por sensores [encontrados] = новый DS1820 (PINO_DE_DADOS); // cria uma instancia para o sensor encontrado encontrados ++; if (encontrados == MAX_SENSORES) // проверка максимума сенсоров break; } printf ("Контрастные диспозиции:% d / r / n / n", противоречащие друг другу); while (1) {датчик [0] -> convertTemperature (true, DS1820:: all_devices); // запросить температуру для заданных параметров для (int i = 0; item temperature ()); //… e восстановить температуру printf ("\ r / n"); ждать (1); }}

Шаг 10: файлы

PDF

Другие

Рекомендуемые: