# TIPE Projet contrôle d'un moteur 24V

# Montage Arduino pour le contrôle de celui ci



# Outil nécessaire au test et au montage

Carte Arduino uno

Transformateur 220 V AC en 24V DC

Moteur 24V DC 8000 RPM (838 rad/s)

H-Bridge: HiLetgo BTS7960

par la suite pour le contrôle manuelle de la monté en régime: Potentiomètre

pour le contrôle de la rotation à droite ou à gauche: Bouton poussoir`

# Phase de test et de compréhension du H-Bridge et des commande arduino

Tout d'abord on a la H-bridge suivant HiLetgo BTS7960 monté avec deux puce BTS7960B dont la documentation est la suivante: [https://content.instructables.com/FYD/V3VU/HUL8W2ZW/FYDV3VUHUL8W2ZW.pdf](https://content.instructables.com/FYD/V3VU/HUL8W2ZW/FYDV3VUHUL8W2ZW.pdf)

À partir de cette documentation et d'un premier code:

/\*........................  
BTS7960 Motor Driver Test  
Written By : Mohannad Rawashdeh  
Code for :  
https://www.instructables.com/member/Mohannad+Rawashdeh/  
\*/  
int RPWM=5;  
int LPWM=6;  
// timer 0  
int L\_EN=7;  
int R\_EN=8;  
  
void setup() {  
 // put your setup code here, to run once:  
 for(int i=5;i&lt;9;i++){  
 pinMode(i,OUTPUT);  
 }  
 for(int i=5;i&lt;9;i++){  
 digitalWrite(i,LOW);  
 }  
 delay(1000);  
 Serial.begin(9600);  
 }  
  
  
  
void loop() {  
 // put your main code here, to run repeatedly:  
 Serial.println("EN High");  
 digitalWrite(R\_EN,HIGH);  
 digitalWrite(L\_EN,HIGH);  
delay(1000);  
for(int i=0;i&lt;256;i++){  
 analogWrite(RPWM,i);  
// analogWrite(LPWM,255-i);  
 delay(100);  
}  
delay(500);  
for(int i=255;i&gt;0;i--){  
 analogWrite(RPWM,i);  
// analogWrite(LPWM,255-i);  
 delay(100);  
}  
delay(500);  
Serial.println("EN LOW");  
digitalWrite(R\_EN,LOW);  
 digitalWrite(L\_EN,LOW);  
delay(1000);  
for(int i=0;i&lt;256;i++){  
 analogWrite(RPWM,i);  
 delay(100);  
}  
delay(500);  
for(int i=255;i&gt;0;i--){  
 analogWrite(RPWM,i);  
 delay(100);  
}  
delay(500);  
}

ce code fait tourner trois fois le moteur en monté progressive de régime puis baisse de celui ci .

Ainsi, je reconnais donc le contrôle des rotation du moteur

<div id="bkmrk-void-loop%28%29-%7B-%2F%2F-put"><div><div><div>void loop() {</div><div>// put your main code here, to run repeatedly:</div><div>Serial.println("EN High");</div><div>digitalWrite(R_EN,HIGH);</div><div>digitalWrite(L_EN,HIGH);</div><div>analogWrite(RPWM,255);</div><div>}</div>  
</div></div></div><div id="bkmrk-ce-code-permet-tout-">ce code permet tout simplement de faire tourner le moteur dans une rotation anti-trigo à plein régime</div><div id="bkmrk-"></div><div id="bkmrk-%C2%A0-void-loop%28%29-%7B-%2F%2F-p"><div><div>void loop() {</div><div>// put your main code here, to run repeatedly:</div><div>Serial.println("EN High");</div><div>digitalWrite(R_EN,HIGH);</div><div>digitalWrite(L_EN,HIGH);</div><div>analogWrite(LPWM,255);</div><div>}</div>  
</div><div>Quant à celui ci, il fait la même chose dans le sens trigo</div></div><div id="bkmrk-bien-sur-en-posent-l">bien sur en posent les variable suivante en fonction des entrées:</div><div id="bkmrk-int-rpwm%3D10%3B-int-lpw"><div><div>int RPWM=10;</div><div>int LPWM=11;</div><div>// timer 0</div><div>int L_EN=7;</div><div>int R_EN=8;</div></div></div>