Пожалйста расскажите как работает джойстик. ( как можно проще ) Приведите пример кода (простой и чтобы было объяснение кода) связанный с джойстком,и покажите схему Зараннее благодарен.
Какой именно джойстик? Примерно такой? Или тот, что к компьютеру (или приставке) подключается? Если брать общее, то обычно это делается так: две оси, на каждой по потенциометру, данные с потенциометров формируют аналоговый сигнал, показывающий отклонение джойстика. Еще иногда джойстиком называют устройство из четырех кнопок, но кнопки - они кнопки и есть.
Если джойстик как в Амперке, то могу предложить такой пример. Он по изменению положения джойстика формирует команду для передачи по последовательному порту и выводит передаваемые значения на дисплей от телефона Nokia. Код (Text): //Изменение положения джойстика по оси "вперед-назад", на который реагирует скетч #define STOPZONE_SPEED 12 //Изменение положения джойстика по оси "влево-вправо", на который реагирует скетч #define STOPZONE_DIR 12 #include <PCD8544.h> signed int speedM; //передаваемое значение скорости signed int diff; // передаваемое значение разницы в скорости между правым и левым моторами static PCD8544 lcd(3,9,10,11); void setup() { Serial1.begin(57600); lcd.begin(84, 48); delay(1000); lcd.setCursor(0, 0); lcd.print("Speed: "); } void loop() { signed int newspeedM = analogRead(A1)-512; // превращаем положение джойстика в скорость signed int newdiff = 512-analogRead(A0); // превращаем положение джойстика в разность скоростей // если положение джойстика изменилось больше чем на пороговое значение if ((abs(newspeedM-speedM)>STOPZONE_SPEED)|| (abs(newdiff-diff)>STOPZONE_DIR)) { speedM=newspeedM; // запоминаем новую скорость diff=newdiff; // запоминаем новую разницу скоростей // формируется команда в последовательный порт Serial1.print("C"); Serial1.print(speedM,DEC); Serial1.print(","); Serial1.print(diff,DEC); Serial1.print(","); // данные выводятся на дисплей lcd.setCursor(0, 0); lcd.print("Speed: "); lcd.setCursor(52, 0); lcd.print(speedM); lcd.print(" "); lcd.setCursor(0, 1); lcd.print("Diff: "); lcd.setCursor(52, 1); lcd.print(diff); lcd.print(" "); delay(50); } } Подключается джойстик к двум аналоговым пинам (в этом случае A0 - влево-вправо и A1 - вперед-назад) Еще у этого джойстика есть кнопка, но я ее не задействовал. Но она просто кнопка и есть. Цепляется к любому цифровому пину.