I'm working on a weather station (raspberry pi) and I'm using python. I developed a program that is working, but now I decided to update my code and to structure everything (making classes etc.).
But now I have encountered two problems concerning Button from gpiozero.
Firstly, when I try to assign a function to Button.when_pressed
within a function or class, the function won't get called when the Button gets pressed.
Following code is just an example to keep the code as little as possible:
from gpiozero import Button
import time
number = 0
def function_that_gets_called():
global number
number += 1
def main():
wind_sensor = Button(6)
wind_sensor.when_pressed = function_that_gets_called
main()
while True:
# Sleep, so the program doesn't exit immediately
time.sleep(60)
# Do some other stuff with number
Why doesn't function_that_gets_called
get called when the Button is pressed. Similarly, when I try to assign when_pressed
in a class, it won't work neither.
Secondly, why do I have to use global number
? Otherwise the number variable won't get changed, but is there another solution to do it in a better way?
Thank you a lot!
EDIT: Edited time.sleep(60). And I specified, what I mean by doesn't work. This is my first question here on stackoverflow, so please excuse if haven't been precise and it would be great to tell me how to improve my question.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…