Les programmeurs de compagnons de vente de salutations Python. Je construis un projet Raspberry Pi conçu pour utiliser des capteurs d'humidité dans mon jardin. J'ai le programme conçu pour prendre des lectures pendant trente secondes, puis les moyennes dans un numéro. Il utilise quatre capteurs et s'écoule de Python3.5 Les capteurs tout fonctionnent tout à fait bien, mais je passe un problème à faire du python pour faire les calculs en moyenne pour la moyenne des intrants. Je pense que cela ajoute les variables, mais cela ne semble pas les diviser. Voici le code:
def TEST_SOIL(): output = analogInput(0) # Reading from CH0 output = interp(output, [0, 1023], [100, 0]) output = int(output) output = (output - 12.5) output2 = analogInput(1) # Reading from CH0 output2 = interp(output2, [1, 1023], [100, 1]) output2 = int(output2) output2 = (output2 - 12.5) output3 = analogInput(2) # Reading from CH0 output3 = interp(output3, [2, 1023], [100, 2]) output3 = int(output3) output3 = (output3 - 12.5) output4 = analogInput(3) # Reading from CH0 output4 = interp(output4, [3, 1023], [100, 3]) output4 = int(output4) output4 = (output4 - 12.5)
3 Réponses :
Changement Votre code est d'abord divisé par quatre la dernière variable (Ouotput4), puis les ajoutant ensemble. P>
(EDIT: oublié Il n'y a pas de fonction moyenne pour la liste. Désolé. Vous pouvez utiliser (sortie + sortie2 + sortie3 + sortie4 / 4) code> à
(sortie + sortie2 + sortie3 + sortie4) / 4 code> p> P>
somme () code> pour une liste, puis diviser par
len () code> de cette Liste) p>
Je vais lui donner un coup de feu
Il dit qu'il y a quelque chose qui ne va pas avec la fonction "Test_Soil ()", donc je n'ai pas pu tester votre solution. Pouvez-vous m'aider à résoudre la fonction?
J'ai pris la liberté de refactory de votre code un peu.
Je suppose que les 4 lectures analogiques différentes doivent être aussi telles que telles et ne les touchent pas, mais sinon ... p>
test_siloil code> renvoie désormais un 4 tuple des lectures. LI>
-
moyenne_output () code> prend tout iTable de chiffres à la moyenne. LI>
-
bip () code> bips le buzzer. li>
-
principale code> appelle les bits ci-dessus dans une boucle, collecte des valeurs dans un tableau, ce qui en moyenne est enfin. Li>
ul> xxx pré> p>
Cela semble fonctionner. Une dernière chose, dirigera la principale à "retourner final_averover" publier une variable que je peux travailler pour enregistrer les données?
Je l'ai essayé, mais quand j'ai dit "Main () O = final_oOvert", Python a déclaré que final_avery n'était pas défini.
J'ai également remarqué quelque chose d'étrange: le code énonce toujours le numéro "20.5" même si je ajuste les capteurs. Pouvez-vous me dire si le code le fait ou les capteurs?
Cela pourrait être capable de réparer votre code et de le ranger un peu
Au lieu d'écrire la même chose à nouveau, vous pouvez utiliser une boucle pour rendre le travail plus facile espère qu'il aide p> p>
Eh bien c'est corrigé maintenant.