Catégories
Arduino Asservissement Arduino électronique moteur

GRAFCET | Arduino #33: La Commande IR d’un Curseur de Caméra Multimodes – Test du Moteur pas à pas IV

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 moteur pas à pas. Il sera utilisé pour le contrôle du déplacement du curseur vers la droite ou la gauche. Voir le tuto pour les détails techniques.

Schéma synoptique

schéma de principe arduino commande IR - Test liaison IR

Programme Arduino

void setup() 
{
// Affichage
Serial.begin(115200);

// Init Moteur PAP - PINS[22-25]
DDRA=0xff; PORTA=0x00;
}

void loop()
{
// Test Moteur PAP (PORTA)
setMPAP(NULL, 0, 2, 100); delay(1000);
setMPAP(NULL, 1, 2, 100); delay(1000);
}

void setMPAP(int *pin_4p, int sens, unsigned long delay_ms, unsigned long n_hstep)
{
const int n_ustep=9; // 8+1
const unsigned short seqMPAP_p[n_ustep]= {1,3,2,6,4,12,8,9,0};
const unsigned short seqMPAP_m[n_ustep]= {9,8,12,4,6,2,3,1,0};

if (sens==0)
{
for (int i=0; i<n_hstep; i++)
{
for(int j=0;j<n_ustep;j++)
{
PORTA=seqMPAP_p[j];
delay(delay_ms);
}
}
}else
{
for (int i=0; i<n_hstep; i++)
{
for(int j=0;j<n_ustep;j++)
{
PORTA=seqMPAP_m[j];
delay(delay_ms);
}
}
}
}

Obtenir le livre « Codage en C du GRAFCET avec ARDUINO« 

Laisser un commentaire