Wpis z mikrobloga

#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?
  • 8
@michal0007: @JakNicOko: @hrumque:

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, INPUT
PULLUP);

}
Pobierz morganblak - @michal0007: @JakNicOko: @hrumque: 

GND podpięte do masy, +5V do 5V, ...
źródło: comment_Mns0kKX68lICOuuONzqRiohNR4VMVQev.jpg
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ł