Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| products:laboratory_iot:exp33 [2020/05/21 13:45] – создано labuser29 | products:laboratory_iot:exp33 [2024/12/04 12:15] (текущий) – [Программный код эксперимента] labuser30 | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| + | ===== Эксперимент 33. Термометр ===== | ||
| + | |||
| + | Теперь, | ||
| + | |||
| ==== Схема эксперимента ==== | ==== Схема эксперимента ==== | ||
| - | Оставляем схему собранную на прошлом эксперименте. | ||
| {{ : | {{ : | ||
| // | // | ||
| + | |||
| + | Добавляем подключения дисплея | ||
| {{ : | {{ : | ||
| // | // | ||
| + | |||
| + | ==== Программный код эксперимента ==== | ||
| + | <file python Exp33.py[enable_line_numbers=" | ||
| + | from machine import Pin, I2C | ||
| + | from esp8266_i2c_lcd import I2cLcd | ||
| + | import time | ||
| + | import math | ||
| + | |||
| + | _init() | ||
| + | |||
| + | Bcoef = 3950 | ||
| + | R1 = 10000 | ||
| + | Rtnom = 10000 | ||
| + | T0 = 273.15 | ||
| + | |||
| + | adc = machine.ADC(0) | ||
| + | |||
| + | |||
| + | DEFAULT_I2C_ADDR = 0x3F # Или 0x27 в зависимости от модели микросхемы на плате | ||
| + | |||
| + | |||
| + | i2c = I2C(scl=Pin(5), | ||
| + | lcd = I2cLcd(i2c, DEFAULT_I2C_ADDR, | ||
| + | lcd.backlight_on() | ||
| + | |||
| + | |||
| + | while True: | ||
| + | value = adc.read() | ||
| + | |||
| + | R = (-R1 * value)/ | ||
| + | |||
| + | temp = 1 / (math.log(R / Rtnom) / Bcoef + 1/(25+T0)) -T0 | ||
| + | |||
| + | round_temp = round(temp, 1) | ||
| + | |||
| + | print(round_temp) | ||
| + | | ||
| + | lcd.clear() | ||
| + | lcd.putstr(" | ||
| + | time.sleep(3) | ||
| + | </ | ||
| + | |||
| + | К предыдущей программе добавили то, что требуется для работы с дисплеем. Подключение библиотеки дисплея, | ||
| + | |||
| + | Температуру перед выводом на экран округляем до десятых (один знак после точки): | ||
| + | <code python[enable_line_numbers=" | ||
| + | round_temp = round(temp, 1) | ||
| + | </ | ||
| + | |||
| + | Перед выводом информации очищаем дисплей от старых данных. При этом курсор дисплея устанавливается в левый верхний угол. | ||
| + | |||
| + | <code python[enable_line_numbers=" | ||
| + | lcd.clear() | ||
| + | </ | ||
| + | |||
| + | Формируем строку для вывода на дисплей. Она состоит из подстроки ''" | ||
| + | |||
| + | <code python[enable_line_numbers=" | ||
| + | lcd.putstr(" | ||
| + | </ | ||
| + | |||
| + | ==== Дополнительное задание ==== | ||
| + | <WRAP center round tip 60%> | ||
| + | 1. Измени программу, | ||
| + | |||
| + | 2. Добавь символ градуса после показаний температуры. Символ градуса [[products: | ||
| + | </ | ||