Problème relais grovePI électrovanne

Bonjour,
je travaille actuellement sur un projet de drone sous-marin pour mon lycée. Nous avons à programmer des électrovannes et avons utilisé le script et le montage ci-dessous(switch + relay) pour tester que tout fonctionnait bien.

Après un résultat concluant, nous avons réaliser le montage complet avec une alimentation, une électrovanne et le relais. J’ai modifié le programme pour que le relais reste allumé jusqu’à une interruption. Je refais un test, tout se passe bien, le relais s’allume et l’électrovanne s’ouvre.

Le problème est que, 3 minutes plus tard, je relance le programme puis me rend compte que le relais ne s’allume plus… je débranche l’électrovanne et rien ne change, ce n’est pas elle le problème. J’ai changé de carte GrovePi et surprenamment cela a marché. Cependant, 3 minutes plus tard rien ne marche plus… je n’y comprends absolument rien.

Auriez-vous des pistes pour m’aider s’il vous plaît ?

Merci !

Si tu refais un essai avec la carte initiale, autrement dit après débranchement complet, que se passe-t-il ?
As-tu testé avec une led à la place du relais ?
Le time.sleep(.05) semble un peu court, et par ailleurs, il n’y a pas de temporisation après la ligne18, dans le cas où le relais est à 1 (fermé je suppose). Ce qui veut dire qu’on boucle sur une fermeture de relais avec toute la rapidité du composant ; est-ce bien souhaitable ? J’aurais décalé la temporisation d’un cran à gauche pour qu’elle agisse dans tous les cas. Plus généralement, j’essaierais en changeant l’état du relais uniquement si le switch change, tu me suis ?

Bonjour, merci pour votre réponse. Je testerais avec une LED tout à l’heure quand j’aurais mes heures de projet. Quand je débranche la carte grovePi, cela remarche normalement puis se re-bloque. J’ai l’impression que quelque chose ne vas pas dans le relais et qu’il se bloque jusqu’à réinitialisation (reboot ne marche pas). Il n’y aura pas de switch dans le sous-marin, tout sera commandé via l’interface putty, donc je préfère ne pas créer un programme comprenant un switch puisque cela ne servira à rien pour la suite. Je vous montre le programme que j’ai réalisé pour permettre d’ouvrir les électrovannes en continu jusqu’à une interruption clavier (ce qui est l’intérêt voulu en situation réelle, en plongée) :

import time
import grovepi

relay = 4
grovepi.pinMode(relay,« OUTPUT »)

while True:
try:
grovepi.digitalWrite(relay,1)

  except KeyboardInterrupt:
          grovepi.digitalWrite(relay,0)
          break
 except IOError:
         print "Error"

Mon programme comporte-t-il une erreur mettant en situation de blocage le relais après plusieurs exécutions ?

Merci !

EN effet, cela marche très bien avec une led…

J’ai regardé les caractéristiques du relais et il y a écrit « 3V DC » et 230 AC. Le fait est que la raspberry envoie du 3.3 ou du 5V, ce qui pose peut-être un problème ?

Voilà notre montage… les 5/6 premiers essais tout fonctionne bien, et après, la diode du relais s’allume pendant moins d’une seconde puis saute …

Mais tu es obligé de boucler (while True) sur digitalWrite ? Il ne suffit pas de le faire une fois ?

Autrement dit, je testerais en ne faisant qu’une fois le digitalWrite(relay,1) (avant le while True dans ton dernier exemple), puis en indiquant le paramètre 0 ou 1 uniquement quand les conditions changent (switch, ou exception) et pas systématiquement à chaque passage de boucle.
Ce serait mieux si tu postais ton source, on y verrait mieux que sur une copie d’écran et on pourrait le modifier.

Quant à la tension, il faudrait consulter le datasheet du relais pour voir s’il supporte 5V. Mais si tu donnes du 3.3V, on est quand même très proche du 3V, ce serait étonnant qu"il ne tolère pas. D’ailleurs, pourquoi connecter sur une broche 5V si une 3V3 est disponible ?
S’il faut absolument du 3V pile poil, une petite résistance fera le job (voir ici :http://www.zpag.net/Electroniques/Diode/AlimDEL.htm ou ailleurs)
Les vraies questions sont : quel est la tension de seuil de fermeture du relais, autrement dit, quelle tension suffit à coup sûr à le faire changer d’état, et quelle est la tension maximale supportée, autrement dit celle au-delà de laquelle le composant risque de griller.
Il faudrait un électronicien pour valider tout ça…