Помогите разобраться с кодом, вознаграждение присутствует

Paulletto
Offline
Зарегистрирован: 23.01.2020

Ребята выручайте, греется шаговый двигатель на 5 в, скетч создавал в FL PROG так как не владею письменными языками, суть в том, что у двигателя при остановке работаю две обмотки на удержание , читал форум , что надо перевести в режим LOW вот только куда тут и что вставить в этот код не фига не пойму вообще, выручайте народ плз, всю голову уже сломал.
 
 

#include <Stepper.h>
#include <IRremote.h>
Stepper  _StM1(48,10,12,11,13);
IRrecv irRessPin2(2);
decode_results irRessPin2Res;
bool irRessPin2FE80AA55 = 0;

int _PWDC = 0;
int stM_steps1 = 0;
bool stM_Ost1 = 0;
bool stM_Out1 = 0;
bool _trgt2 = 0;
bool _trgt2I = 0;
bool _tim1I = 0;
bool _tim1O = 0;
unsigned long _tim1P = 0UL;
bool _trgs1 = 0;
void setup()
{
TCCR2A = 0x00;
TCCR2B =  0x07;
TIMSK2=0x01;
TCNT2=100;
_StM1.setSpeed(300);
pinMode(9, OUTPUT);

irRessPin2.enableIRIn();
}
void loop()
{_PWDC = 0;
 if (irRessPin2.decode(&irRessPin2Res)) {
irRessPin2FillVar(&irRessPin2Res);
irRessPin2.resume(); }else {irRessPin2ResVar(); }





//Плата:1
if(irRessPin2FE80AA55) _trgs1 = 1;
if(!(stM_Out1)) _trgs1 = 0;
if(( (_trgs1) && (_trgt2) )) {_tim1O = 1; _tim1I = 1;} else { if(_tim1I) {_tim1I = 0; _tim1P = millis();} else { if (_tim1O) {if ( _isTimer(_tim1P, 12000)) _tim1O = 0;}}}
bool  _tmp2 = _trgs1;
if (_tmp2)  { if (! _trgt2I) _trgt2 = ! _trgt2; } 
_trgt2I = _tmp2; 
digitalWrite(9, _tim1O);
_StM1.setSpeed( abs(150));
int  b1temp1_StM1;
if (_trgt2) { b1temp1_StM1 = 1;} else {b1temp1_StM1 = -1;}
if (_trgs1) { if( !stM_Ost1) {stM_steps1 =  abs(500); stM_Ost1 = 1;}}
else {stM_Ost1 = 0 ;}
if (stM_steps1 > 0 ) { _StM1.step(b1temp1_StM1); stM_steps1-- ;}
_StM1.setSpeed(300);
stM_Out1 = !(stM_steps1>0);




}
bool _isTimer(unsigned long startTime, unsigned long period )
  {
  unsigned long currentTime;
currentTime = millis();
if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));}
  }

ISR(TIMER2_OVF_vect)
{ TCNT2=100;
if(_PWDC >= 1000){asm volatile ("jmp 0x0000");}else{_PWDC = _PWDC+1;};
}
void irRessPin2FillVar(decode_results *irRessPin2Res) {
long tempRes;
byte tempType;
tempRes=(irRessPin2Res->value); 
tempType=(irRessPin2Res->decode_type); 
if(!(tempRes == -1)) {if ((tempRes == (0xFE80AA55))&&(tempType == 3)) {irRessPin2FE80AA55 = 1;} else {irRessPin2FE80AA55=0;}
}}
void irRessPin2ResVar() {
irRessPin2FE80AA55 = 0;
}

 

b707
Offline
Зарегистрирован: 26.05.2017

Паулетто, вам уже писали в прошлой теме, что у нас на сайте ФЛпрог считается ругательным словом. Зачем темы-то плодить? - тем более что для заказа работы за вознаграждение есть отдельный раздел

Paulletto
Offline
Зарегистрирован: 23.01.2020

Да у меня простая схема на самом деле , в одну сторону мотор крутится , делает определенное кол-во шагов, потом прекращает свое движение, в этом время светится светодиод, в другую сторону ровно такое кол-во шагов , светится другой светодиод, прекращение вращения, управление ик пультом с одной  кнопки , можно с двух 

b707
Offline
Зарегистрирован: 26.05.2017

Paulletto пишет:

Да у меня простая схема на самом деле , в одну сторону мотор крутится , делает определенное кол-во шагов, потом прекращает свое движение, в этом время светится светодиод, в другую сторону ровно такое кол-во шагов , светится другой светодиод, прекращение вращения, управление ик пультом с одной  кнопки , можно с двух 

