arduino joystik
Moderátor: Moderátoři
-
BigSandy
- Příspěvky: 895
- Registrován: 28 črc 2015, 00:00
arduino joystik
Jsem koupil od Číňanu joystik KY-023 pro ovadaní Motor Driver BTS7960
Nějak se s ním nemohu domluvit.
Každý den má úplně jíné klidové hodnoty.
Včera X: 531 Y : 528
Dnes X: 564 Y: 547
Doporučte nějaký, co by normálně fungoval.
-
Zaky
- Příspěvky: 7059
- Registrován: 30 říj 2010, 00:00
- Bydliště: Praha
-
rnbw
- Příspěvky: 37626
- Registrován: 21 bře 2006, 00:00
- Bydliště: Bratislava
-
_luky_
- Příspěvky: 747
- Registrován: 28 led 2009, 00:00
- Bydliště: okres Beroun, kraj Středočeský
-
BigSandy
- Příspěvky: 895
- Registrován: 28 črc 2015, 00:00
Půjde toto nějak pořešít?
Středova hodnota joystiku vlevo - vpravo je 510.
Tedy 2 podmínky
Kód: Vybrat vše
if (joystick[1] > 520)
{
int vpravo = ????
}
Kód: Vybrat vše
if (joystick[1] < 500)
{
int vlevo = ????
}
Půjde v těchto podmínkách souřadnice joystiku nějak přepočítat, tak abych v každé proměnné mněl hodnotu 0 - 100?
PS: řeším otáčení vozítka přes Motor Driver BTS7960 43A.
Dopředu 0 - 255
Dozadu 0 - 255
Bych chtěl, aby při naklonění joystiku třeba do leva na 50%, odečítat s driveru co řídí levé kolo těch 50%
-
misocko
- Příspěvky: 1531
- Registrován: 26 čer 2009, 00:00
- Bydliště: Hlohovec (Sk)
-
BigSandy
- Příspěvky: 895
- Registrován: 28 črc 2015, 00:00
-
BigSandy
- Příspěvky: 895
- Registrován: 28 črc 2015, 00:00
Kód: Vybrat vše
////////////////////////////////////////////////////////////
// leve kolo
if (joystick[1] <= 500)
{
vlevo = map(joystick[1], 0, 500, 100, 0);
}
else
{
vlevo = 0;
}
///////////////////////////////////////////////////////////////
// Dopředu
if (joystick[0] >= 535)
{
dopreduPWM_pravekolo = map(joystick[0], 535, 1023, 0, 255);
dopreduPWM_levekolo = map(joystick[0], 535, 1023, 0, 255);
int le = (dopreduPWM_levekolo/100)* vlevo;
Serial.print(dopreduPWM_levekolo);
Serial.print(" --- ");
Serial.print(vlevo);
Serial.print(" --- ");
Serial.println(le);Když mam joy úplně vpředu a vlevo, přes ser to vypisuje 255 --- 100 --- 200
int le = (dopreduPWM_levekolo/100)* vlevo;
dopreduPWM_levekolo/100 je 255/100, a mame jedno procento což je 2,55.
2,55 * 100 je zase 255 a ne 200
-
_luky_
- Příspěvky: 747
- Registrován: 28 led 2009, 00:00
- Bydliště: okres Beroun, kraj Středočeský