MICROCONTROLLEURS
TP 2
Marin Iuliana
Contrôler le servomoteur avec
Arduino Uno et bouton
poussoir
• Vous aurez besoin de:
• Arduino Uno R3
• Breadboard
• Leds
• Résistances
• Fils
• Boutons poussoir
• Micro servomoteur
• Ce mini servomoteur est spécialement conçu pour les
applications à faible puissance telles que les robots ou les
jouets télécommandés. Par exemple, vous pouvez l'utiliser
sur une voiture pour faire tourner les roues avant.
2
Ce que vous ferez
• Connectez deux boutons poussoir à Arduino.
• Remonter
• Fonction digitalread().
• Contrôlez enfin le servomoteur avec les boutons poussoir.
• Nous lisons d'abord l'état du bouton-poussoir à l'aide de la
fonction digitalRead(). Dans ce projet, nous utilisons
l'instruction if else pour contrôler le servomoteur en
fonction de la condition. Arduino Uno surveille en
permanence l'état du bouton-poussoir. Lorsque l'état du
bouton-poussoir devient élevé, Arduino écrit le servo à 180
degrés.
3
Le code
#include<Servo.h>
int pos = 90;
int pin4 = 4;
if (pos == 180) {
int pin3 = 3;
[Link]("Reached top end ");
int LedHi = 5;
digitalWrite(LedHi, HIGH);
int LedLow = 6;
}
Servo servo1;
delay(10);
}
void setup() {
pinMode(LedHi, OUTPUT);
while (digitalRead(pin4) == HIGH && pos > 0) {
pinMode(LedLow, OUTPUT);
digitalWrite(LedHi, LOW);
pinMode(pin4, INPUT);
pos--;
pinMode(pin3, INPUT);
[Link](pos);
[Link](9600);
[Link]("Degrees rotation= ");
[Link](9);
[Link](pos);
}
if (pos == 0) {
void loop() {
[Link]("Reached low end ");
while (digitalRead(pin3) == HIGH && pos < 180) {
digitalWrite(LedLow, HIGH);
digitalWrite(LedLow, LOW);
}
pos++;
delay(10);
[Link](pos);
}
[Link]("Degrees rotation= ");
}
[Link](pos); 4
3 canaux analogiques
• [Link]
2/editel?sharecode=RbwDCesGQPjdFo0o6NqB5ra92x_YBibbRKCKpuGg-HA
• Vous aurez besoin de:
• Arduino Uno R3
• Breadboard
• Résistance
• Fils
• 3 x Potentiomètre
• Potentiomètre 10K ohms
• Ecran LED
• Un potentiomètre (appelé familièrement potard) est un type de résistance variable à
trois bornes, dont une est reliée à un curseur se déplaçant sur une piste résistante
terminée par les deux autres bornes.
5
5
3 canaux analogiques – Code (1)
// include the library code:
#include <LiquidCrystal.h>
//static char scrollMessage[] = {"Salut, FILS!"};
//int position = 0;
int a0 = 0; //declare values
int a1 = 1;
int a2 = 2;
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
void setup() {
// set up the LCD's number of columns and rows:
[Link](16, 2);
// Print a message to the LCD.
[Link](" A0 A1 A2 ");
[Link](9600); // begin serial communication
} 6
6
3 canaux analogiques – Code (2)
void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
[Link](0, 1);
//removed scrolling text here
int val0 = analogRead (a0);
int val1 = analogRead (a1);
int val2 = analogRead (a2);
float volt0 = 5.*val0/1023; Remarques
float volt1 = 5.*val1/1023; • En tournant l'arbre du potentiomètre, nous modifions la quantité de
float volt2 = 5.*val2/1023; résistance de chaque côté de l'essuie-glace qui est connecté à la
[Link](volt0); //print bottom line of LCD broche centrale du potentiomètre.
• Cela change la "proximité" relative de cette broche à 5 volts et à la
[Link](" ");
masse, nous donnant une entrée analogique différente.
[Link](volt1); • Lorsque l'arbre est tourné complètement dans un sens, il y a 0 volts
[Link](" "); allant à la broche, et nous lisons 0.
[Link]( volt2); • Lorsque l'arbre est tourné complètement dans l'autre sens, il y a 5
volts allant à la broche et nous lisons 1023.
• Entre les deux, analogRead() renvoie un nombre entre 0 et 1023 qui
est proportionnel à la quantité de tension appliquée à la broche. 7
7
3 canaux analogiques – Code (3)
[Link](val0);
[Link](",");
[Link](volt0, 2); // display volt to 2 decimal
[Link](",");
[Link]("V");
[Link](","); //create a break in the text
[Link](val1);
[Link](",");
[Link](volt1, 2);
[Link](",");
[Link]("V");
[Link](",");
[Link](val2);
[Link](",");
[Link](volt2, 2);
[Link](",");
[Link]("V");
delay(40); // this is necessary to run the simulation at full speed
} 8
8
Exercices
[Link] le premier exemple afin d'écrire dans un fichier
les rotations du moteur exprimées en degrés, ainsi que sa
direction.
[Link] un écran au premier exemple pour y voir la
rotation exprimée en degrés.