<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[RemoteXY community — Неадекватная работа джойстика]]></title>
	<link rel="self" href="https://forum.remotexy.com/extern.php?action=feed&amp;tid=1805&amp;type=atom" />
	<updated>2024-05-14T14:08:07Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.remotexy.com/viewtopic.php?id=1805</id>
		<entry>
			<title type="html"><![CDATA[Re: Неадекватная работа джойстика]]></title>
			<link rel="alternate" href="https://forum.remotexy.com/viewtopic.php?pid=5539#p5539" />
			<content type="html"><![CDATA[<p>А, все, поглядев внимательно нашел ошибку в коде. <br />Вместо <br />analogWrite(motor[0], 0);<br />analogWrite(motor[1], 0);<br />Было<br />analogWrite(motor[<strong>1</strong>], 0);<br />analogWrite(motor[<strong>2</strong>], 0);</p>]]></content>
			<author>
				<name><![CDATA[laybeach]]></name>
				<uri>https://forum.remotexy.com/profile.php?id=2779</uri>
			</author>
			<updated>2024-05-14T14:08:07Z</updated>
			<id>https://forum.remotexy.com/viewtopic.php?pid=5539#p5539</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Неадекватная работа джойстика]]></title>
			<link rel="alternate" href="https://forum.remotexy.com/viewtopic.php?pid=5538#p5538" />
			<content type="html"><![CDATA[<p>Решил сделать машинку на р/у. Всего 1 мотор(2 соединенных параллельно)(в дальнейшем добавлю сервопривод, поэтому руления нет), драйвер используется тот, что на машинке, плата NodeMCU CP2102.<br /> Проблема в следующем: при управлении джойстиком, если его допустим из верхнего положения(вперед) резко отпустить, то джойстик возвращается на 0, а машинка при этом продолжает движение вперед. Если же из верхнего положения джойстик плавно перемесить к центру, то все в порядке. Так же если из верхнего положения резко дернуть назад, то машинка тоже продолжает движение вперед, только с меньшей скоростью, хотя должна ехать вообще назад. Код вроде вообще простецкий, не понимаю, в чем проблема. Если делать все плавно проблем нет, стоит только начать резко управлять появляются проблемы.<br />На кнопки не обращайте внимание, забыл удалить после тестов<br /></p><div class="codebox"><pre><code> //////////////////////////////////////////////
//        RemoteXY include library          //
//////////////////////////////////////////////

// можете включить вывод отладочной информации в Serial на 115200
//#define REMOTEXY__DEBUGLOG    

// определение режима соединения и подключение библиотеки RemoteXY 
#define REMOTEXY_MODE__ESP8266WIFI_LIB_POINT
#include &lt;ESP8266WiFi.h&gt;

// настройки соединения 
#define REMOTEXY_WIFI_SSID &quot;RemoteXY&quot;
#define REMOTEXY_WIFI_PASSWORD &quot;12345678&quot;
#define REMOTEXY_SERVER_PORT 6377


#include &lt;RemoteXY.h&gt;

// конфигурация интерфейса RemoteXY  
#pragma pack(push, 1)  
uint8_t RemoteXY_CONF[] =   // 60 bytes
  { 255,4,0,0,0,53,0,17,0,0,0,31,2,106,200,200,84,1,1,3,
  0,5,52,144,49,49,129,32,46,46,37,2,26,31,1,3,135,22,22,68,
  45,26,26,0,2,31,0,1,28,134,22,22,37,45,26,26,0,2,31,0 };
  
// структура определяет все переменные и события вашего интерфейса управления 
struct {

    // input variables
  int8_t joystick_01_x; // oт -100 до 100
  int8_t joystick_01_y; // oт -100 до 100
  uint8_t button_01; // =1 если кнопка нажата, иначе =0
  uint8_t button_02; // =1 если кнопка нажата, иначе =0

    // other variable
  uint8_t connect_flag;  // =1 if wire connected, else =0

} RemoteXY;   
#pragma pack(pop)
 
/////////////////////////////////////////////
//           END RemoteXY include          //
/////////////////////////////////////////////


#define MOTOR_FORWARD D2
#define MOTOR_BACKWARD D3

unsigned char MOTOR[2] = 
{MOTOR_FORWARD, MOTOR_BACKWARD};
void Motor (unsigned char * motor, int v)
{
  if (v&gt;100) v=100;
  if (v&lt;-100) v=-100;
  
  if (v&gt;0) {
    analogWrite(motor[0], v*2.55);
  }
  else if (v&lt;0) {
    analogWrite(motor[1], (-v)*2.55);
  }
  else {
    analogWrite(motor[1], 0);
    analogWrite(motor[2], 0);
  }
}
void setup() {
  RemoteXY_Init (); 

  // TODO you setup code
  analogWriteFreq(20000);
  pinMode (MOTOR_FORWARD, OUTPUT);
  pinMode (MOTOR_BACKWARD, OUTPUT);
}

void loop() 
{ 
  RemoteXY_Handler ();
  Motor (MOTOR, RemoteXY.joystick_01_y);
  // TODO you loop code
  // используйте структуру RemoteXY для передачи данных
  // не используйте функцию delay(), вместо нее используйте RemoteXY_delay() 


}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[laybeach]]></name>
				<uri>https://forum.remotexy.com/profile.php?id=2779</uri>
			</author>
			<updated>2024-05-14T13:11:38Z</updated>
			<id>https://forum.remotexy.com/viewtopic.php?pid=5538#p5538</id>
		</entry>
</feed>
