Objectifs
- Savoir faire la commande multimodes d’un automate
- Savoir utiliser le module IR
- Test des capteurs à ultrasons
- Savoir mesurer la distance avec un capteur à US
- Savoir lire le code d’une télécommande IR
- Savoir commander un moteur pas à pas
- Savoir changer la vitesse d’un moteur PAP
- Savoir changer le sens de rotation d’un moteur PAP
- Comprendre le principe de fonctionnement de la commande IR
- Etc.
L’objectif du tuto est de valider le fonctionnement du système complet. Voir le tuto pour les détails techniques.
Schéma synoptique

Grafcet du Système

Extrait du Code Arduino
Le code complet sera disponible à la fin de la série.
#include "IRremote.h"
#define NumEtapes 9
#define NumIn 4
#define NumOut 4
#define NumTrans 15
#define NumInOut 2
#define VSeuil 100
#define N 256
#define dmin_mm 15
#define Trig_out_pin_g 2
#define Trig_out_pin_d 3
#define Echo_in_pin_g 4
#define Echo_in_pin_d 5
#define Rx_pin 11
bool Etapes[NumEtapes];
word Inputs[NumIn];
word InOuts[NumInOut];
word Outputs[NumOut];
bool Trans[NumTrans];
IRrecv irrecv(Rx_pin);
decode_results results;
void setup()
{
Serial.begin(115200);
InitStateIO(Etapes, NumEtapes, Inputs, NumIn, Outputs, NumOut);
}
void loop()
{
SetOutputs(Etapes, Outputs);
GetInputs(Inputs);
Serial.print(Inputs[0]); Serial.print(", \t");
Serial.print(Inputs[1]); Serial.print(", \t");
Serial.print(Inputs[2]); Serial.print(", \t");
Serial.print(Inputs[3]); Serial.print("-- \t");
Serial.print(InOuts[0]); Serial.print(", \t");
Serial.print(InOuts[1]); Serial.print("-- \t");
ComputeTrans(Etapes, Trans);
SetupStates(Etapes, Trans);
for(int i=0;i<NumEtapes-1; i++)Serial.print(Etapes[i]);
Serial.println(Etapes[NumEtapes-1]);
}
Obtenir le livre « Codage en C du GRAFCET avec ARDUINO«