SIM900 Shield + Arduino и питание от аккумулятора с помощью XL6009
- Войдите на сайт для отправки комментариев
Доброго времени суток, собираю так называемый мобильный телефон на базе 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); }
А зачем Вам ринг читать? Там разве нет ноги на которую просто прерывание валится при вызове? У 800-го была.
Да, там есть выход RI , при включенном состоянии на нём около 3-х вольт, а при поступление звонка падает в ноль. Это не настолько критично, просто хотел программно это сделать, т.к. вывод на шилде не разведён , придётся припаиваться к нему, а это я хотел сделать в последнюю очередь, т.к. один раз было так, что под модулем замкнул пару контактов при припаивании к не разведенному контакту провода, пришлось его полностью снимать и ставить на шилд.
Ну да ладно, это хоть как-то , но реализую. Больше волнует проблема периодического самопроизвольного выключения при входящем, исходящем звонке. т.к. не хотелось бы, чтобы при защите диплома это произошло...
подключил блок питания на 5в 3а ( факту замера мультиметром - 5,5 вольт) , но он , к сожалению, опять выключился. Где искать проблему?
Не всякий БП, на котором написано 3А таковым является. Попробуйте подключить параллельно питанию 5В
электролитический конденсатор примерно 1000мкф на напряжение от 16В . Не перепутайте полярность.
Или попробуйте ещё другой блок питания.
Да, вчера подключил 16В 2200 мкф, вроде после этого ещё ни разу не отключился. Но у меня снова проблема, а именно , при подпайке к контакту RI (который падает в ноль при входящем звонке) , и на ардуино уно к контакту 12 , на контакте RI сигнал сразу падает в ноль, до тех пор пока не отпаяюсь от него. в качестве визуала на этой дорожке есть только светодиод подключенный через резостор 1кОм. ( выход RI в районе 2,7 вольт).