Varier la vitesse d’un moteur avec module IRF520, un potentiomètre, affichage 7 segments et un Arduino
Description :
Ce montage a pour objectif de faire varier la vitesse d’un moteur à courant continu 5 V à l’aide d’un module à transistor MOSFET IRF520. La commande de vitesse est assurée par un potentiomètre, dont la valeur est convertie numériquement grâce à l’arduino afin d’être affichée sur un afficheur à 7 segments sous la forme d’un chiffre compris entre 0 et 9.
Prérequis :
- 1 x Carte Arduino Uno
- 1 x Potentiomètre 10 KΩ
- 1 x Module IRF520
- 1 x Moteur 5V DC
- 8 x Résistances 330Ω
- 1 x Afficheur 7 segments Common Cathode
- 1 x Alimentation 5v
- Fils de connexion
Vidéo de démonstration :
Schéma de câblage :


Code :
#include "SevSeg.h" SevSeg sevseg; //Instancier un objet contrôleur à sept segments #define PWM 10 // broche PWM utilisée pour connecter la PIN du module IRF520 int potpin = A0; // broche analogique utilisée pour connecter le potentiomètre int val; // variable pour lire la valeur de la broche analogique int valeurout; // variable pour stocker la valeur Map du potentiomètre void setup() { byte numDigits = 1; byte digitPins[] = {}; byte segmentPins[] = { 3, 2, 8, 7, 6, 4, 5, 9 }; bool resistorsOnSegments = true; // 'false' signifie que les résistances sont sur les broches numériques byte hardwareConfig = COMMON_CATHODE; // Voir README.md pour les options bool updateWithDelays = false; // La valeur par défaut 'false' est recommandée bool leadingZeros = false; // Utilisez 'true' si vous souhaitez conserver les zéros non significatifs bool disableDecPoint = false; // Utilisez 'true' si votre point décimal n'existe pas ou n'est pas connecté sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments, updateWithDelays, leadingZeros, disableDecPoint); sevseg.setBrightness(100); } void loop() { val = analogRead(potpin); // Lit la valeur du potentiomètre (valeur entre 0 et 1023) val = map(val, 0, 1023, 0, 9); // mapping function valeurout = map(val,0,9,0,255); //Map la valeur du potentiomètre 0 à 1023 en 0 à 255 analogWrite(PWM,valeurout); // Écrit la valeurout analogique sur la broche PWM sevseg.setNumber(val, 0); sevseg.refreshDisplay(); // Doit être exécuté à plusieurs reprises }