Официальный сайт компании Arduino по адресу arduino.cc
или слепой или тупой)где у меня ошибка?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Вс, 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
Модератор: Предлагаю в последующем, не делать коммерческих предложений в непредназначенных для этого разделах.