Si vous avez suivi cet article et obtenu votre circuit vous êtes prêt à contrôler la puce en utilisant un script Python simple.
Dans cet article, nous allons nous concentrer sur le contrôle des sorties. Nous utilisons les trois premiers axes de l'ensemble "AMP". Il y a une autre série de huit broches (GPB0 - GPB7) qui peuvent être contrôlés de la même manière avec quelques modifications de code.
Pour ce type de projet une calculatrice qui peut convertir entre binaire, décimal et hexadécimal est extrêmement utile. Il y a beaucoup de calculatrices qui peuvent le faire et sont disponible pour votre système d'exploitation, si vous utilisez un ordinateur de bureau ou portable.
Un convertisseur binaire, facile à utiliser, peut être trouvé ici.
Script Python pour les Sorties
Voici un exemple de script qui comptera 1-8 définir les trois premières broches AMP que ça se passe:1: import smbus
2: import time
3: bus = smbus.SMBus(0) # Rev 1 Pi uses 0
4: #bus = smbus.SMBus(1) # Rev 2 Pi uses 1
5: DEVICE = 0x20 # Device address (A0-A2)
6: IODIRA = 0x00 # Pin direction register
7: OLATA = 0x14 # Register for outputs
8: GPIOA = 0x12 # Register for inputs
9: # Set all GPA pins as outputs by setting
10: # all bits of IODIRA register to 0
11: bus.write_byte_data(DEVICE,IODIRA,0x00)
12: # Set output all 7 output bits to 0
13: bus.write_byte_data(DEVICE,OLATA,0)
14: for MyData in range(1,8):
15: # Count from 1 to 8 which in binary will count
16: # from 001 to 111
17: bus.write_byte_data(DEVICE,OLATA,MyData)
18: print MyData
19: time.sleep(1)
20: # Set all bits to zero
21: bus.write_byte_data(DEVICE,OLATA,0)
Vous pouvez le télécharger directement sur votre Pi en utilisant:
wget http://www.raspberrypi-spy.co.uk/archive/python/i2c_outputs.py
Vous pouvez exécuter le script avec la commande suivante:
sudo python i2c_outputs.py
Le script ci-dessus effectue les actions suivantes:
Importe les bibliothèques smbus et le time.
Crée un objet smbus appelé "bus" Configure certaines constantes
Définit toutes les broches AMP comme sorties
Définit toutes les broches AMP à zéro
Compte Des valeurs de 1 à 8 et définit les broches AMP à l'équivalent binaire d'attente 1 seconde entre chaque étape.
Rend finalement AMP à zéro
Ce que vous devez voir est les témoins s'allument dans une séquence binaire:
000.001.010.011.100.101.110.111
La chose la plus importante à noter est que lors de l'envoi des données à un registre que vous avez à régler tous les 8 bits en une seule fois.
Donc, pour configurer toutes les broches AMP comme sorties que vous envoyez 0000000 au registre IODIRA.
Pour régler tous comme entrées que vous devez envoyer 1111111 binaire, hexadécimal ou 255 décimal ou 0xFF. Pour définir GPA0-3 comme sorties et GPA4-8 comme intrants nécessaires pour configurer 1111000 binaire, décimal ou hexadécimal 240 0xF0.
C'est la même histoire pour le réglage des broches de sorties.
Si vous avez configuré les broches AMP comme des sorties et vous souhaitez définir GPA1 élevé et tous les autres broches faible, vous devez envoyer 00000010 au registre Olata.
Si vous souhaitez définir GPA2 et GPA7 haut vous enverriez 10000100.
Traduction CBO, de la source :
Aucun commentaire:
Enregistrer un commentaire