h-bridge besoin d'aide pour un programme

alors j'ai acheter une carte pour vraiment pas cher,sur un site bien connu ebay.
don perso je pense que l'on peut lui faire de multiple application...
elle comporte un atmega48 qui est de la mémé famille que le atmega328 pin a pin moins de mémoire pour le atmega48.
est un driver mosfet de puissance HIP4081A.
mon but est de détourner de sa première utilisation
variateur de vitesse pour un moteur a courant continu 50v 2000w...Pas mal, hein ?

j'ais décortiquer la carte



pour l'application dont j'aurai besoin je voudrai le transformer en un gros servo h-bridge.

mai je ne suis pas sur de mon code,je n'ai pas mi de pwm (analogWrite) car je ne savais pas trop quoi faire.


si l'on peut m'aider merci



cordialement

albert


Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
/*
    
    H-bridge_servo_ATmega48
    
    driver mosfet HIP4081A
    OUTPUT PIN24/PC1 (ADC1/PCINT9)=enable disable circuits HIP4081A .............a mettre a l'état haut (HIGH) ARDUINO= A1
    ....................................................
    sens de rotation moteur
    OUTPUT pin9/(PCINT21/OC0B/T1)    PD5 =(ALI -> circuits HIP4081A)...utiliser pour ce programme ARDUINO= D5
    
    OUTPUT PIN10/(PCINT22/OC0A/AIN0) PD6 = (bli -> circuits HIP4081A)...utiliser pour ce programme ARDUINO= D6
    ....................................................
    pin25/PC2 (ADC2/PCINT10)...input/OUTPUT =A2
    pin26/PC3 (ADC3/PCINT11)...input/OUTPUT =a3
    
    pin27/PC4 (ADC4/SDA/PCINT12)...input ...utiliser pour ce programme (position_moteur) ARDUINO=A4
    PIN23/PC0 (ADC0/PCINT8)...INPUT ...utiliser pour ce programme pulsein   ARDUINO=A0
*/
 
  unsigned long  ch1; // canal valeur
  unsigned long temps;
  int position_moteur; 
  int SENSOR_PIN = 27; //  potentiometre ARDUINO=A4
  int RPWM_Output = 9; // Arduino PWM broche de sortie 5
  int LPWM_Output = 10; // Arduino PWM broche de sortie 6
  int val;
  int enable_circuit = 24;
  void setup()
 {
  pinMode(SENSOR_PIN, INPUT);// PIN 27 =  ARDUINO = A4
  pinMode(enable_circuit, INPUT);// PIN 24 =  ARDUINO = A1
  pinMode(23, INPUT);// PIN 23 =  ARDUINO = A0
  pinMode(RPWM_Output, OUTPUT);
  pinMode(LPWM_Output, OUTPUT);
 
  }
 
  void loop()
  {
   digitalWrite(enable_circuit, HIGH);//enable & disable circuits HIP4081A
 
   ch1 = pulseIn(23, HIGH, 25000); // Lire PWM.. largeur d'impulsion du rc pwm
   temps = map(ch1,1000, 25000,-500,500);
 
   val = analogRead(SENSOR_PIN); //lecture de la position du moteur
   position_moteur = map(val, 0, 1023,-500,500);
 
 //*************************************************************************
   switch(temps)
   {
    case if (temps < 512):
    {
 
       // Rotation inverse
 
    digitalWrite(LPWM_Output, LOW); //analogWrite
    digitalWrite(RPWM_Output, HIGH);//analogWrite
    break;
    }
    case if (temps < -512):
    {
     // Rotation vers l'avant
 
    digitalWrite(LPWM_Output, HIGH);//analogWrite
    digitalWrite(RPWM_Output, LOW);//analogWrite
    break;
    }
    case if (temps == position_moteur):
    {
 
     // stop moteur
        digitalWrite(LPWM_Output, LOW);++
    digitalWrite(RPWM_Output, LOW);
 
    break;
    }





Nom : H-bridge_ATmega48.JPG
Affichages : 225
Taille : 138,0 Ko