Step Motor 28BYJ-48

Buonasera a tutti
vorrei motorizzare una tapparella usando il mio motore Step Motor 28BYJ-48 tuttavia il codice da me in possesso lo fa funzionare solo per un verso … è possibile farlo andare nel verso(orario) oppossto cioè antiorario? Grazie a tutti e buona serata

#define IN1  8
#define IN2  9
#define IN3  10
#define IN4  11
int Steps = 16384; //4096 or 768
int cstep = 0;

void setup()
{
  Serial.begin(9600);
  pinMode(IN1, OUTPUT); 
  pinMode(IN2, OUTPUT); 
  pinMode(IN3, OUTPUT); 
  pinMode(IN4, OUTPUT); 
}

void loop()
{
  for(int x=0;x<Steps;x++)
  {
  step1();
  //delay(1);
  delayMicroseconds(900);
  }
  Serial.println("Boom!!");
  delay(1000);
  
}

void step1()
{
  //stepp
  switch(cstep)
  {
   case 0:
     digitalWrite(IN1, LOW); 
     digitalWrite(IN2, LOW);
     digitalWrite(IN3, LOW);
     digitalWrite(IN4, HIGH);
   break; 
   case 1:
     digitalWrite(IN1, LOW); 
     digitalWrite(IN2, LOW);
     digitalWrite(IN3, HIGH);
     digitalWrite(IN4, HIGH);
   break; 
   case 2:
     digitalWrite(IN1, LOW); 
     digitalWrite(IN2, LOW);
     digitalWrite(IN3, HIGH);
     digitalWrite(IN4, LOW);
   break; 
   case 3:
     digitalWrite(IN1, LOW); 
     digitalWrite(IN2, HIGH);
     digitalWrite(IN3, HIGH);
     digitalWrite(IN4, LOW);
   break; 
   case 4:
     digitalWrite(IN1, LOW); 
     digitalWrite(IN2, HIGH);
     digitalWrite(IN3, LOW);
     digitalWrite(IN4, LOW);
   break; 
   case 5:
     digitalWrite(IN1, HIGH); 
     digitalWrite(IN2, HIGH);
     digitalWrite(IN3, LOW);
     digitalWrite(IN4, LOW);
   break; 
     case 6:
     digitalWrite(IN1, HIGH); 
     digitalWrite(IN2, LOW);
     digitalWrite(IN3, LOW);
     digitalWrite(IN4, LOW);
   break; 
   case 7:
     digitalWrite(IN1, HIGH); 
     digitalWrite(IN2, LOW);
     digitalWrite(IN3, LOW);
     digitalWrite(IN4, HIGH);
   break; 
   default:
     digitalWrite(IN1, LOW); 
     digitalWrite(IN2, LOW);
     digitalWrite(IN3, LOW);
     digitalWrite(IN4, LOW);
   break; 
  }
   
   cstep=cstep+1;
   if(cstep==8)
     {cstep=0;}
}

Ma é un modellino di tapparella?

si è per un plastico

si è per un plastico

Ah, ecco, ora va' meglio

basta che conti al rovescio

da cosi'

 cstep=cstep+1;
   if(cstep==8)
     {cstep=0;}

a cosi'

 cstep=cstep-1;
   if(cstep==0)
     {cstep=7;}

Brunello:
Ah, ecco, ora va' meglio

basta che conti al rovescio

da cosi'

 cstep=cstep+1;

if(cstep==8)
    {cstep=0;}




a cosi'



cstep=cstep-1;
  if(cstep==0)
    {cstep=7;}

Potrò sbagliarmi, ma inserendolo brutalmente sotto all'altro non si muoverà mai, almeno per logica, prima incremento e poi decremento, ovviamente deve trovare una maniera per dividere i codici.

Certamente…

e ho pure fatto un errore

cstep=cstep-1;
   if(cstep < 0)
     {cstep=7;}

Ora provo grazie mille :slight_smile:

funziona tutto Grazie mille. Ho un altra domanda il mio step motor dopo che funziona per diversi secondi si surriscalda di molto è normale?

è normale.
Ciao Uwe