如何将多个变量写入单个 LCD 显示行?
how to write multiple variables to a single LCD display line?
我是 Python 的菜鸟,所以请多多包涵。
以下代码用于读取通过 I2C 接口连接的 20x4 LCD 屏幕的湿度和温度传感器。
该程序运行良好!但我想在同一行中包括摄氏度和华氏度的读数,我怎样才能在摄氏度测量后立即显示值 'f' 或 'f1'(代表华氏度转换)所以它看起来喜欢:
Temp_Entry:20.4C/68F
.........
谢谢!!
#!/usr/bin/env python3
import lcddriver
import time
import Adafruit_DHT as dht
lcd = lcddriver.lcd()
while (True):
#Read values from AM2302 Sensors in Pin 4 & 24
h,t = dht.read_retry(dht.AM2302, 4)
h1,t1 = dht.read_retry(dht.AM2302, 24)
#Humidity calibration compensation
h1 += 5
h -= 9
#Celcius to Fahrenheit conversion
f = t * 9 / 5 + 32
f1 = t1 * 9 / 5 + 32
# Print temp and humidity values
lcd.cursor_pos = (0,0)
lcd.lcd_display_string ('Temp_Entry:{0:0.1f}C'.format(t1), 1)
lcd.lcd_display_string ('Hum_Entry :{1:0.1f}%'.format(t1, h1), 2)
lcd.lcd_display_string ('Temp_Back :{0:0.1f}C'.format(t), 3)
lcd.lcd_display_string ('Hum_Back :{1:0.1f}%'.format(t, h), 4)
time.sleep(10)
最终代码(在 correction/cleanup 之后):
#!/usr/bin/env python3
import lcddriver
import time
import Adafruit_DHT as dht
lcd = lcddriver.lcd()
while (True):
#Read values from AM2302 Sensors in Pin 4 & 24
h,t = dht.read_retry(dht.AM2302, 4)
h1,t1 = dht.read_retry(dht.AM2302, 24)
#Humidity calibration compensation
h1 += 5
h -= 9
#Celcius to Fahrenheit conversion
f = t * 9 / 5 + 32
f1 = t1 * 9 / 5 + 32
# Print temp and humidity values
lcd.cursor_pos = (0,0)
lcd.lcd_display_string ('Temp_Ent:{0:0.1f}C/{1:0.1f}F'.format(t1, f1), 1)
lcd.lcd_display_string ('Hum_Ent :{0:0.1f}%'.format(h1), 2)
lcd.lcd_display_string ('Temp_Bak:{0:0.1f}C/{1:0.1f}F'.format(t, f), 3)
lcd.lcd_display_string ('Hum_Bak :{0:0.1f}%'.format(h), 4)
time.sleep(10)
你可以这样继续字符串:
'Temp_Back :{0:0.1f}C/{1:0.1f}F'.format(t, f)
事实上,我不明白为什么每次只调用一个参数时,你给 .format 中的每一行都提供了两个参数。
它是这样工作的:
"{0} {1}".format("Hello", "World")
结果:
Hello World
bracers中的参数只会调用__th处的参数,这就是为什么(t,f)会让你在同一行中同时调用摄氏度和华氏度的温度。
我是 Python 的菜鸟,所以请多多包涵。 以下代码用于读取通过 I2C 接口连接的 20x4 LCD 屏幕的湿度和温度传感器。 该程序运行良好!但我想在同一行中包括摄氏度和华氏度的读数,我怎样才能在摄氏度测量后立即显示值 'f' 或 'f1'(代表华氏度转换)所以它看起来喜欢:
Temp_Entry:20.4C/68F .........
谢谢!!
#!/usr/bin/env python3
import lcddriver
import time
import Adafruit_DHT as dht
lcd = lcddriver.lcd()
while (True):
#Read values from AM2302 Sensors in Pin 4 & 24
h,t = dht.read_retry(dht.AM2302, 4)
h1,t1 = dht.read_retry(dht.AM2302, 24)
#Humidity calibration compensation
h1 += 5
h -= 9
#Celcius to Fahrenheit conversion
f = t * 9 / 5 + 32
f1 = t1 * 9 / 5 + 32
# Print temp and humidity values
lcd.cursor_pos = (0,0)
lcd.lcd_display_string ('Temp_Entry:{0:0.1f}C'.format(t1), 1)
lcd.lcd_display_string ('Hum_Entry :{1:0.1f}%'.format(t1, h1), 2)
lcd.lcd_display_string ('Temp_Back :{0:0.1f}C'.format(t), 3)
lcd.lcd_display_string ('Hum_Back :{1:0.1f}%'.format(t, h), 4)
time.sleep(10)
最终代码(在 correction/cleanup 之后):
#!/usr/bin/env python3
import lcddriver
import time
import Adafruit_DHT as dht
lcd = lcddriver.lcd()
while (True):
#Read values from AM2302 Sensors in Pin 4 & 24
h,t = dht.read_retry(dht.AM2302, 4)
h1,t1 = dht.read_retry(dht.AM2302, 24)
#Humidity calibration compensation
h1 += 5
h -= 9
#Celcius to Fahrenheit conversion
f = t * 9 / 5 + 32
f1 = t1 * 9 / 5 + 32
# Print temp and humidity values
lcd.cursor_pos = (0,0)
lcd.lcd_display_string ('Temp_Ent:{0:0.1f}C/{1:0.1f}F'.format(t1, f1), 1)
lcd.lcd_display_string ('Hum_Ent :{0:0.1f}%'.format(h1), 2)
lcd.lcd_display_string ('Temp_Bak:{0:0.1f}C/{1:0.1f}F'.format(t, f), 3)
lcd.lcd_display_string ('Hum_Bak :{0:0.1f}%'.format(h), 4)
time.sleep(10)
你可以这样继续字符串:
'Temp_Back :{0:0.1f}C/{1:0.1f}F'.format(t, f)
事实上,我不明白为什么每次只调用一个参数时,你给 .format 中的每一行都提供了两个参数。 它是这样工作的:
"{0} {1}".format("Hello", "World")
结果:
Hello World
bracers中的参数只会调用__th处的参数,这就是为什么(t,f)会让你在同一行中同时调用摄氏度和华氏度的温度。