Dans mon vidéo, pour ne pas ennuyer personne, j’ai volontairement omis de parler du circuit électronique qui contrôle le moteur, qui contrôle la position du potentiomètre, qui lui contrôle la vitesse de défilement du tapis. Donc ici je vais essayer de donner une explication sur le circuit. Premièrement le schéma du circuit lui-même.

À le regarder comme ça, c’est évident qu’il n’y a pas beaucoup d’éléments; quelques pièces pour l’alimentation du microcontrôleur, 3 résistances (R1, R2 ,R3) et un condensateur (C5) pour la lecture du courant AC, plusieurs connecteurs pour l’afficheur (P2, P11, P3, P10), la bobine de lecture de courant (P5), l’alimentation 12 volts (P1), un connecteur pour contrôler le moteur pas à pas(P4, P6) qui est en soit un module externe, un connecteur pour un module Bluetooth (P7) que je n’utilise pas vraiment et finalement un connecteur pour la programmation du microcontrôleur (P8).

 

Voici aussi la programmation que j’ai écrite pour faire fonctionner le contrôleur.

 

Premièrement le cœur du circuit est la bobine qui mesure le courant du moteur. Voici une petite explication de son fonctionnement : la bobine agit comme un transformateur avec un fil du moteur qui agit comme le bobinage primaire. Plus il y a de courant qui est tiré par le moteur, plus il y a de voltage alternatif à la sortie du transformateur.

 

 

Voyez le petit schéma que j’ai dessiné pour l’expliquer. Donc, pour transformer le courant en une lecture que le microcontrôleur peut comprendre, je crée un diviseur de tension avec les deux résistances de 10KΩ et un condensateur de 220µF. Donc, avec ces composantes, j’arrive à un voltage de la moitié de la valeur de l’alimentation a une borne du senseur de courant. La résistance de 75Ω sert de charge au senseur. L’autre borne du senseur se branche à une entrée analogique du microcontrôleur. Plus il y a de courant qui est demandé par le moteur, plus j’ai une onde sinusoïdale élevée qui entre dans le microcontrôleur. Pour déterminer sa valeur, je prends constamment des lectures de la valeur la plus élevée et de la plus basse. Je soustrais ensuite de la valeur maximum, la valeur minimum et j’atteins la valeur du courant en une lecture de voltage. Avec cette valeur, le circuit fait l’action de déplacer le moteur pas à pas en conséquence de l’amplitude de cette valeur. Donc lorsque la crête de courant est très haute le moteur se déplace plus qu’avec un simple petit dépassement de courant. J’ai programmé pour que le courant maximum soit 9 ampères parce que le courant maximal qui est indiqué sur mon moteur est de 10 ampères. Donc, si le courant dépasse 9 ampères, la position du moteur pas à pas change et le potentiomètre descend la vitesse du tapis.

 

Le reste de la programmation est essentiellement la lecture du bouton qui a Ă©tĂ© sĂ©lectionnĂ© et l’afficheur. Tous les boutons sont en fait diffĂ©rents diviseurs de tension comme le dĂ©montre le schĂ©ma de l’afficheur. Donc, lire quel bouton est sĂ©lectionnĂ© est aussi facile que de prendre une lecture d’une autre entrĂ©e analogique du microcontrĂ´leur et de dĂ©terminer quel bouton est sĂ©lectionnĂ©. Pour l’afficher, c’est assez simple; lorsque les branchement sont faits au microcontrĂ´leur la librairie de l’afficheur du compilateur prend en charge l’affichage.

 

Il faut aussi contrôler le moteur pas à pas; une autre chose de facile avec le module externe que j’ai utilisé (MOT-28BYJ48 Moteur pas à pas avec Pilote ULN2003). J’ai simplement créé une séquence d’activation des bobines du moteur et j’envoie cette séquence à l’entrée du contrôleur du moteur pas à pas. La séquence est envoyée selon le sens que je veux que le moteur tourne et quand il s’arrête, j’enlève le voltage sur le moteur pour l’empêcher de chauffer inutilement.

 

J’ai aussi ajouté un connecteur pour un récepteur Bluetooth. Je me suis servi de cette communication principalement pour vérifier ma programmation; mais il reste quelques commandes pour faire des petits changements par rapport au courant maximal. Donc, avec une communication série Bluetooth ou avec un fil série, il est possible de changer la valeur maximale de 9 ampères pour n’importe quelle autre valeur ainsi que la valeur du courant quand le moteur tourne sans aucune charge.

 

Si vous voulez plus de détails sur les commandes, vous pouvez allez jeter un coup d’œil dans la source.

 

J’ai aussi changĂ© mon plan un peu pour ĂŞtre compatible avec un module Arduino. Pour utiliser un module Arduino, il faut aussi utiliser un circuit imprimĂ© supplĂ©mentaire qui est en sandwich entre l’Arduino lui-mĂŞme et l’afficheur. J’ai dĂ» aussi changer la programmation un peu pour accommoder les diffĂ©rentes positions des connexions de l’afficheur et des entrĂ©es des ports de l’Arduino. Mais la programmation est essentiellement la mĂŞme par la suite.

Par contre, si par hasard vous voudriez essayer ce contrĂ´leur avec un Arduino, je n’ai pas fait la programmation avec l’IDE d’Arduino, mais plutĂ´t avec Code Vision AVR qui est le programme que j’utilise depuis près de vingt ans; donc je n’ai pas vraiment la source en format compatible avec l’IDE d’Arduino. Vous devrez le convertir vous-mĂŞme ou utiliser le fichier .HEX dĂ©jĂ  tout compilĂ© et le tĂ©lĂ©charger dans votre Arduino. Pour faire ça, vous pouvez utiliser le programme Xloader. Voici le lien officiel ou voici une copie sur mon site.

Vous pouvez ici télécharger tous les fichiers de sources et les 4 fichiers .HEX. 2 fichiers pour mon circuit avec ou sans afficheur et aussi les 2 fichiers .HEX pour un Arduino avec ou sans afficheur.

J’ai aussi une image jpeg de la programmation de l’app que j’ai fait avec MIT App Inventor.

Et l’app lui mĂŞme j’ai aussi un code QR


 

J’espère que ces quelques petites informations supplémentaire vous seront utiles.

 

Si vous aimez les chose que je fais, s’il-vous-plaît pensez à me supporter sur Patreon. ou sur Tipeee