или слепой или тупой)где у меня ошибка?
- Войдите на сайт для отправки комментариев
Вс, 10/03/2019 - 00:28
плата управления стендом для рекламы- 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));}
}
похоже ни о массивах, ни о переменных, ни о процедурах вы ничего не слыхали.
Поймите, когда программу для 20 светодиодов пишут копированием 20 раз скетча для одного диода - это называется говнокод.
Именно в этом состоит главная ошибка. Искать что-либо в этой, с позволения сказать, помойке - себя не уважать. Код надо переписать полностью
Судя по узорам - FLProg притащили на форум.
Судя по узорам - FLProg притащили на форум.
di12ni - если это FLProg - вам на этом форуме не помогут. Это Г. здесь не жалуют.
да это FlProg/ .
3 мнения услышал, вчера засыпал и думал просто переписать .
да это FlProg/ .
3 мнения услышал, вчера засыпал и думал просто переписать .
Готов написать нормальный код, за отдельную благодарность. Обсуждение подробностей и сумм благодарности тут: kakmycmail_dog_gmail.com
Модератор: Предлагаю в последующем, не делать коммерческих предложений в непредназначенных для этого разделах.