или слепой или тупой)где у меня ошибка?

di12ni
Offline
Зарегистрирован: 03.01.2019

плата управления стендом для рекламы- 3 режима на 15 статуэток на серодвигателях 

1й все серводвигатели сраббатывают одновременно

2й режим крутятся поочереди с 1 по 5ю потом обновременнос 5ю по 10 потом поочереди с 11 по 15

(и тут провал. . . одновременно запускаются 13 и 12 пин на меге)
3й режим все поочереди срабатываюь
 

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C _lcd1(0x27, 16, 2);
int _dispTempLength1=0;
boolean _isNeedClearDisp1;

bool _gtv1;
bool _gtv2;
bool _gtv3;
bool _gtv4;
int _gtv5;
bool _gtv6;
bool _tim34I = 0;
bool _tim34O = 0;
unsigned long _tim34P = 0UL;
bool _tim30I = 0;
bool _tim30O = 0;
unsigned long _tim30P = 0UL;
bool _tim22I = 0;
bool _tim22O = 0;
unsigned long _tim22P = 0UL;
bool _tim26I = 0;
bool _tim26O = 0;
unsigned long _tim26P = 0UL;
bool _tim18I = 0;
bool _tim18O = 0;
unsigned long _tim18P = 0UL;
bool _tim35I = 0;
bool _tim35O = 0;
unsigned long _tim35P = 0UL;
bool _tim45I = 0;
bool _tim45O = 0;
unsigned long _tim45P = 0UL;
bool _tim31I = 0;
bool _tim31O = 0;
unsigned long _tim31P = 0UL;
bool _tim27I = 0;
bool _tim27O = 0;
unsigned long _tim27P = 0UL;
bool _tim19I = 0;
bool _tim19O = 0;
unsigned long _tim19P = 0UL;
String _mux1;
bool _tim23I = 0;
bool _tim23O = 0;
unsigned long _tim23P = 0UL;
bool _bounseInputD16S = 0;
bool _bounseInputD16O = 0;
unsigned long _bounseInputD16P = 0UL;
bool _bounseInputD18S = 0;
bool _bounseInputD18O = 0;
unsigned long _bounseInputD18P = 0UL;
bool _tim32I = 0;
bool _tim32O = 0;
unsigned long _tim32P = 0UL;
bool _bounseInputD17S = 0;
bool _bounseInputD17O = 0;
unsigned long _bounseInputD17P = 0UL;
bool _tim42I = 0;
bool _tim42O = 0;
unsigned long _tim42P = 0UL;
bool _tim20I = 0;
bool _tim20O = 0;
unsigned long _tim20P = 0UL;
bool _dms2Q0 = 0;
bool _dms2Q1 = 0;
bool _dms2Q2 = 0;
bool _tim24I = 0;
bool _tim24O = 0;
unsigned long _tim24P = 0UL;
bool _tim1I = 0;
bool _tim1O = 0;
unsigned long _tim1P = 0UL;
bool _tim28I = 0;
bool _tim28O = 0;
unsigned long _tim28P = 0UL;
int _disp2oldLength = 0;
int _disp3oldLength = 0;
bool _count2I = 0;
bool _count2_SCST = 0;
int _count2_Value = 0;
bool _count2MaxLO = 0;
bool _tim43I = 0;
bool _tim43O = 0;
unsigned long _tim43P = 0UL;
bool _count1I = 0;
int _count1_Value = 0;
bool _count1MaxLO = 0;
bool _tim25I = 0;
bool _tim25O = 0;
unsigned long _tim25P = 0UL;
String _swi1;
bool _tim33I = 0;
bool _tim33O = 0;
unsigned long _tim33P = 0UL;
bool _tim2I = 0;
bool _tim2O = 0;
unsigned long _tim2P = 0UL;
bool _tim29I = 0;
bool _tim29O = 0;
unsigned long _tim29P = 0UL;
bool _tim21I = 0;
bool _tim21O = 0;
unsigned long _tim21P = 0UL;
bool _bounseInputD15S = 0;
bool _bounseInputD15O = 0;
unsigned long _bounseInputD15P = 0UL;
int _disp1oldLength = 0;
bool _tim44I = 0;
bool _tim44O = 0;
unsigned long _tim44P = 0UL;
void setup()
{
Wire.begin();
delay(10);
pinMode(15, INPUT_PULLUP); 
pinMode(17, INPUT_PULLUP); 
pinMode(16, INPUT_PULLUP); 
pinMode(18, INPUT_PULLUP); 
pinMode(0, OUTPUT); 
pinMode(1, OUTPUT); 
pinMode(2, OUTPUT); 
pinMode(3, OUTPUT); 
pinMode(4, OUTPUT); 
pinMode(5, OUTPUT); 
pinMode(6, OUTPUT); 
pinMode(7, OUTPUT); 
pinMode(8, OUTPUT); 
pinMode(9, OUTPUT); 
pinMode(10, OUTPUT); 
pinMode(11, OUTPUT); 
pinMode(12, OUTPUT); 
pinMode(13, OUTPUT); 
pinMode(14, OUTPUT); 

_lcd1.begin();
_lcd1.backlight();
_bounseInputD15O =  digitalRead(15);
_bounseInputD18O =  digitalRead(18);
_bounseInputD16O =  digitalRead(16);
_bounseInputD17O =  digitalRead(17);
}

