|

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 :

Version IDE :

  • Arduino IDE 2.3.5

Bibliothèque :

SevSeg.h (version: 3.7.0 par Dean Reading)

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
}

Publications similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *