#arduino No cześć, mam problem z joystickiem w arduino. W swojej centralnej pozycji zwraca on X i Y jako wartość 1023, przy skrajnym ich położeniu 0 - przez co mogę sterować tylko w dwóch kierunkach, bo przy dwóch pozostałych wartości są takie same jak przy domyślnym położeniu joysticka.
Ma ktoś pomysł, co może być problemem? Dałoby się to jakoś skalibrować, żeby w centralnym położeniu miał te swoje 512 i reagował na ruch we wszystkich kierunkach?
GND podpięte do masy, +5V do 5V, VRx do pinu A0, VRy do pinu A1 i jeszcze SW do pinu 2. Mam do tego jeszcze podłączony wyświetlacz LCD 2x16, na którym wyświetlam koordynaty joysticka.
wystarczyło ustawić piny A0 i A1 jako "OUTPUT" ( ͡°͜ʖ͡°)
@morganblak: raczej jako INPUT... oraz wpis do portu 0 (by wyłączyć pullup)
Wiesz dlaczego było źle? Dlaczego "w pozycji środkowej" był "maks" z ADC? Bo miałeś włączonego pull-upa (port jako input z pullupem do +5v) i w pozycji środkowej potencjometru - potencjometr "nie ściągał" do masy, ani nie wymuszał +5v, bo i tak pullup wymuszał
No cześć, mam problem z joystickiem w arduino. W swojej centralnej pozycji zwraca on X i Y jako wartość 1023, przy skrajnym ich położeniu 0 - przez co mogę sterować tylko w dwóch kierunkach, bo przy dwóch pozostałych wartości są takie same jak przy domyślnym położeniu joysticka.
Ma ktoś pomysł, co może być problemem? Dałoby się to jakoś skalibrować, żeby w centralnym położeniu miał te swoje 512 i reagował na ruch we wszystkich kierunkach?
GND podpięte do masy, +5V do 5V, VRx do pinu A0, VRy do pinu A1 i jeszcze SW do pinu 2.
Mam do tego jeszcze podłączony wyświetlacz LCD 2x16, na którym wyświetlam koordynaty joysticka.
Kod:
#include
#include
LiquidCrystalI2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
void setup()
{
analogReference(INTERNAL);
lcd.begin(16,2); // Inicjalizacja LCD 2x16
lcd.backlight(); // zalaczenie podwietlenia
pinMode(2, INPUTPULLUP);
}
Problem był jednak w kodzie, wystarczyło ustawić piny A0 i A1 jako "OUTPUT" ( ͡° ͜ʖ ͡°)
@morganblak: raczej jako INPUT... oraz wpis do portu 0 (by wyłączyć pullup)
Wiesz dlaczego było źle? Dlaczego "w pozycji środkowej" był "maks" z ADC?
Bo miałeś włączonego pull-upa (port jako input z pullupem do +5v) i w pozycji środkowej potencjometru - potencjometr "nie ściągał" do masy, ani nie wymuszał +5v, bo i tak pullup wymuszał
Okej, dzięki za wytłumaczenie.
Teraz już wszystko rozumiem.