Contrôler plusieurs 74HC595 avec le PI

Vous avez réalisé ou vous voulez réaliser un truc impensable avec votre Raspberry Pi ? Cet endroit est pour vous...

Modérateur : Francois

Répondre
wyllys
Messages : 4
Enregistré le : mer. 29 juil. 2015 09:26

Contrôler plusieurs 74HC595 avec le PI

Message par wyllys » mer. 29 juil. 2015 09:36

Bonjour,

Comme dit dans le sujet, j'essaye de contrôler plusieurs 74HC595 avec mon Raspberry.
Pour cela j'ai acheté des cartes d'extension en cascade: http://www.banggood.com/Unlimited-Casca ... 3018.html..
Cela fonctionne très bien avec la première carte, mais impossible de modifier les pins de la deuxième carte. Pourtant elles semblent bien branché par je peux alimenter le Raspberry via la pin 5V de la deuxième carte.
J'utilise la librairie Wiring Pi avec Python:

Code : Tout sélectionner

    import wiringpi2 as wiringpi

    pin_base = 100   
    wiringpi.wiringPiSetup() 
    wiringpi.sr595Setup(pin_base, 64, 12, 14, 10)

    pin1 = 131
    pin2 = 133

    wiringpi.pinMode(pin1, 1)
    wiringpi.digitalWrite(pin1, 1)

    wiringpi.pinMode(pin2, 1)
    wiringpi.digitalWrite(pin2, 1)
La pin "Pin1" passe "HIGH" sans problème mais pas la deuxième.
Est ce que quelqu'un a déjà essayé de faire ça ?
En tout cas merci pour votre aide !

Avatar du membre
Manfraid
Modérateur
Messages : 1402
Enregistré le : ven. 3 oct. 2014 14:50
Contact :

Re: Contrôler plusieurs 74HC595 avec le PI

Message par Manfraid » mer. 29 juil. 2015 12:16

Salut, d'après ce que je viens de lire sur la librairie wiringpi2, celle-ci est limité a 4 module de suite soit 32 sorties et toi tu essaye plus loin voila pourquoi elle n'est pas modifier

l'idéal et je pense de te faire toi même ta librairie en python (ou bien d'en trouver une toute faite) pour ne plus avoir cette limitation
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.

wyllys
Messages : 4
Enregistré le : mer. 29 juil. 2015 09:26

Re: Contrôler plusieurs 74HC595 avec le PI

Message par wyllys » mer. 29 juil. 2015 22:28

Salut Manfraid, merci de t’intéresser à mon problème.
Effectivement, quand je regarde la doc de la librairie c'est bien limité à 32...
Je vais essayer avec la librairie shiftpi, à première vue il n'y a pas de limite, de quoi faire un beau sapin de Noël !

wyllys
Messages : 4
Enregistré le : mer. 29 juil. 2015 09:26

Re: Contrôler plusieurs 74HC595 avec le PI

Message par wyllys » jeu. 30 juil. 2015 17:18

J'ai trouvé une autre librairie "Shiftpi" apparemment il n'y a pas de limitation mais je n'arrive pas à l'utiliser, je suis incapable de changer les pins SER, RCLK et SRCLK.
J'ai beau chercher je ne vois comment on passe des paramètres avec le mot clé "kwargs" quand on importe une librairie.
Si quelqu'un sait, je veux bien un coup de main.

Sinon j'ai quand même essayé de me passer de librairie avec le code ci-dessous:

Code : Tout sélectionner

import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(True)

_SER_pin = 10
_RCLK_pin = 8
_SRCLK_pin = 11

GPIO.setup(_SER_pin, GPIO.OUT)
GPIO.setup(_RCLK_pin, GPIO.OUT)
GPIO.setup(_SRCLK_pin, GPIO.OUT)

GPIO.output(_RCLK_pin, GPIO.LOW) 

all_pins = 64

for pin in range(0,all_pins):
	
	GPIO.output(_SRCLK_pin, GPIO.LOW)
	GPIO.output(_SER_pin, 0)
	GPIO.output(_SRCLK_pin, GPIO.HIGH)

for pin in range(0,all_pins):
	
	GPIO.output(_SRCLK_pin, GPIO.LOW)
	GPIO.output(_SER_pin, 1)
	GPIO.output(_SRCLK_pin, GPIO.HIGH)
	
GPIO.output(_RCLK_pin, GPIO.HIGH)
Et là comme avec WiringPi, ça fonctionne pour la première carte, mais pas la deuxième.
J'ai oublié un truc ?

Avatar du membre
Manfraid
Modérateur
Messages : 1402
Enregistré le : ven. 3 oct. 2014 14:50
Contact :

Re: Contrôler plusieurs 74HC595 avec le PI

Message par Manfraid » jeu. 30 juil. 2015 18:40

alors en python c'est très simple
en ayant le fichier de la librairie dans le même répertoire

Code : Tout sélectionner

from shiftpi import HIGH, LOW, digitalWrite, delay

pinsetup(ser=21,rclk=22,srclk=22) # a modifier pour ton utilisation
shiftRegisters(8) # nombre de shift register
digitalWrite(1, HIGH)
delay(1000)
digitalWrite(1, LOW)
delay(1000)
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.

Répondre

Retourner vers « Utilisateurs avancés »