Raspberry Pi Pico: чтение встроенного датчика температуры (Arduino IDE)

Raspberry Pi Pico поставляется со встроенным датчиком температуры, подключённым к ADC4. В этом кратком руководстве вы узнаете, как получить данные о температуре с этого датчика с помощью Arduino IDE.

Raspberry Pi Pico - чтение встроенного датчика температуры Arduino IDE

Впервые работаете с Raspberry Pi Pico? Прочитайте следующее руководство: Начало работы с Raspberry Pi Pico (и Pico W).

Необходимые условия

Вам нужно установить платы Raspberry Pi Pico в Arduino IDE и уметь загружать код на плату. Сначала ознакомьтесь со следующим руководством, если вы этого ещё не сделали:

Встроенный датчик температуры

Встроенный датчик температуры Raspberry Pi Pico работает, проверяя напряжение специального диода, подключённого к ADC4 на Raspberry Pi Pico.

Raspberry Pi Pico - распиновка GPIO

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

Чтение температуры с помощью АЦП

Для чтения встроенного датчика температуры Raspberry Pi Pico с помощью Arduino IDE вы можете использовать функцию analogReadTemp(), которая возвращает температуру в градусах Цельсия.

Вы можете использовать следующий код для проверки. Этот код выводит температуру в градусах Цельсия и Фаренгейта в монитор последовательного порта.

/*********
  Rui Santos & Sara Santos - Random Nerd Tutorials
  Complete project details at https://RandomNerdTutorials.com/raspberry-pi-pico-internal-temperature-arduino/
*********/

float tempC;
float tempF;

void setup() {
  Serial.begin(115200);
}

void loop() {
  tempC = analogReadTemp(); // Get internal temperature
  tempF = tempC * 9.0 / 5.0 + 32.0; // Fahrenheit conversion
  Serial.print("Temperature Celsius (ºC): ");
  Serial.println(tempC);
  Serial.print("Temperature Fahrenheit (ºF): ");
  Serial.println(tempF);
  delay(1000);
}

Как работает код

Давайте кратко рассмотрим, как работает код.

Инициализация переменных

Начнём с создания двух переменных tempC и tempF для хранения значений температуры в градусах Цельсия и Фаренгейта.

float tempC;
float tempF;

Инициализация монитора последовательного порта

В setup() инициализируем монитор последовательного порта на скорости 115200 бод.

void setup() {
  Serial.begin(115200);
}

Получение и вывод температуры

Мы получаем показания встроенного датчика температуры Raspberry Pi Pico в градусах Цельсия с помощью функции analogReadTemp().

tempC = analogReadTemp(); // Get internal temperature

Затем мы преобразуем температуру из градусов Цельсия в градусы Фаренгейта.

tempF = tempC * 9.0 / 5.0 + 32.0; // Fahrenheit conversion

Наконец, мы выводим показания в монитор последовательного порта.

Serial.print("Temperature Celsius (ºC): ");
Serial.println(tempC);
Serial.print("Temperature Fahrenheit (ºF): ");
Serial.println(tempF);

Показания выводятся каждую секунду (1000 миллисекунд).

delay(1000);

Тестирование кода

Загрузите код на Raspberry Pi Pico. Не знаете, как загрузить код? Ознакомьтесь с этим руководством: Программирование Raspberry Pi Pico с помощью Arduino IDE.

Откройте монитор последовательного порта на скорости 115200 бод.

Новые показания температуры в градусах Цельсия и Фаренгейта будут выводиться в мониторе последовательного порта каждую секунду.

Чтение встроенного датчика температуры Raspberry Pi Pico

Заключение

Raspberry Pi Pico поставляется со встроенным датчиком температуры, который даёт общее представление о внутренней температуре Pico.

Чтение температуры Pico с помощью Arduino IDE сводится к простому использованию функции analogReadTemp(). Вы можете развить этот проект дальше и отобразить температуру на OLED-дисплее: Raspberry Pi Pico: OLED-дисплей SSD1306 (Arduino IDE).

Надеемся, это руководство было для вас полезным. Если вы только начинаете работу с Raspberry Pi Pico, вам также могут пригодиться следующие руководства: