Contrôle de moteur à courant continu avec les drivers L293D et L298N

Le programme ci-dessous permet de contrôler deux moteurs à courant continu avec un contrôleur L293D :

1
 //initialisation des broches : GA & GB pour le moteur de gauche, DA & DB pour le moteur de droite 
2
int GA=11,GB=10,DA=5,DB=6;
3
4
void setup() { 
5
  Serial.begin(9600); 
6
  pinMode(DA,OUTPUT); 
7
  pinMode(DB,OUTPUT); 
8
  pinMode(GA,OUTPUT); 
9
  pinMode(GB,OUTPUT); 
10
} 
11
12
void arriere() { 
13
  digitalWrite(DA,HIGH); 
14
  digitalWrite(DB,LOW); 
15
  digitalWrite(GA,HIGH); 
16
  digitalWrite(GB,LOW); 
17
} 
18
void avant() {
19
  digitalWrite(DA,LOW); 
20
  digitalWrite(DB,HIGH); 
21
  digitalWrite(GA,LOW); 
22
  digitalWrite(GB,HIGH); 
23
} 
24
void gauche() { 
25
  digitalWrite(DA,LOW); 
26
  digitalWrite(DB,HIGH); 
27
  digitalWrite(GA,HIGH); 
28
  digitalWrite(GB,LOW); 
29
} 
30
void droite() { 
31
  digitalWrite(DA,HIGH); 
32
  digitalWrite(DB,LOW); 
33
  digitalWrite(GA,LOW); 
34
  digitalWrite(GB,HIGH); 
35
} 
36
37
void loop() {
38
  avant(); delay(1000); 
39
  arriere(); delay(1000); 
40
  gauche(); delay(1000); 
41
  droite(); delay(1000); 
42
}
43

Le montage à réaliser est le suivant :

Question 1 : Comment fonctionne le driver L293D ?

Question 2 : Réalisez le montage, téléversez le code, et constatez le fonctionnement.

Question 3 : Modifiez le code et le montage pour qu'un moteur soit piloté par deux boutons poussoir, un pour la rotation dans un sens et l’autre pour la rotation dans le sens contraire.