SIM900 Shield + Arduino и питание от аккумулятора с помощью XL6009

Viktor5252
Offline
Зарегистрирован: 21.04.2021

Доброго времени суток, собираю так называемый мобильный телефон на базе SIM900+Arduino. В качестве источника питания ставил LP603060 или  18650 , а для повышения до 5 вольт использзовал преобразователь на базе xl6009.  Сначала всё шло хорошо , но потом модуль SIM900 стал сам выключаться в момент исходящего  или входящего звонка, это происходит  не всегда , но периодически. Подумал, что проблема в питании и сменил LP603060 на 18650 ,  после повтора этой ситуации покурил даташит на преобразователь и там написано , что входящее напряжение от 5 вольт, чтобы исключить эту проблему , подключил блок питания на 5в 3а ( факту замера мультиметром - 5,5 вольт) , но он , к сожалению, опять выключился. Где искать проблему?
А также хотел опознавать входящее сообщение, путём считывания сообщения "RING" много уже лазил по интернету и находил скетчи, но ни один из них не заработал...

Пример одного из скетчей:

if (!gprsSerial.available())
        return;
 
    // Считываем очередной символ с платы
    char currSymb = gprsSerial.read();    
 
    if ('\r' == currSymb) { 
        // Получен символ перевода строки, это значит, что текущее
        // сообщение от платы завершено и мы можем на него отреагировать.
        // Если текущая строка - это RING, то значит, нам кто-то звонит
        if (!currStr.compareTo("RING")) {
            //кокетничаем 3 секунды, чтобы дать услышать звонящему гудок
            delay(3000);
            //посылаем команду на поднятие трубки
            gprsSerial.println("AT+CLCC");
            delay (100);
            char number=gprsSerial.read();
            gprsSerial.println("AT+CHUP");
            delay (100);
            Serial.println (number);
                        
        }
        currStr = "";
    } else if (currSymb != '\n') {
        // Дополняем текущую команду новым сиволом
        // При этом игнорируем второй символ в последовательности переноса
        // строки: \r\n
        currStr += String(currSymb);
    }

 

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

А зачем Вам ринг читать? Там разве нет ноги на которую просто прерывание валится при вызове? У 800-го была.

Viktor5252
Offline
Зарегистрирован: 21.04.2021

Да, там есть выход RI , при включенном состоянии на нём около 3-х вольт, а при поступление звонка падает в ноль. Это не настолько критично, просто хотел программно это сделать, т.к. вывод на шилде не разведён , придётся припаиваться к нему, а это я хотел сделать в последнюю очередь, т.к. один раз было так, что под модулем замкнул пару контактов при припаивании к не разведенному контакту провода, пришлось его полностью снимать и ставить на шилд.
Ну да ладно, это хоть как-то , но реализую. Больше волнует проблема периодического самопроизвольного выключения при входящем, исходящем звонке. т.к. не хотелось бы, чтобы при защите диплома это произошло... 

Дим-мычъ
Offline
Зарегистрирован: 20.03.2021

Viktor5252 пишет:

 подключил блок питания на 5в 3а ( факту замера мультиметром - 5,5 вольт) , но он , к сожалению, опять выключился. Где искать проблему?

Не всякий БП, на котором написано 3А таковым является. Попробуйте подключить параллельно питанию 5В

электролитический конденсатор примерно 1000мкф на напряжение от 16В . Не перепутайте полярность.

Или попробуйте ещё другой блок питания.

Viktor5252
Offline
Зарегистрирован: 21.04.2021

Да, вчера подключил 16В 2200 мкф, вроде после этого ещё ни разу не отключился. Но у меня снова проблема, а именно , при подпайке к контакту RI (который падает в ноль при входящем звонке) ,  и на ардуино уно к контакту 12 , на контакте RI  сигнал сразу падает в ноль, до тех пор пока не отпаяюсь от него. в качестве визуала на этой дорожке есть только светодиод подключенный через резостор 1кОм. ( выход RI в районе 2,7 вольт).