Raspberry Pi Pico: чтение встроенного датчика температуры (Arduino IDE)
Raspberry Pi Pico поставляется со встроенным датчиком температуры, подключённым к ADC4. В этом кратком руководстве вы узнаете, как получить данные о температуре с этого датчика с помощью 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 с помощью 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 поставляется со встроенным датчиком температуры, который даёт общее представление о внутренней температуре Pico.
Чтение температуры Pico с помощью Arduino IDE сводится к простому использованию функции analogReadTemp(). Вы можете развить этот проект дальше и отобразить температуру на OLED-дисплее: Raspberry Pi Pico: OLED-дисплей SSD1306 (Arduino IDE).
Надеемся, это руководство было для вас полезным. Если вы только начинаете работу с Raspberry Pi Pico, вам также могут пригодиться следующие руководства: