User manual
64
GPIO.setmode(GPIO.BCM)
LED = [4,18,23]
for i in range(3):
GPIO.setup(LED[i], GPIO.OUT, initial=False)
Une liste définit le numéro de port GPIO des trois LED. Après cela, une boucle initialise les trois ports GPIO
comme des sorties et toutes les LEDS sont éteintes.
Également dans cette expérience, nous utilisons une construction
try...except et une boucle infinie pour
que le programme s'exécute et se répète toujours automatiquement, jusqu'à ce que l'utilisateur l'arrête en
appuyant sur
[Ctrl]+[C]. Les fonctions vraiment intéressantes suivent ensuite. Elles accèdent au système
d'exploitation et vérifient l'espace mémoire libre disponible.
s = os.statvfs('/') Le module statistique os.statvfs() à partir de la bibliothèque os fournit différentes
informations statistiques sur le système de fichiers qui sont écrites ici dans la boucle infinie à chaque cycle
de boucle à nouveau comme un objet dans la variable
s.
f = s.f_bsize * s.f_bavail / 1048576 La méthode s.f_bsizefournit ici la taille d'un bloc mémoire en
octet.
s.f_bavail donne le nombre de blocs libres. Le produit à partir des deux valeurs donne donc le
nombre d'octets libres, qui est divisé ici par 1 048 576, pour obtenir le nombre de mégaoctets libres. Le
résultat est enregistré dans la variable
f.
if f < g1:
x = "100"
Si l'espace mémoire libre est inférieur à la première valeur limite (1 Mo), la chaîne de caractères x, qui
indique le motif des LED allumées, est spécifiée égale à
"100". La première LED rouge doit s'allumer. Le
motif est une chaîne de caractères simple composée des chiffres 0 et 1.
elif f < g2:
x = "110"
elif f < g3:
x = "010"
elif f < g4:
x = "011"
À l'aide de la requête elif, les autres limites sont vérifiées et le motif des LED est fixé en conséquence.
Lorsque la première question n'a pas de réponse/objet, il y a également plus de 1 Mo d'espace libre
disponible.
else:
x = "001"
Si aucune requête n'est satisfaite, alors il y a encore plus d'espace libre que la limite supérieure spécifiée et
le motif des LED est fixé à
"001". La dernière LED verte doit s'allumer.
for i in range(3):
GPIO.output(LED[i], int(x[i]))