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
- 1 x Breadboard
- 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
}
