Arduino/A star
Napsal: 11. 3. 2016, 9:01
Dělám ted takovou blbost s krokovým motorem
Tady je kod pohybu
v podstatě do pošle určitý počet kroků , a zobrazuje aktuální počet na lcd.
Dělá mi to v podstatě 2 problémy , pokud smažu zobrazní počtu kroků tak motor stojí.
Navíc je slyšet jak se mění frekvence po 10 100 1000 10 000 .. krocích.
void PohybDemo()
{
displayBackArrow();
uint8_t state = 3;
static uint16_t lastUpdateTime = millis() - 2000;
while(buttonMonitor() != 'B')
{
state = 1;
switch(state)
{
case 0:
break;
case 1:
if (stepcount < 209600) {
digitalWrite(13, HIGH); // sets the pin on
delayMicroseconds(10); // pauses for 10 microseconds
digitalWrite(13, LOW); // sets the pin off
delayMicroseconds(10 + (speedValue*100)); // pauses with custom delay
lcd.gotoXY(0, 0);
lcd.print(stepcount);
stepcount = stepcount ++ ;
}
break;
case 2:
break;
}
}
}
Tady je kod pohybu
v podstatě do pošle určitý počet kroků , a zobrazuje aktuální počet na lcd.
Dělá mi to v podstatě 2 problémy , pokud smažu zobrazní počtu kroků tak motor stojí.
Navíc je slyšet jak se mění frekvence po 10 100 1000 10 000 .. krocích.
void PohybDemo()
{
displayBackArrow();
uint8_t state = 3;
static uint16_t lastUpdateTime = millis() - 2000;
while(buttonMonitor() != 'B')
{
state = 1;
switch(state)
{
case 0:
break;
case 1:
if (stepcount < 209600) {
digitalWrite(13, HIGH); // sets the pin on
delayMicroseconds(10); // pauses for 10 microseconds
digitalWrite(13, LOW); // sets the pin off
delayMicroseconds(10 + (speedValue*100)); // pauses with custom delay
lcd.gotoXY(0, 0);
lcd.print(stepcount);
stepcount = stepcount ++ ;
}
break;
case 2:
break;
}
}
}