Raspberry Pi est une carte basée sur un processeur d'architecture ARM conçue pour les ingénieurs en électronique et les amateurs. Le PI est l'une des plates-formes de développement de projet les plus fiables actuellement. Avec une vitesse de processeur plus élevée et 1 Go de RAM, le PI peut être utilisé pour de nombreux projets de haut niveau tels que le traitement d'image et l'Internet des objets.
Pour réaliser l'un des projets de haut niveau, il faut comprendre les fonctions de base de PI. Nous couvrirons toutes les fonctionnalités de base de Raspberry Pi dans ces tutoriels. Dans chaque tutoriel, nous aborderons l'une des fonctions de PI. À la fin de la série de didacticiels, vous pourrez réaliser vous-même des projets de haut niveau. Vérifiez-les pour démarrer avec la configuration Raspberry Pi et Raspberry Pi.
Nous avons discuté des LED clignotantes, de l'interfaçage des boutons et de la génération PWM dans les didacticiels précédents. Dans ce tutoriel, nous contrôlerons la vitesse d'un moteur à courant continu à l'aide de la technique Raspberry Pi et PWM. PWM (Pulse Width Modulation) est une méthode utilisée pour obtenir une tension variable hors d'une source d'alimentation constante. Nous avons discuté de PWM dans le tutoriel précédent.
Il y a 40 broches de sortie GPIO dans Raspberry Pi 2. Mais sur 40, seules 26 broches GPIO (GPIO2 à GPIO27) peuvent être programmées. Certaines de ces broches remplissent des fonctions spéciales. Avec le GPIO spécial mis de côté, il nous reste 17 GPIO. Pour en savoir plus sur les broches GPIO, passez par: LED clignotante avec Raspberry Pi
Chacune de ces 17 broches GPIO peut fournir un maximum de 15 mA. Et la somme des courants de toutes les broches GPIO ne peut pas dépasser 50 mA. On peut donc tirer un maximum de 3mA en moyenne de chacune de ces broches GPIO. Il ne faut donc pas altérer ces choses à moins que vous ne sachiez ce que vous faites.
Il y a des broches de sortie d'alimentation + 5 V (broches 2 et 4) et + 3,3 V (broches 1 et 17) sur la carte pour connecter d'autres modules et capteurs. Ce rail d'alimentation est connecté en parallèle à l'alimentation du processeur. Ainsi, tirer un courant élevé de ce rail d'alimentation affecte le processeur. Il y a un fusible sur la carte PI qui se déclenche une fois que vous appliquez une charge élevée. Vous pouvez tirer 100mA en toute sécurité du rail + 3,3V. Nous parlons de cela ici parce que; nous connectons le moteur CC à + 3.3V. Avec la limite de puissance à l'esprit, nous ne pouvons connecter qu'un moteur de faible puissance ici.Si vous souhaitez piloter un moteur haute puissance, envisagez de l'alimenter à partir d'une source d'alimentation séparée.
Composants requis:
Ici, nous utilisons Raspberry Pi 2 Model B avec Raspbian Jessie OS. Toutes les exigences matérielles et logicielles de base sont décrites précédemment, vous pouvez les rechercher dans l'introduction de Raspberry Pi, à part ce dont nous avons besoin:
- Broches de connexion
- 220Ω ou 1KΩ résistance (3)
- Petit moteur à courant continu
- Boutons (2)
- Transistor 2N2222
- Diode 1N4007
- Condensateur - 1000uF
- Planche à pain
Explication du circuit:
Comme indiqué précédemment, nous ne pouvons pas tirer plus de 15 mA des broches GPIO et le moteur à courant continu consomme plus de 15 mA, de sorte que le PWM généré par Raspberry Pi ne peut pas être alimenté directement au moteur à courant continu. Donc, si nous connectons le moteur directement à PI pour le contrôle de la vitesse, la carte peut être endommagée de manière permanente.
Nous allons donc utiliser un transistor NPN (2N2222) comme dispositif de commutation. Ce transistor pilote ici le moteur à courant continu haute puissance en prenant le signal PWM de PI. Ici, il faut faire attention au fait qu'une mauvaise connexion du transistor peut charger fortement la carte.
Le moteur est une induction et donc lors de la commutation du moteur, nous subissons des pics inductifs. Cette pointe chauffera fortement le transistor, nous utiliserons donc une diode (1N4007) pour protéger le transistor contre les pics inductifs.
Afin de réduire les fluctuations de tension, nous connecterons un condensateur de 1000 uF aux bornes de l'alimentation, comme indiqué dans le schéma de circuit.
Explication de travail:
Une fois que tout est connecté selon le schéma de circuit, nous pouvons allumer le PI pour écrire le programme dans PYHTON.
Nous parlerons de quelques commandes que nous allons utiliser dans le programme PYHTON.
Nous allons importer le fichier GPIO de la bibliothèque, la fonction ci-dessous nous permet de programmer les broches GPIO de PI. Nous renommons également «GPIO» en «IO», donc dans le programme chaque fois que nous voulons faire référence aux broches GPIO, nous utiliserons le mot «IO».
importer RPi.GPIO comme IO
Parfois, lorsque les broches GPIO, que nous essayons d'utiliser, peuvent remplir d'autres fonctions. Dans ce cas, nous recevrons des avertissements lors de l'exécution du programme. La commande ci-dessous indique au PI d'ignorer les avertissements et de poursuivre le programme.
IO.setwarnings (Faux)
On peut référencer les broches GPIO de PI, soit par numéro de broche à bord, soit par leur numéro de fonction. Comme «PIN 35» sur la carte est «GPIO19». Nous disons donc ici que nous allons représenter la broche ici par «35» ou «19».
IO.setmode (IO.BCM)
Nous définissons GPIO19 (ou PIN35) comme broche de sortie. Nous obtiendrons la sortie PWM de cette broche.
Configuration IO (19, IO.IN)
Après avoir défini la broche comme sortie, nous devons configurer la broche comme broche de sortie PWM, p = IO.PWM (canal de sortie, fréquence du signal PWM)
La commande ci-dessus sert à configurer le canal et également à configurer la fréquence du signal PWM. 'p' ici est une variable cela peut être n'importe quoi. Nous utilisons GPIO19 comme canal de sortie PWM. « fréquence du signal PWM » a été choisi 100, car nous ne voulons pas voir la LED clignoter.
La commande ci-dessous est utilisée pour démarrer la génération du signal PWM, `` DUTYCYCLE '' est pour définir le taux d' activation , 0 signifie que la LED sera allumée pendant 0% du temps, 30 signifie que la LED sera allumée pendant 30% du temps et 100 signifie complètement allumée.
p.start (DUTYCYCLE)
Si la condition entre accolades est vraie, les instructions à l'intérieur de la boucle seront exécutées une fois. Donc, si la broche GPIO 26 devient basse, les instructions à l'intérieur de la boucle IF seront exécutées une fois. Si la broche GPIO 26 ne passe pas à l'état bas, les instructions à l'intérieur de la boucle IF ne seront pas exécutées.
if (IO.input (26) == False):
Alors que 1: est utilisé pour la boucle infinie. Avec cette commande, les instructions à l'intérieur de cette boucle seront exécutées en continu.
Nous avons toutes les commandes nécessaires pour réaliser le contrôle de vitesse avec cela.
Après avoir écrit le programme et l'avoir exécuté, il ne reste plus qu'à faire fonctionner la commande. Nous avons deux boutons connectés à PI; un pour incrémenter le cycle de service du signal PWM et un autre pour décrémenter le cycle de service du signal PWM. En appuyant sur un bouton, la vitesse du moteur à courant continu augmente et en appuyant sur l'autre bouton, la vitesse du moteur à courant continu diminue. Avec cela, nous avons obtenu le contrôle de la vitesse du moteur CC par Raspberry Pi.
Vérifiez également:
- Contrôle de la vitesse du moteur à courant continu
- Contrôle de moteur CC à l'aide d'Arduino