Soit, j'ai un problème de cablage, soit mon code est trop rapide, en effet de temps en temps, de manière aléatoire, je perd un cycle. Le moteur fait mine de se lancer, la led clignote trés rapidement et rien.
J'ai ensuite mis un second moteur sur Q2, plus gourmand, je me suis dit que j'allais nourrir la bête, même si au demeurant, le fonctionnement est bien plus stable avec 2 moteurs, j'ai toujours, plus rarement, un cycle perdu.
On dirait que la porte s'ouvre et se referme aussitôt :~
J'ai essayé avec un condo sur la ligne CLOCK, idem.
Ton registre à décalage semble moins rapide que le 595.
TPIC6B596N-->Fhorloge max = 10MHz à Ic =100mA
595 ---> durée minimale de l'impulsion de commande = 20ns ce qui équivaut à 50MHz.
Tu programmes directement dans les registres donc tu va plus vite.
Dans ta fonction shiftout tu ne créé pas de "plat" pour l'horloge (1)--> je pense avoir compris que tu met l'horloge à 1 et que la ligne suivante tu l'a met à 0.
Ce n'est peut être pas étonnant que tu loupe des impulsions.
Essayes de mettre un délais après la mise à 1 pour créer un vrai créneau.
J'ai déjà vu des utilisateurs avoir ce genre de problème sur le forum anglais.
(1) C'est pareil dans la fonction de la lib arduino, par contre chez Wiring ils ont rectifié en ajoutant un paramètre "délais" .
Cette deuxième ligne d'ailleurs me pose problème dans le sens où je ne peux apposer qu'un seul delai dans ma boucle.
J'avais à l'époque interprété le chronogramme du 74hc et j'aurais pû penser reprendre mon code pour mes tpic, crotte
68tjs:
Essayes de mettre un délais après la mise à 1 pour créer un vrai créneau.
Je teste immédiatement...
EDIT 1 : J'ai mis des delais dans tous les sens, même résultat.
Le datasheet spécifie en petit caractère que la durée de la pulsation doit être <= 100 uS et avoir un cycle <= 2% (ce dernier chiffre est un mystère).
Je décide donc de reprendre l'experience précedente, même code, je mets un second moteur carrément en parallèle du premier. Je sais......je suis un dingue ]
Cà marche beaucoup mieux et sur 5 mn, je dois loupé un cycle ou deux peut être...Le moteur qui me sert de test est un tout tout petit moteur qui tire en fonctionnement nominal 15 mA. Celui que j'ai mis en parallèle est plus imposant et arrache 55 mA facile (5 volts partout)
.
Alors il y a un rapport amperage/temps/mos ??? Je colle pas assez la grille ???
http://www.sonelec-musique.com/electronique_theorie_circuit_integre.html:
Découplage d'alimentation de circuits intégrés logiques
Il est de rigueur de placer un condensateur de découplage d'alimentation (en parallèle sur l'alimentation, entre la borne + et la borne - du circuit intégré) de l'ordre de 10 nF pour un boîtier comportant quelques portes logiques basiques (pour un SN7400 par exemple), valeur devant passer à quelque 100 nF pour une vingtaine de portes. Pour des circuits complexes tels que compteurs ou registres à décalage, un condensateur de 100 nF est également requis. Dans tous les cas, le ou les condensateurs de découplage d'alimentation doivent être placés au plus près du circuit logique concerné. Les buffers et les drivers de ligne sont particulièrement exposés aux "grosses" consommations, il convient d'apporter un soin particulier au découplage de leur alimentation. Les réalisations complexes faisant appel à de nombreux circuits numériques, ont tout intérêt à disposer d'une régulation d'alimentation locale, car les circuits numériques produisent des pointes de courant qui se traduisent par l'ajout de bruit sur les lignes d'alimentation, qui peuvent se répercuter sur des sections sensibles et les perturber. Une régulation locale présente l'avantage d'isoler le bruit généré par les circuits logiques, l'empêchant de remonter vers l'alimentation principale.