Accel Stepper - krokac - rada

Uživatelský avatar
jrt
Příspěvky: 1921
Registrován: 17 úno 2013, 17:13

Re: Accel Stepper - krokac - rada

Příspěvek od jrt »

DavidO píše: 02 lis 2020, 19:26 To je diuný, Arduino toho zvládne... a vloni jsi měl něco velmi podobnýho se dvěma krokáčema a poťákem a šlo to, ne?
Ale bez akcelerace a i tak to čtení a přepočet poťáků chvilku trvá.
Jak se chová to nestíhání? Škube to, nebo co?
Škube chrastí a hlavně jak se přejde do toho brzdícího režimu, tak nejdřív zrychlí a pak se teprv zastaví (tedy s tvým kódem nezastaví, ale s mým ano). Ještě si plánuju dát jedno kolečko před spaním. Třeba se mi to povede.
jrt
DavidO
Příspěvky: 1133
Registrován: 01 kvě 2013, 21:27

Re: Accel Stepper - krokac - rada

Příspěvek od DavidO »

Divný, divný. Nezdržujou ti to nějaký výpisy přes seriák? Nebo nemáš nějak divně nastavený mikrokrokování? Teď jsem si jen tak nechal přepočítat celej rozsah 0-1023 a bylo to pár desítek ms celkem, tak to ten přepočet jedné hodnoty přece nemůže hrát nějak podstatnou roli.

Ještě mě teď napadlo, že kdyby nebylo nutné, aby to bylo úplně přesně, tak by se to dalo trochu zjednodušit, protože když se dělí 1023 a pak násobí 4000, tak to je skoro jako vynásobit 4, že to nemusí být ve floatech, ale stačila by celá čísla (chyba max 1 v rozsahu 4000), a pak taky že zastavit je skoro stejný, jako jet rychlostí 0:

Kód: Vybrat vše

void loop()
{
  unsigned int pozadovanaRychlost;  // požadovaná rychlost 0..1023
  bool spinac = digitalRead(spinac_PIN);  // stav spínače (rovnou ho přečteme)
  digitalWrite(led_PIN,spinac==SPINAC_JEDEME);  // LED bude svítit, když motor má jet a nesvítit, když nemá jet
  if(spinac == SPINAC_JEDEME) {  // spínač je v poloze "jedeme" - motor má jet
    pozadovanaRychlost = analogRead(SPEED_PIN);  // přečíst polohu potenciometru (0 až 1023)
  } else {
    pozadovanaRychlost = 0;  // chceme zastavit, takže 0
  }
  stepper1.setSpeed(pozadovanaRychlost * 4);  // nastavit rychlost motoru
  stepper1.runSpeed();  // nechat motor točit (s nulou stojí)
}
Čili celkově tam je za běžného provozu jedno digitální + jedno analogové čtení, zápis na pin, dva shifty doleva a zbytek je už na AccelStepperu SetSpeed + runSpeed, tak jestli ani tohle AccelStepper na Arduinu nezvládne, tak je u mě mrtvej Homolka.

A ještě, jak to je s nastavením zrychlení? Default když nic nezadáš je, jestli mě nešálí zrak, 1, a tady i v příkladech od knihovny se nastavuje 100. To je docela rozdíl, nemůže tohle být problém? Třeba že by se jednou braly procenta a jednou poměr (1=100%)
Nikoho plánovaně neurážím. Jestli se Vám nelíbí co píšu, tak to nečtěte. A ostatně, třeba za to nemůžu - Researchers believe that dark humor can be a significant symptom of dementia.
DavidO
Příspěvky: 1133
Registrován: 01 kvě 2013, 21:27

Re: Accel Stepper - krokac - rada

Příspěvek od DavidO »

Hm, no tak ještě něco:
setSpeed()
Parameters
[in] speed The desired constant speed in steps per second. Positive is clockwise. Speeds of more than 1000 steps per second are unreliable.
a
analog_value = analogRead(SPEED_PIN); // read value of potenitometr (0 až 1023)…
current_speed = (((analog_value/1023.0) * (MAX_SPEED - MIN_SPEED)) + MIN_SPEED); // convert to stepper speed
stepper1.setSpeed(current_speed);
tak to se s maximálkou 4000 kroků/s asi ani nemůžem moc divit. Když bude poťák vytočenej víc jak na čtvrtku, tak to začne být nespolehlivé: 256/1023.0*(4000-0)+0 je kolik?
Nikoho plánovaně neurážím. Jestli se Vám nelíbí co píšu, tak to nečtěte. A ostatně, třeba za to nemůžu - Researchers believe that dark humor can be a significant symptom of dementia.
Uživatelský avatar
jrt
Příspěvky: 1921
Registrován: 17 úno 2013, 17:13

Re: Accel Stepper - krokac - rada

Příspěvek od jrt »

K čemu to je jsme se zatím nedozvěděli, ale když jsem se na program kouknul hlouběji, připomíná mi to skener na digitalizaci 8mm filmů, ke kterému jsem dělal program někdy na jaře. Není to náhodou ono?
jrt
DavidO
Příspěvky: 1133
Registrován: 01 kvě 2013, 21:27

Re: Accel Stepper - krokac - rada

Příspěvek od DavidO »

Jak to dopadlo? Nebo byl vývoj dočasně přerušen a projekt outsourcován do Asie? ("necháme to na Indy")
Nikoho plánovaně neurážím. Jestli se Vám nelíbí co píšu, tak to nečtěte. A ostatně, třeba za to nemůžu - Researchers believe that dark humor can be a significant symptom of dementia.
Odpovědět