void loop()
{if (_isNeedClearDisp1) {_lcd1.clear(); _isNeedClearDisp1= 0;}

bool  _bounceInputTmpD15 =  (digitalRead (15));

if (_bounseInputD15S) 
    {
     if (millis() >= (_bounseInputD15P + 40)) 
         {_bounseInputD15O= _bounceInputTmpD15; _bounseInputD15S=0;}
     }
else
    {
     if (_bounceInputTmpD15 != _bounseInputD15O )
         {_bounseInputD15S=1; _bounseInputD15P = millis();} 
      } 
bool  _bounceInputTmpD18 =  (digitalRead (18));

if (_bounseInputD18S) 
    {
     if (millis() >= (_bounseInputD18P + 40)) 
         {_bounseInputD18O= _bounceInputTmpD18; _bounseInputD18S=0;}
     }
else
    {
     if (_bounceInputTmpD18 != _bounseInputD18O )
         {_bounseInputD18S=1; _bounseInputD18P = millis();} 
      } 
bool  _bounceInputTmpD16 =  (digitalRead (16));

if (_bounseInputD16S) 
    {
     if (millis() >= (_bounseInputD16P + 40)) 
         {_bounseInputD16O= _bounceInputTmpD16; _bounseInputD16S=0;}
     }
else
    {
     if (_bounceInputTmpD16 != _bounseInputD16O )
         {_bounseInputD16S=1; _bounseInputD16P = millis();} 
      } 
bool  _bounceInputTmpD17 =  (digitalRead (17));

if (_bounseInputD17S) 
    {
     if (millis() >= (_bounseInputD17P + 40)) 
         {_bounseInputD17O= _bounceInputTmpD17; _bounseInputD17S=0;}
     }
else
    {
     if (_bounceInputTmpD17 != _bounseInputD17O )
         {_bounseInputD17S=1; _bounseInputD17P = millis();} 
      } 




//Плата:1
if (_gtv1){_count1_Value = 0;} else {
if (!(_bounseInputD15O)){
if ( ! _count1I) { 
_count1I = 1;
_count1_Value = _count1_Value + 1;
}} else {
_count1I = 0;}
}
_count1MaxLO = _count1_Value >= 3; 
if((_count1_Value) == 0) {_mux1 = String("1");}
if((_count1_Value) == 1) {_mux1 = String("2");}
if((_count1_Value) == 2) {_mux1 = String("3");}
if (1) {
_dispTempLength1 = ((_mux1)).length();
if (_disp1oldLength > _dispTempLength1) {_isNeedClearDisp1 = 1;} 
_disp1oldLength = _dispTempLength1;
_lcd1.setCursor(int((16 - _dispTempLength1)/2), 0);
_lcd1.print((_mux1));
} else {
if (_disp1oldLength > 0) {_isNeedClearDisp1 = 1; _disp1oldLength = 0;} 
}
if(!(_bounseInputD16O))
{_swi1=String("on");}
else
{_swi1=String("off");}
if (1) {
_dispTempLength1 = ((_swi1)).length();
if (_disp2oldLength > _dispTempLength1) {_isNeedClearDisp1 = 1;} 
_disp2oldLength = _dispTempLength1;
_lcd1.setCursor(0, 1);
_lcd1.print((_swi1));
} else {
if (_disp2oldLength > 0) {_isNeedClearDisp1 = 1; _disp2oldLength = 0;} 
}
if((_count1_Value == 0)){_dms2Q0 = !(_bounseInputD16O);}else {_dms2Q0 = 0;}
if((_count1_Value == 1)){_dms2Q1 = !(_bounseInputD16O);}else {_dms2Q1 = 0;}
if((_count1_Value == 2)){_dms2Q2 = !(_bounseInputD16O);}else {_dms2Q2 = 0;}
_gtv4 = _dms2Q2;
_gtv3 = _dms2Q1;
_gtv2 = _dms2Q0;
_gtv1 = _count1MaxLO;
if (_gtv6){_count2_Value = 0;} else {
if (!(_bounseInputD17O)){
if ( ! _count2I) { 
_count2I = 1;
_count2_Value = _count2_Value + 1;
}} else {
_count2I = 0;}
if (!(_bounseInputD18O)){
if ( ! _count2_SCST) { 
_count2_SCST = 1;
_count2_Value = _count2_Value - 1;
}} else {
_count2_SCST = 0;}
}
_count2MaxLO = _count2_Value >= 20; 
if (1) {
_dispTempLength1 = ((((String("step ")) + ((String(_count2_Value, DEC)))))).length();
if (_disp3oldLength > _dispTempLength1) {_isNeedClearDisp1 = 1;} 
_disp3oldLength = _dispTempLength1;
_lcd1.setCursor(5, 1);
_lcd1.print((((String("step ")) + ((String(_count2_Value, DEC))))));
} else {
if (_disp3oldLength > 0) {_isNeedClearDisp1 = 1; _disp3oldLength = 0;} 
}
_gtv5 = (_count2_Value)*(50);
_gtv6 = _count2MaxLO;
if (_gtv4)
{ if (_tim1I) { if (_isTimer(_tim1P, _gtv5)) {_tim1O = 1;}} else {_tim1I =1; _tim1P = millis();}} else {_tim1O = 0; _tim1I = 0;}
if (_tim1O)
{ if (_tim2I) { if (_isTimer(_tim2P, _gtv5)) {_tim2O = 1;}} else {_tim2I =1; _tim2P = millis();}} else {_tim2O = 0; _tim2I = 0;}
if (_tim2O)
{ if (_tim18I) { if (_isTimer(_tim18P, _gtv5)) {_tim18O = 1;}} else {_tim18I =1; _tim18P = millis();}} else {_tim18O = 0; _tim18I = 0;}
if (_gtv3)
{ if (_tim31I) { if (_isTimer(_tim31P, _gtv5)) {_tim31O = 1;}} else {_tim31I =1; _tim31P = millis();}} else {_tim31O = 0; _tim31I = 0;}
if (_tim31O)
{ if (_tim32I) { if (_isTimer(_tim32P, _gtv5)) {_tim32O = 1;}} else {_tim32I =1; _tim32P = millis();}} else {_tim32O = 0; _tim32I = 0;}
digitalWrite(1, ( (_gtv2) || (_tim32O) || (_tim2O) ));
if (_tim32O)
{ if (_tim33I) { if (_isTimer(_tim33P, _gtv5)) {_tim33O = 1;}} else {_tim33I =1; _tim33P = millis();}} else {_tim33O = 0; _tim33I = 0;}
if (_tim33O)
{ if (_tim34I) { if (_isTimer(_tim34P, _gtv5)) {_tim34O = 1;}} else {_tim34I =1; _tim34P = millis();}} else {_tim34O = 0; _tim34I = 0;}
if (_tim18O)
{ if (_tim19I) { if (_isTimer(_tim19P, _gtv5)) {_tim19O = 1;}} else {_tim19I =1; _tim19P = millis();}} else {_tim19O = 0; _tim19I = 0;}
if (_tim19O)
{ if (_tim20I) { if (_isTimer(_tim20P, _gtv5)) {_tim20O = 1;}} else {_tim20I =1; _tim20P = millis();}} else {_tim20O = 0; _tim20I = 0;}
if (_tim20O)
{ if (_tim21I) { if (_isTimer(_tim21P, _gtv5)) {_tim21O = 1;}} else {_tim21I =1; _tim21P = millis();}} else {_tim21O = 0; _tim21I = 0;}
if (_tim21O)
{ if (_tim22I) { if (_isTimer(_tim22P, _gtv5)) {_tim22O = 1;}} else {_tim22I =1; _tim22P = millis();}} else {_tim22O = 0; _tim22I = 0;}
if (_tim22O)
{ if (_tim23I) { if (_isTimer(_tim23P, _gtv5)) {_tim23O = 1;}} else {_tim23I =1; _tim23P = millis();}} else {_tim23O = 0; _tim23I = 0;}
if (_tim23O)
{ if (_tim24I) { if (_isTimer(_tim24P, _gtv5)) {_tim24O = 1;}} else {_tim24I =1; _tim24P = millis();}} else {_tim24O = 0; _tim24I = 0;}
if (_tim24O)
{ if (_tim25I) { if (_isTimer(_tim25P, _gtv5)) {_tim25O = 1;}} else {_tim25I =1; _tim25P = millis();}} else {_tim25O = 0; _tim25I = 0;}
if (_tim25O)
{ if (_tim26I) { if (_isTimer(_tim26P, _gtv5)) {_tim26O = 1;}} else {_tim26I =1; _tim26P = millis();}} else {_tim26O = 0; _tim26I = 0;}
if (_tim26O)
{ if (_tim27I) { if (_isTimer(_tim27P, _gtv5)) {_tim27O = 1;}} else {_tim27I =1; _tim27P = millis();}} else {_tim27O = 0; _tim27I = 0;}
if (_tim27O)
{ if (_tim28I) { if (_isTimer(_tim28P, _gtv5)) {_tim28O = 1;}} else {_tim28I =1; _tim28P = millis();}} else {_tim28O = 0; _tim28I = 0;}
if (_tim28O)
{ if (_tim29I) { if (_isTimer(_tim29P, _gtv5)) {_tim29O = 1;}} else {_tim29I =1; _tim29P = millis();}} else {_tim29O = 0; _tim29I = 0;}
if (_tim29O)
{ if (_tim30I) { if (_isTimer(_tim30P, _gtv5)) {_tim30O = 1;}} else {_tim30I =1; _tim30P = millis();}} else {_tim30O = 0; _tim30I = 0;}
if (_tim34O)
{ if (_tim35I) { if (_isTimer(_tim35P, _gtv5)) {_tim35O = 1;}} else {_tim35I =1; _tim35P = millis();}} else {_tim35O = 0; _tim35I = 0;}
if (_tim35O)
{ if (_tim42I) { if (_isTimer(_tim42P, _gtv5)) {_tim42O = 1;}} else {_tim42I =1; _tim42P = millis();}} else {_tim42O = 0; _tim42I = 0;}
if (_tim42O)
{ if (_tim43I) { if (_isTimer(_tim43P, _gtv5)) {_tim43O = 1;}} else {_tim43I =1; _tim43P = millis();}} else {_tim43O = 0; _tim43I = 0;}
if (_tim43O)
{ if (_tim44I) { if (_isTimer(_tim44P, _gtv5)) {_tim44O = 1;}} else {_tim44I =1; _tim44P = millis();}} else {_tim44O = 0; _tim44I = 0;}
if (_tim44O)
{ if (_tim45I) { if (_isTimer(_tim45P, _gtv5)) {_tim45O = 1;}} else {_tim45I =1; _tim45P = millis();}} else {_tim45O = 0; _tim45I = 0;}
digitalWrite(14, ( (_gtv2) || (_tim45O) || (_tim30O) ));
digitalWrite(13, ( (_gtv2) || (_tim44O) || (_tim29O) ));
digitalWrite(12, ( (_gtv2) || (_tim43O) || (_tim28O) ));
digitalWrite(11, ( (_gtv2) || (_tim42O) || (_tim27O) ));
digitalWrite(10, ( (_gtv2) || (_tim35O) || (_tim26O) ));
digitalWrite(9, ( (_gtv2) || (_tim35O) || (_tim25O) ));
digitalWrite(8, ( (_gtv2) || (_tim35O) || (_tim24O) ));
digitalWrite(7, ( (_gtv2) || (_tim35O) || (_tim23O) ));
digitalWrite(6, ( (_gtv2) || (_tim35O) || (_tim22O) ));
digitalWrite(5, ( (_gtv2) || (_tim35O) || (_tim21O) ));
digitalWrite(4, ( (_gtv2) || (_tim35O) || (_tim20O) ));
digitalWrite(3, ( (_gtv2) || (_tim34O) || (_tim19O) ));
digitalWrite(0, ( (_gtv2) || (_tim31O) || (_tim1O) ));
digitalWrite(2, ( (_gtv2) || (_tim33O) || (_tim18O) ));




}
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));}
  }

 

b707
Онлайн
Зарегистрирован: 26.05.2017

похоже ни о массивах, ни о переменных, ни о процедурах вы ничего не слыхали.

Поймите, когда программу для 20 светодиодов пишут копированием 20 раз скетча для одного диода - это называется говнокод.

Именно в этом состоит главная ошибка. Искать что-либо в этой, с позволения сказать, помойке - себя не уважать. Код надо переписать полностью

 

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Судя по узорам - FLProg притащили на форум.

b707
Онлайн
Зарегистрирован: 26.05.2017

sadman41 пишет:

Судя по узорам - FLProg притащили на форум.

di12ni - если это FLProg - вам на этом форуме не помогут. Это Г. здесь не жалуют.

di12ni
Offline
Зарегистрирован: 03.01.2019

да это FlProg/ . 
3 мнения услышал, вчера засыпал и думал просто переписать .

 

Kakmyc
Offline
Зарегистрирован: 15.01.2018

di12ni пишет:

да это FlProg/ . 
3 мнения услышал, вчера засыпал и думал просто переписать .

 

Готов написать нормальный код, за отдельную благодарность. Обсуждение подробностей и сумм благодарности тут: kakmycmail_dog_gmail.com

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