Texas Instruments: Motore passo passo con MSP430

Ciao a tutti, in questo articolo vi mostrerò come creare un progetto che ci permetta di controllare un motore passo passo o step motor con un potenziometro.

La scheda utilizzata è la seguente:  http://www.ti.com/tool/msp-exp430g2

Invece il software usato per la programmazione è:  http://energia.nu/

I componenti che ci servono sono:

– MSP430G2553

– Step Motor + Driver

– Potenziometro (10K)

– Breadboard

– Fili per i collegamenti

– Un PC con Energia e le librerie di Arduino installate + Cavo Mini USB

I collegamenti da eseguire sono:

wiring1

11850910_806358712795417_1401852767_n

Invece lo sketch da caricare sulla board è:

[c]

#include <Stepper.h>

#define STEPSREV 4096
#define COIL1 14
#define COIL2 12
#define COIL3 13
#define COIL4 11
#define POT A5
#define ENER RED_LED
#define TIMEOUT 3000

Stepper myStepper(STEPSREV, COIL1, COIL2, COIL3, COIL4);
int PotVal;
int LastPotVal= 0 ;
int pos = 0;
unsigned long stamp = 0;

void setup()
{
myStepper.setSpeed(4);
pinMode(ENER, OUTPUT);
}

void loop(){

PotVal = analogRead(POT);

PotVal= map(PotVal,0,1023,0,2047);
PotVal= PotVal * 0.1 + LastPotVal * 0.9 ;
LastPotVal= PotVal;

if(abs(PotVal – pos)> 4){
if((PotVal – pos)> 0){
digitalWrite(ENER, HIGH);
myStepper.step(1);
pos++;
}
if((PotVal – pos)< 0){
digitalWrite(ENER, HIGH);
myStepper.step(-1);
pos–;
}
stamp = millis();
}
else {
if((millis() – stamp) > TIMEOUT){
digitalWrite(COIL1, LOW);
digitalWrite(COIL2, LOW);
digitalWrite(COIL3, LOW);
digitalWrite(COIL4, LOW);
digitalWrite(ENER, LOW);
}
}

}

[/c]

11872880_806358569462098_37366933_n