-
-
Save isagalaev/5da186caaa83db59b1e34a6e7937874b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
if (tempCPU > tempMAX) or (tempGPU > tempMAX): | |
GPIO.output (pioFANc, GPIO.HIGH) # если выше максимальной, то включить светодиод "мне жарко" | |
GPIO.output (pioFANl, GPIO.HIGH) # и вентилятор включить тоже | |
if (tempCPU < tempMIN) or (tempGPU < tempMIN): | |
GPIO.output (pioFANc, GPIO.LOW) # если ниже минимальной, то выключить светодиод "мне жарко" | |
GPIO.output (pioFANl, GPIO.LOW) # и вентилятор выключить тоже | |
# Вот это не выглядит правильно. Сразу по нескольким причинам: | |
# | |
# - Если одна из температур сначала превысила максимум, а потом опустилась ниже максимума, то | |
# лампочка не погаснет. И, возможно, не покаснет никогда, потому что температуре не с чего | |
# опускаться ниже минимума. | |
# | |
# - Если одна из температур больше максимума, а *другая* ниже минимума, то лампочка не загорится, | |
# потому что второе условие её тут же погасит. | |
# | |
# - Случай с == максимуму тоже никак не рассмотрен. | |
# По логике это должно выглядеть как-то так: | |
overheat = tempCPU > tempMAX or tempGPU > tempMAX | |
signal = GPIO.HIGH if overheat else GPIO.LOW | |
GPIO.output(pioFANc, signal) | |
GPIO.output(pioFANl, signal) | |
# или даже так: | |
overheat = any(t > tempMAX for t in [tempGPU, tempCPU]) | |
for pin in [pioFANc, pioFANl]: | |
GPIO.output(pin, GPIO.HIGH if overheat else GPIO.LOW) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment