Скетч работает только после Reset

salexval
Offline
Зарегистрирован: 08.08.2022

      Всем доброго дня!
Может кто сталкивался с подобной проблемой? Собрал GSM-реле на Ардуино Nano и оно отказывается стабильно работать. Т.е. как только пропадает питание от внешнего БП 5В на вход Vin скетч не начинает опять выполняться и требуется нажатие кнопки сброса. После нажатия кнопки все нормально работает и так до следующего пропадания питания. Думал дело, как где-то обсуждалось, в кривом загрузчике, который якобы ждет данных. Снес вообще загрузчик программатором и залил скетч. Не помогло. Может кто из гуру подскажет в чем здесь прикол?

NikShel
Offline
Зарегистрирован: 21.01.2018

А почему 5В на Vin ? Если это действительно 5В, то смело на +5 !

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Без схемы и кода что-то говорить бессмысленно.

salexval
Offline
Зарегистрирован: 08.08.2022

NikShel пишет:
А почему 5В на Vin ? Если это действительно 5В, то смело на +5 !

Пардон, описка. 5В не на Vin, а на вход +5В.

salexval
Offline
Зарегистрирован: 08.08.2022

Скетч такой, взятый из пабликов:


 #include <SoftwareSerial.h>
 SoftwareSerial SIM800(3, 2);              // Выводы SIM800L Tx & Rx подключены к выводам Arduino 3 и 2
 char incomingByte; 
 String inputString;
 int relay_1 = D7;                           // Вывод управления реле 1
 int relay_2 = D8;                           // Вывод управления реле 2
 void setup() 
 {
   pinMode(relay_1, OUTPUT);                 // Установим PIN как выход на реле 1
   digitalWrite(relay_1, HIGH);              // Устанавливаем высокий уровень
   pinMode(relay_2, OUTPUT);                 // Установим PIN как выход на реле 2
   digitalWrite(relay_2, HIGH);              // Устанавливаем высокий уровень
   pinMode(5, INPUT);                        // Установим PIN как вход срабатывания датчика уровня
   Serial.begin(9600);                   
   SIM800.begin(9600); 
 while(!SIM800.available()){               // Зацикливаем и ждем инициализацию SIM800L
    SIM800.println("AT");                  // Отправка команды AT
    delay(1000);                           // Пауза
    Serial.println("Connecting…");         // Печатаем текст
    }
    Serial.println("Connected!");           // Печатаем текст
    SIM800.println("AT+CMGF=1");            // Отправка команды AT+CMGF=1
    delay(1000);                            // Пауза
    SIM800.println("AT+CNMI=1,2,0,0,0");    // Отправка команды AT+CNMI=1,2,0,0,0
    delay(1000);                            // Пауза
    SIM800.println("AT+CMGL=\"REC UNREAD\"");
 }
 void loop()
 {  
   
   if(SIM800.available()){                  // Проверяем, если есть доступные данные
       delay(100);                          // Пауза
      while(SIM800.available()){            // Проверяем, есть ли еще данные.   
      incomingByte = SIM800.read();         // Считываем байт и записываем в переменную incomingByte   
      inputString += incomingByte;            // Записываем считанный байт в массив inputString   
     }   
       delay(10);                             // Пауза        
       Serial.println(inputString);           // Отправка в "Мониторинг порта" считанные данные
       inputString.toUpperCase();             // Меняем все буквы на заглавные   
       if (inputString.indexOf("ON_1") > -1){ // Проверяем полученные данные, если ON_1 включаем реле 1 
        digitalWrite(relay_1, LOW);       
        sms(String("Relay 1 - ON"), String("+7......"));} // Отправка SMS      
       if (inputString.indexOf("OFF_1") > -1){ // Проверяем полученные данные, если OFF_1 выключаем реле 1  
        digitalWrite(relay_1, HIGH);       
        sms(String("Relay 1 - OFF"), String("+7......"));}// Отправка SMS      
       if (inputString.indexOf("ON_2") > -1){ // Проверяем полученные данные, если ON_2 включаем реле 2 
        digitalWrite(relay_2, LOW);       
        sms(String("Relay 2 - ON"), String("+7......."));}  // Отправка SMS    
       if (inputString.indexOf("OFF_2") > -1){ // Проверяем полученные данные, если OFF_2 выключаем реле 2 
        digitalWrite(relay_2, HIGH);       
        sms(String("Relay 2 - OFF"), String("+7........"));} // Отправка SMS    
        delay(1000); 
       if (inputString.indexOf("OK") == -1)    
        { SIM800.println("AT+CMGDA=\"DEL ALL\"");      
        delay(1000);}     
        inputString = "";}
 }
 void sms(String text, String phone)  // Процедура Отправка SMS
 {
   Serial.println("SMS send started");
   SIM800.println("AT+CMGS=\"" + phone + "\"");
   delay(500);
   SIM800.print(text);
   delay(500);
   SIM800.print((char)26);
   delay(500);
   Serial.println("SMS send complete");
   delay(2000);
 }

 

salexval
Offline
Зарегистрирован: 08.08.2022

BOOM пишет:

Без схемы и кода что-то говорить бессмысленно.

Схема простейшая: БП 5В/5А на вход +5В с фильтром 2000мкф. Подключение SIM800l как у всех на тех же 5В.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

salexval пишет:
Подключение SIM800l как у всех на тех же 5В.
У всех SIM800l пятью вольтами не питают.

salexval
Offline
Зарегистрирован: 08.08.2022

У меня версия SIM800 с диодами, так что проблема не в этом

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

salexval пишет:

У меня версия SIM800 с диодами, так что проблема не в этом

все так говорят, а потом оказывается что модем ну никак от 5 вольт работать не хочет :(

Update: тут целая секта, утверждающая что у них модем легко работает от слабенького БП, возможно и от 5 вольт через диоды и все хорошо, к ним обратитесь может че подскажут :)

https://arduino.ru/forum/apparatnye-voprosy/vse-o-sim800l-i-vse-chto-s-n...

P.S. Не претендую на истину, но всегда подключаю модем к 4 вольтам БП мощьностью минимум 1.5 Ампера, так что выкладывайте схему.

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

salexval. а почему скетч вставили в форум без номеров строк? - подсказывать же неудобно

Попробуйте добавить задержку в 3-5 сек между

SIM800.begin(9600);

и отсылкой первой команды для модема.

Ну а вообще, отсылать модему команды и не проверять его ответов - плохая идея, надежно такая программа работать не может.

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

salexval пишет:

      Всем доброго дня!
Может кто сталкивался с подобной проблемой? Собрал GSM-реле на Ардуино Nano и оно отказывается стабильно работать. Т.е. как только пропадает питание от внешнего БП 5В на вход Vin скетч не начинает опять выполняться и требуется нажатие кнопки сброса. После нажатия кнопки все нормально работает и так до следующего пропадания питания. Думал дело, как где-то обсуждалось, в кривом загрузчике, который якобы ждет данных. Снес вообще загрузчик программатором и залил скетч. Не помогло. Может кто из гуру подскажет в чем здесь прикол?

Прикол в кривом скетче.

salexval
Offline
Зарегистрирован: 08.08.2022

Если можно поконкретнее)

salexval
Offline
Зарегистрирован: 08.08.2022

b707 пишет:

salexval. а почему скетч вставили в форум без номеров строк? - подсказывать же неудобно

Попробуйте добавить задержку в 3-5 сек между

SIM800.begin(9600);

и отсылкой первой команды для модема.

Ну а вообще, отсылать модему команды и не проверять его ответов - плохая идея, надежно такая программа работать не может.

 

Спасибо за мысль - буду пробовать задержку, хотя кажется, что криво стартует МК, т.к. перезагрузка решает проблему, но временно)

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

salexval пишет:

Если можно поконкретнее)

А смысл?

Ведь если я даже напишу "поконкретнее", Вы же все равно этим не воспользуетесь.

salexval пишет:

b707 пишет:

salexval. а почему скетч вставили в форум без номеров строк? - подсказывать же неудобно

Попробуйте добавить задержку в 3-5 сек между

SIM800.begin(9600);

и отсылкой первой команды для модема.

Ну а вообще, отсылать модему команды и не проверять его ответов - плохая идея, надежно такая программа работать не может.

 

Спасибо за мысль - буду пробовать задержку, хотя кажется, что криво стартует МК, т.к. перезагрузка решает проблему, но временно)

Вот живой пример: а ведь основная мысль была не в задержке, а в том, что надо проверять ответы модема.

salexval
Offline
Зарегистрирован: 08.08.2022

andriano,

А смысл писать про кривой скетч?? Откуда вы знаете чем я воспользуюсь? Вы сюда людей троллить заходите?

Вот человек посоветовал сделать задержку, за что ему спасибо, - я буду пробовать.

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

salexval пишет:
Вы сюда людей троллить заходите?

Нет, не людей. 

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

salexval пишет:

andriano,

А смысл писать про кривой скетч?? Откуда вы знаете чем я воспользуюсь? Вы сюда людей троллить заходите?


то есть вы сначала сами написали, что воспользуетесь советом про задержку, а теперь пытаетесь нас убедить, что "это не точно"?
Так кто кого троллит?

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

salexval
Offline
Зарегистрирован: 08.08.2022

b707 пишет:
salexval пишет:

andriano,

А смысл писать про кривой скетч?? Откуда вы знаете чем я воспользуюсь? Вы сюда людей троллить заходите?

то есть вы сначала сами написали, что воспользуетесь советом про задержку, а теперь пытаетесь нас убедить, что "это не точно"? Так кто кого троллит? А скетч ваш кривой, не сомневайтесь. Его нужно переписывать почти с нуля, без этого никакие задержки не помогут.

Во первых, я же писал, что скетч заимствован, а во вторых, если вы такой умный, то зачем в песочницу заходить??

mixail844
Offline
Зарегистрирован: 30.04.2012

salexval пишет:

Во первых, я же писал, что скетч заимствован, а во вторых, если вы такой умный, то зачем в песочницу заходить??

то "они" пишут что "на форумах все всем помогают ,а если не хочешь помогать проходи мимо " ,теперь вот " а зачем в песочницу заходишь ? " .

 если в песочницу будут заходить одни "новички" с искренним желанием помочь , это будет сродни парадоксу про обезьян на печатных машинках и бесконечное количесво времени
salexval
Offline
Зарегистрирован: 08.08.2022

mixail844 пишет:

salexval пишет:

Во первых, я же писал, что скетч заимствован, а во вторых, если вы такой умный, то зачем в песочницу заходить??

то "они" пишут что "на форумах все всем помогают ,а если не хочешь помогать проходи мимо " ,теперь вот " а зачем в песочницу заходишь ? " .

 если в песочницу будут заходить одни "новички" с искренним желанием помочь , это будет сродни парадоксу про обезьян на печатных машинках и бесконечное количесво времени

Если заходишь, то надо помогать, а не просто говорить, что скетч кривой. Как-то так...

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

salexval пишет:

Если заходишь, то надо помогать, а не просто говорить, что скетч кривой. Как-то так...

Читаем внимательно и больше не пишем глупости - https://arduino.ru/forum/pesochnitsa-razdel-dlya-novichkov/pesochnitsa-n...

Особенно внимательно читаем п.1

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

salexval пишет:

Если заходишь, то надо помогать, а не просто говорить, что скетч кривой. Как-то так...

А "скетч кривой" - это не помощь? А что помощь? Что Вы вкладываете в слово "помогать"?

salexval
Offline
Зарегистрирован: 08.08.2022

ЕвгенийП пишет:

salexval пишет:

Если заходишь, то надо помогать, а не просто говорить, что скетч кривой. Как-то так...

А "скетч кривой" - это не помощь? А что помощь? Что Вы вкладываете в слово "помогать"?

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

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

salexval пишет:

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

так вроде в сообщении #9 разъяснено, что именно в скетче кривое. А в #13 уточнено еще раз...

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

salexval пишет:

Помогать - это указывать ошибки и по делу. 

Простите, но я не понимаю, что "не по делу" в подсказке, что виноват скетч (а не схема, не ДНК и не масонский заговор)?

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

ЕвгенийП пишет:

salexval пишет:

Помогать - это указывать ошибки и по делу. 

Простите, но я не понимаю, что "не по делу" в подсказке, что виноват скетч (а не схема, не ДНК и не масонский заговор)?

Про ДНК и масонов не точно... )))

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

salexval пишет:

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

Похоже, Вы не понимаете разницу между "скетч кривой" и "скетч содержит ошибку".

Если "скетч содержит ошибку", то эту ошибку можно исправить.

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

salexval
Offline
Зарегистрирован: 08.08.2022

andriano пишет:

Похоже, Вы не понимаете разницу между "скетч кривой" и "скетч содержит ошибку".

Если "скетч содержит ошибку", то эту ошибку можно исправить.

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

[/quote]

Вы наверно продвигаете услуги по написанию скетчей? Я правильно понял?

Скетч не может быть кривой, в вашем понимании этого слова, если он работает на 90%.

И кстати ответы модема в норме, модем работает как часы.

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

salexval пишет:

Скетч не может быть кривой, в вашем понимании этого слова, если он работает на 90%.

эт прям классика :)

Если программа "работает на 90%" - это значит она не работает вовсе.

salexval
Offline
Зарегистрирован: 08.08.2022

b707 пишет:

salexval пишет:

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

так вроде в сообщении #9 разъяснено, что именно в скетче кривое. А в #13 уточнено еще раз...

Так в сообщении 12 я и пишу, что буду пробовать задержку)

Вы подсказали -  вам за это спасибо! В отличие от остальных "спецов", которые кроме "кривого скетча" ничего сказать по делу не могут, кроме услуг написания его с нуля за деньги)  Поэтому в данной ветке столько пустой болтовни

salexval
Offline
Зарегистрирован: 08.08.2022

b707 пишет:

salexval пишет:

Скетч не может быть кривой, в вашем понимании этого слова, если он работает на 90%.

эт прям классика :)

Если программа "работает на 90%" - это значит она не работает вовсе.

"Да вы философ! Что кончали?"

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

salexval пишет:
работает на 90%
Осетрина не бывает "второй свежести" :(

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

А скечч - бывает.  Это же не программа

salexval
Offline
Зарегистрирован: 08.08.2022

ЕвгенийП пишет:

salexval пишет:
работает на 90%
Осетрина не бывает "второй свежести" :(

То-то я смотрю, что тут в основном одна "осетрина"...

полезного мало...

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

Классика жанра - получил ответ, сразу грудь колесом. А ведь ничего еще не заработало )))))

ЗЫ: при кривом скетче он и на 99% может работать, кривости это не отменяет.

https://www.youtube.com/watch?v=eIEceVe2jzI

salexval
Offline
Зарегистрирован: 08.08.2022

v258 пишет:

Классика жанра - получил ответ, сразу грудь колесом. А ведь ничего еще не заработало )))))

ЗЫ: при кривом скетче он и на 99% может работать, кривости это не отменяет.

https://www.youtube.com/watch?v=eIEceVe2jzI

Какой ответ??? Вы о чем??

С такими КВНщиками на форуме он и останется кривой, быстрее самому допилить...

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

v258 пишет:

ЗЫ: при кривом скетче он и на 99% может работать, кривости это не отменяет.

"Я Вам больше скажу" ... кривая прошивка в ЗРК "Patriot" на 100% работала, пока древняя, как Фортран, 8К14 не расхерачила американскую казарму в Дхаране унеся с собой двадцать восемь 200-ых и за сотню 300-ых. А там не такие как ТС программисты писали, уж не сомневайтесь.

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

salexval пишет:

 быстрее самому допилить...

о как интересно :)

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

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

salexval пишет:

Какой ответ??? Вы о чем??

Вот об этом:

b707 пишет:
отсылать модему команды и не проверять его ответов - плохая идея, надежно такая программа работать не может.

Ва это было сказано три дня назад. За эти три дня можно было уже пять раз сделать всё как надо и, если что-то не получится выложить код с вопросами. Но Вы предпочитаете устравивать срач и указывать нам как себя вести и что делать.

Знаете что, я человек неконфликтный и долго сраться не могу и не хочу. Я Вам по-простому скажу. Вам дали очень дельный совет. Ваше право воспользоваться, им или качать права. А если Вам не нравится здешняя публика, то другой у нас для Вас нет - просто идите нахер.

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

salexval пишет:

v258 пишет:

Классика жанра - получил ответ, сразу грудь колесом. А ведь ничего еще не заработало )))))

ЗЫ: при кривом скетче он и на 99% может работать, кривости это не отменяет.

https://www.youtube.com/watch?v=eIEceVe2jzI

Какой ответ??? Вы о чем??

С такими КВНщиками на форуме он и останется кривой, быстрее самому допилить...

Я ж говорю - классика жанра. Никакой оригинальности )))

salexval
Offline
Зарегистрирован: 08.08.2022

ЕвгенийП пишет:

salexval пишет:

Какой ответ??? Вы о чем??

Вот об этом:

b707 пишет:
отсылать модему команды и не проверять его ответов - плохая идея, надежно такая программа работать не может.

Ва это было сказано три дня назад. За эти три дня можно было уже пять раз сделать всё как надо и, если что-то не получится выложить код с вопросами. Но Вы предпочитаете устравивать срач и указывать нам как себя вести и что делать.

Знаете что, я человек неконфликтный и долго сраться не могу и не хочу. Я Вам по-простому скажу. Вам дали очень дельный совет. Ваше право воспользоваться, им или качать права. А если Вам не нравится здешняя публика, то другой у нас для Вас нет - просто идите нахер.

При полностью кривом скетче только одна дельная мысль??? Смешно..

А сколько раз проверять за эти три дня - мое личное дело.

Вообще, какая аватарка - такие и разговоры...

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

salexval пишет:

Вообще, какая аватарка - такие и разговоры...

Всегда так было.  Пойду указатель протирать...

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

salexval пишет:
Смешно..

Смейтесь.

salexval пишет:
мое личное дело

Безусловно

salexval пишет:
какая аватарка - такие и разговоры...

Повторюсь для альтернативно-понятливых.

ЕвгенийП пишет:
если Вам не нравится здешняя публика, то другой у нас для Вас нет - просто идите нахер

salexval
Offline
Зарегистрирован: 08.08.2022

ЕвгенийП пишет:

Повторюсь для альтернативно-понятливых.

ЕвгенийП пишет:
если Вам не нравится здешняя публика, то другой у нас для Вас нет - просто идите нахер

"Смени аватарку, крошка"

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

salexval, давайте поговорим как взрослые люди. Никто ж не виноват, что вы себе нафантазировали, будто по первому вашему зову все тут кинутся переписывать ваш скетч? К сожалению, жизнь часто обманывает наши ожидания...

Если вы считаете. что у нас тут форум "недружелюбный" - можете попробовать задать свой вопрос на любом вежливом западном форуме, да вот хоть на "самом главном" - arduino.cc. Будет очень интересно посмотреть, возьмутся там переписывать ваш скетч бесплатно или нет...

salexval
Offline
Зарегистрирован: 08.08.2022

b707 пишет:

salexval, давайте поговорим как взрослые люди. Никто ж не виноват, что вы себе нафантазировали, будто по первому вашему зову все тут кинутся переписывать ваш скетч? К сожалению, жизнь часто обманывает наши ожидания...

Если вы считаете. что у нас тут форум "недружелюбный" - можете попробовать задать свой вопрос на любом вежливом западном форуме, да вот хоть на "самом главном" - arduino.cc. Будет очень интересно посмотреть, возьмутся там переписывать ваш скетч бесплатно или нет...

А никто и не фантазировал, что все ринутся переписывать скетч) 

Взрослые люди или пишут конкретные недочеты ил вообще молчат.

А высказывания г-на andrianio напоминают мультик Простоквашино: мол скетч кривой, ну а поконкретнее я не скажу, потому что ты этим не воспользуешься) Нут так смысл его высказываний?

Все с этого  пошло, если что.. Ну а вам спасибо за конструктивные предложения

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

Ну ОК

Админы. думаю на этой позитивной ноте тему можно и закрыть.