ну и закажите весь скетч заново, без этой гадости - флпрога, на нормальном языке

-NMi-
Offline
Зарегистрирован: 20.08.2018

Ща тут всё подорожало, Дет и Скиф работают. Так шо бери кредит и к Онкелю.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

-NMi- пишет:

Дет и Скиф работают

Да я, вопщемта, и заказов-то никада не брал. 

Paulletto
Offline
Зарегистрирован: 23.01.2020

Понятно, проще тогда уж мотор если сгорит при стопоре , новый купить за 137 рублей ))) просто проблема в том что ток на обмотки подается и он греется так не хило , думаю сгорит

sadman41
Offline
Зарегистрирован: 19.10.2016

Шторы крутит, поди. В Проектах есть такая тема.

Paulletto
Offline
Зарегистрирован: 23.01.2020

нет , поставил клапан обратный в 100 трубу , при нажатии кнопки клапан закрывается , на другую или эту же открывается , определенное кол-во шагов выставляю и все 

b707
Offline
Зарегистрирован: 26.05.2017

Paulletto пишет:

Понятно, проще тогда уж мотор если сгорит при стопоре , новый купить за 137 рублей )))

Забавно, а вы когда про вознаграждение писали в заголовке - рассчитывали дешевле 137 рублей обойтись? :)

Paulletto
Offline
Зарегистрирован: 23.01.2020

нет не планировал , но платить там пару тысяч за код который можно минут за 30 сделать для знающего человека, извольте

b707
Offline
Зарегистрирован: 26.05.2017

Paulletto пишет:

нет не планировал , но платить там пару тысяч за код который можно минут за 30 сделать для знающего человека, извольте

Так этот человек сколько учился. чтоб стать знающим... теперь ему надо все годы учебы отбить...

Paulletto
Offline
Зарегистрирован: 23.01.2020

Знающий человек и в коде FL prog разберется и добавит туда что нужно. Пойду учить с++ и работу с ардуино )) 

sadman41
Offline
Зарегистрирован: 19.10.2016

А знающему человеку нужно в этой абракадабре разбираться чтоли? Он прям сидит такой и думает - вот отучился пять лет, ни разу мне код на FLProg не приносили на исправление. Потрачу-ка я полдня, чтобы понять его.

Paulletto
Offline
Зарегистрирован: 23.01.2020

Так коды на ардуино то одинаковые по работе с программой или нет?))

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Вот хотя бы из-за этой вот херни, которая в FLProg уже бес его знает сколько времени - в этом говне разбираться не хочется, ну разве что только за двойную ставку, и то - ещё подумать надо:

unsigned long currentTime;
currentTime = millis();
if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));}

Боремся с переполнением мы. Боремся, потому что - хотим. Не хотим правильно код генерировать, поэтому делаем, как повелось: разбрасываем по газону детские грабли и потом героически их обходим.

Paulletto
Offline
Зарегистрирован: 23.01.2020

А если через XOD делать , лучше чем FL prog ?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Лучше - руками написать, задача тривиальная, по сути.

Paulletto
Offline
Зарегистрирован: 23.01.2020

Если я руками не умею , то XOD получается ?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Paulletto пишет:

Если я руками не умею , то XOD получается ?

Не подскажу за XOD, пишу руками.

Paulletto
Offline
Зарегистрирован: 23.01.2020

Спасибо за помощь на слове хотя бы , буду учить xod и язык работы с ардуино 

b707
Offline
Зарегистрирован: 26.05.2017

Paulletto пишет:

буду учить xod и язык работы с ардуино 

зачем тратить время на очередной "костыль" - один вы уже попробовали и видите что вышло.

Учите сразу "язык работы с ардуино" - он же С++

Paulletto
Offline
Зарегистрирован: 23.01.2020

Говорят язык ардуино отличается от С++

Гриша
Offline
Зарегистрирован: 27.04.2014

Paulletto пишет:

Говорят язык ардуино отличается от С++

когда вы начнете понимать разницу, вам станет это без разницы :)))))))))))))

b707
Offline
Зарегистрирован: 26.05.2017

Paulletto пишет:

Говорят язык ардуино отличается от С++

врут

sadman41
Offline
Зарегистрирован: 19.10.2016

Paulletto пишет:

Так коды на ардуино то одинаковые по работе с программой или нет?))

Так доктор тоже человек, вроде. А когда Вы пытались рецепт прочитать или в медкарточке своей что-то понять - получалось?

bwn
Offline
Зарегистрирован: 25.08.2014

sadman41 пишет:

А когда Вы пытались рецепт прочитать или в медкарточке своей что-то понять - получалось?

Главное, чтобы в них про кадавра чёнить не было, остальное мелочи.))))