<?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=65&amp;type=atom" />
	<updated>2017-01-29T08:03:02Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.remotexy.com/viewtopic.php?id=65</id>
		<entry>
			<title type="html"><![CDATA[помогите плиз]]></title>
			<link rel="alternate" href="https://forum.remotexy.com/viewtopic.php?pid=157#p157" />
			<content type="html"><![CDATA[<p>Привет<br />Сделал авто в топике связь лежит его скетч на реле и мигающие светодиоды.<br />Все работало.<br />Поменял реле на мотор драйв l298N<br />взял ваш пример все соеденил добавил мигалку.<br />Есть проблема машинка не едет работает либо правая сторона либо левая - короче все криво косо.<br />Убрал мигалку - все едет отлично.</p><p>Опытным путем нашел строку<br />Timer1.initialize(125000);<br />если ее закоментить то все едет но диоды не мигают просто горят</p><p>Может кто помочь ? в чем тут дело - сам начинающий - еще не рублю )</p><p>Андрей</p><p>/////////////////////////////////////////////&nbsp; <br />//&nbsp; &nbsp; &nbsp; &nbsp; RemoteXY include library&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//&nbsp; <br />/////////////////////////////////////////////&nbsp; </p><p>/* определение режима соединения и подключение библиотеки RemoteXY */&nbsp; <br />#define REMOTEXY_MODE__SOFTWARESERIAL&nbsp; <br />#include &lt;SoftwareSerial.h&gt;&nbsp; <br />#include &lt;RemoteXY.h&gt; <br />#include &lt;TimerOne.h&gt; </p><p>/* настройки соединения */&nbsp; <br />#define REMOTEXY_SERIAL_RX 2&nbsp; <br />#define REMOTEXY_SERIAL_TX 3&nbsp; <br />#define REMOTEXY_SERIAL_SPEED 9600&nbsp; </p><p>uint8_t&nbsp; blink_loop = 0;<br />uint8_t&nbsp; blink_mode = 0;<br />uint8_t&nbsp; modes_count = 0;</p><p>void timerIsr()<br />{<br />&nbsp; if (&nbsp; blink_mode &amp; 1 &lt;&lt; (blink_loop &amp; 0x07) ) digitalWrite(11, HIGH), digitalWrite(12, HIGH);<br />&nbsp; else&nbsp; digitalWrite(11, LOW), digitalWrite(12, LOW);<br />&nbsp; blink_loop++;<br />}</p><p>/* конфигурация интерфейса&nbsp; */ <br />#pragma pack(push, 1) <br />uint8_t RemoteXY_CONF[] = <br />&nbsp; { 2,0,10,0,6,13,0,5,32,58<br />&nbsp; ,13,37,37,2 }; <br />&nbsp; &nbsp;<br />/* структура определяет все переменные вашего интерфейса управления */ <br />struct { </p><p>&nbsp; &nbsp; /* input variable */<br />&nbsp; int8_t joystick_1_x; /* =-100..100 координата x положения джойстика */<br />&nbsp; int8_t joystick_1_y; /* =-100..100 координата y положения джойстика */</p><p>&nbsp; &nbsp; /* other variable */<br />&nbsp; uint8_t connect_flag;&nbsp; /* =1 if wire connected, else =0 */</p><p>} RemoteXY; <br />#pragma pack(pop) </p><p>/////////////////////////////////////////////&nbsp; <br />//&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;END RemoteXY include&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //&nbsp; <br />/////////////////////////////////////////////&nbsp; </p><p>/* определяем пины управления правым мотором */ <br />#define PIN_MOTOR_RIGHT_UP 5 <br />#define PIN_MOTOR_RIGHT_DN 4 <br />#define PIN_MOTOR_RIGHT_SPEED 9 </p><p>/* определяем пины управления левым мотором */ <br />#define PIN_MOTOR_LEFT_UP 7 <br />#define PIN_MOTOR_LEFT_DN 6 <br />#define PIN_MOTOR_LEFT_SPEED 10 </p><p>/* определяем пин управления светодиодом */ <br />//#define PIN_LED 11</p><br /><p>/* определяем два массива с перечислением пинов для каждого мотора */ <br />unsigned char RightMotor[3] =&nbsp; <br />&nbsp; {PIN_MOTOR_RIGHT_UP, PIN_MOTOR_RIGHT_DN, PIN_MOTOR_RIGHT_SPEED}; <br />unsigned char LeftMotor[3] =&nbsp; <br />&nbsp; {PIN_MOTOR_LEFT_UP, PIN_MOTOR_LEFT_DN, PIN_MOTOR_LEFT_SPEED}; </p><p>/* <br />&nbsp; &nbsp;управление скоростью мотора <br />&nbsp; &nbsp;motor - ссылка на массив пинов <br />&nbsp; &nbsp;v - скорость мотора, может принимать значения от -100 до 100 <br />*/ <br />void Wheel (unsigned char * motor, int v) <br />{ <br />&nbsp; if (v&gt;100) v=100; <br />&nbsp; if (v&lt;-100) v=-100; <br />&nbsp; if (v&gt;0) { <br />&nbsp; &nbsp; digitalWrite(motor[0], HIGH); <br />&nbsp; &nbsp; digitalWrite(motor[1], LOW); <br />&nbsp; &nbsp; analogWrite(motor[2], v*2.55); <br />&nbsp; } <br />&nbsp; else if (v&lt;0) { <br />&nbsp; &nbsp; digitalWrite(motor[0], LOW); <br />&nbsp; &nbsp; digitalWrite(motor[1], HIGH); <br />&nbsp; &nbsp; analogWrite(motor[2], (-v)*2.55); <br />&nbsp; } <br />&nbsp; else { <br />&nbsp; &nbsp; digitalWrite(motor[0], LOW); <br />&nbsp; &nbsp; digitalWrite(motor[1], LOW); <br />&nbsp; &nbsp; analogWrite(motor[2], 0); <br />&nbsp; } <br />} </p><p>void setup() <br />{ <br />&nbsp; /* инициализация модуля RemoteXY */ <br />&nbsp; RemoteXY_Init (); <br />&nbsp; /* инициализация пинов */ <br />&nbsp; pinMode (PIN_MOTOR_RIGHT_UP, OUTPUT); <br />&nbsp; pinMode (PIN_MOTOR_RIGHT_DN, OUTPUT); <br />&nbsp; pinMode (PIN_MOTOR_LEFT_UP, OUTPUT); <br />&nbsp; pinMode (PIN_MOTOR_LEFT_DN, OUTPUT); <br />//&nbsp; pinMode (PIN_LED, OUTPUT); <br />&nbsp; pinMode(11, OUTPUT);<br />&nbsp; pinMode(12, OUTPUT);<br />&nbsp; blink_mode = 0B00000000;<br />&nbsp; Timer1.initialize(125000);<br />&nbsp; Timer1.attachInterrupt( timerIsr );</p><p>&nbsp; /* инициализация модуля RemoteXY */ <br />&nbsp; RemoteXY_Init (); </p><p>} </p><p>void loop() <br />{ <br />&nbsp; blink_mode = 0B00001111;<br />&nbsp; <br />&nbsp; /* обработчик событий модуля RemoteXY */ <br />&nbsp; RemoteXY_Handler (); </p><p>&nbsp; /* управляем пином светодиода */ <br />//&nbsp; digitalWrite (PIN_LED, (RemoteXY.switch_1==0)?LOW:HIGH); </p><p>&nbsp; /* управляем правым мотором */ <br />&nbsp; Wheel (RightMotor, RemoteXY.joystick_1_y - RemoteXY.joystick_1_x); <br />&nbsp; /* управляем левым мотором */ <br />&nbsp; Wheel (LeftMotor, RemoteXY.joystick_1_y + RemoteXY.joystick_1_x); <br />}</p>]]></content>
			<author>
				<name><![CDATA[cadetandrey]]></name>
				<uri>https://forum.remotexy.com/profile.php?id=82</uri>
			</author>
			<updated>2017-01-29T08:03:02Z</updated>
			<id>https://forum.remotexy.com/viewtopic.php?pid=157#p157</id>
		</entry>
</feed>
