Paso 5: Código Real
stepporty byte; //what parte del paso para ir a
byte val = 3; //delay entre los pasos
db bytes = 4; / / db, da, pb, pa, y en todos pueden ser cualquier pin de excepto pin 7 (pin2 digital, andalog in1) en el pinout estándar
que la clavija debe ser la clavija de entrada de reloj/paso.
dB es out4
da de byte = 3; //out3
pa de byte = 0; //out1
byte pb = 1; //out2
byte en = 1; no cambio esta entrada de pin //direction
dsd largo = 100; //where queremos que el motor se
pos largos; //where es
void setup() {}
Serial.Begin(9600);
attachInterrupt (0, count, levantamiento); //executes "void cuenta" cuando pin 7 (interrupción 0) se trae alta
pinMode (db, salida); //sets salidas y entradas
pinMode (da, salida);
pinMode (pb, salida);
pinMode (pa, salida);
pinMode (in, INPUT);
}
void loop() {//this sólo comprueba si debe avanzar o retroceder y se mueve en consecuencia
Si (dsd! = pos) {}
if(DSD < pos) {}
Back();
Delay(Val);
}
Si (dsd > pos) {}
FWD();
Delay(Val);
// }
}}
void count() {//this incrementa la posición deseada cuando este pin se pone alto
debe utilizar el mismo pin porque
el attiny85 sólo tiene 5 pernos (aunque reset podría ser utilizado como un pin de e/s, no puede
que reprogramarlo después.
Si (analogRead(in) > 1) {//this determina si la dirección es alta o baja
me preguntan por qué uno funciona, pero lo hace. Después de aproximadamente 7 horas rectas de tratar de arreglar
esta línea de código, no doy una rata detrás de por qué actúa como lo hace
DSD-= 1; adelante si positivo
} else {}
DSD += 1; //backward si no
}}
void fwd() {//both fwd y figura que parte del paso es el siguiente e incrementa la posición
y potencia del motor en consecuencia.
pos ++;
interruptor (stepporty) {}
caso 0:
One();
stepporty = 1;
rotura;
caso 1:
OneHalf();
stepporty = 2;
rotura;
caso 2:
Two();
stepporty = 3;
rotura;
caso 3:
twohalf();
stepporty = 4;
rotura;
caso 4:
Three();
stepporty = 5;
rotura;
caso 5:
threehalf();
stepporty = 6;
rotura;
caso 6:
Four();
stepporty = 7;
rotura;
caso 7:
fourhalf();
stepporty = 0;
rotura;
} }
{} void back()
pos--;
interruptor (stepporty) {}
caso 2:
One();
stepporty = 1;
rotura;
caso 3:
OneHalf();
stepporty = 2;
rotura;
caso 4:
Two();
stepporty = 3;
rotura;
caso 5:
twohalf();
stepporty = 4;
rotura;
caso 6:
Three();
stepporty = 5;
rotura;
caso 7:
threehalf();
stepporty = 6;
rotura;
caso 0:
Four();
stepporty = 7;
rotura;
caso 1:
fourhalf();
stepporty = 0;
rotura;
} }
void fourhalf() {}
digitalWrite (db, HIGH); //4
digitalWrite (da, LOW);
digitalWrite (pb, LOW);
digitalWrite (pa, HIGH);
}
void four() {}
digitalWrite (db, alta);
digitalWrite (da, LOW);
digitalWrite (pb, LOW);
digitalWrite (pa, baja);
}
void threehalf() {}
digitalWrite (db, alta);
digitalWrite (da, alto);
digitalWrite (pb, LOW);
digitalWrite (pa, baja);
}
void three() {}
digitalWrite (db, baja);
digitalWrite (da, alto);
digitalWrite (pb, LOW);
digitalWrite (pa, baja);
}
void twohalf() {}
digitalWrite (db, baja);
digitalWrite (da, alto);
digitalWrite (pb, alto);
digitalWrite (pa, baja);
}
void two() {}
digitalWrite (db, baja);
digitalWrite (da, LOW);
digitalWrite (pb, alto);
digitalWrite (pa, baja);
}
void onehalf() {}
digitalWrite (db, baja);
digitalWrite (da, LOW);
digitalWrite (pb, alto);
digitalWrite (pa, HIGH);
}
void one() {}
digitalWrite (db, baja); //1
digitalWrite (da, LOW);
digitalWrite (pb, LOW);
digitalWrite (pa, HIGH);
}