Prova di due motori in DC, o di due motoriduttori, per controllare la giusta funzione dei comandi.
Si tratta, qui, di piccoli motori a magneti permanenti.
Per motori ad eccitazione indipendente il programma va adeguatamente adattato.
E' possibile cambiare i piedini di uscita per i motori, per adattarli a quelli disponibili ed al dispositivo utilizzato.
/* -----------------------------Inizio programma --------------------------------------------
* Controllo di 2 motori in DC usando un Ponte H a due canali con L298N
* Autore: Achille De Santis
*/
// --------------------------- I/O ---------------------------------------------------------------
//Definizione piedini Arduino collegati all'entrata del Ponte H
// ---------------- M1 --------
#define IN1 4
#define IN2 5
// ---------------- M2 -------
#define IN3 6
#define IN4 7
// ----------------------------------------------------------------------------------------------
const int T1= 2000; // tempo di ON
const int T2= 500; // tempo di OFF
void setup()
{ //Definisce i piedini di uscita
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
}
void MOTORE(int A, boolean a, int B, boolean b) // azionamento motore generico
{ digitalWrite(A, a); digitalWrite(B, b); }
void AVANTI (int A, int B) { MOTORE(A, HIGH, B, LOW); } // azionamento motore avanti
void DIETRO (int A, int B) { AVANTI(B, A); } // azionamento motore indietro
void FERMO(int A, int B) { MOTORE(A, LOW, B, LOW); } // arresto motore generico
void loop()
{
AVANTI(IN1, IN2); delay(T1); // Ruota Motore A in senso orario
FERMO(IN1, IN2); delay(T2); // Ferma motore A
AVANTI(IN3, IN4); delay(T1); // Ruota Motore B in senso orario
FERMO(IN3, IN4); delay(T2); // Ferma motore B
DIETRO(IN1, IN2); delay(T1); // Ruota Motore A in senso anti-orario
FERMO(IN1, IN2); delay(T2); // Ferma motore A
DIETRO(IN3, IN4); delay(T1); // Ruota Motore B in senso anti-orario
FERMO(IN3, IN4); delay(T2); // Ferma motore B
}
// ------------------------------ Fine programma -----------------------------------------------------
Nessun commento:
Posta un commento