2015-10-14 1 views
0

J'écris le code suivant pour vérifier la valeur de la broche d'entrée mais elle ne montre jamais la valeur numérique en entrée. Je ne sais pas ce qui ne va pas. Quelqu'un peut-il l'expliquer?Le code Python pyfirmata indique la valeur incorrecte

from pyfirmata import ArduinoMega, util 
board = ArduinoMega('COM3') 

digital_0 = board.get_pin('d:30:i') 
board.digital[9].write(1) 
value= digital_0.read() 
print value 

Le résultat est toujours:

>>> 
None 
>>> 
+0

pouvez-vous expliquer ce que fait cette ligne? - 'digital_0 = board.get_pin ('d: 30: i')', je n'ai jamais utilisé ni arduino ni python, mais j'ai l'air cool (c'est de la robotique oui?) – Coffee

+1

oui c'est de la robotique et cette ligne définit pin comme digitale entrée @Coffee –

Répondre

1

board.digital[9].write(1) doit être changé pour board.digital[30].write(1)

Parce que vous souhaitez obtenir des informations sur la broche 30, et non 9.

Ensuite, vous obtiendrez cette erreur:

Digital pin 30 is set up as an INPUT and can therefore not be written to

Solution:

digital_0 = board.get_pin('d:30:o') 
1

En fait, je wàn ne pas utiliser la résistance pull-down qui est la raison pour laquelle il donnait une valeur erronée. Ce problème est résolu depuis longtemps :)