Включение GPRS шилда

Тема в разделе "Arduino & Shields", создана пользователем Vovka41, 26 фев 2014.

  1. Vovka41

    Vovka41 Нерд

    Ребята, помогите, Недавно начал пользоваться gprs шилдом. Всё нормально, только чтобы он выполнил команду, надо включить у него питание сбоку кнопка(v 2.0). А потом он выключается после команды. Нельзя ли так сделать, чтобы он работал постоянно? Да, есть джамперы, гусь его знает для чего они нужны(
     
  2. geher

    geher Гуру

    Для включения шилда можно на соответствующий пин подать на пару секунд HIGH,
    А выключается после команды, там случайно не затесалось выключение?
     
  3. Infernium

    Infernium Нерд

  4. Vovka41

    Vovka41 Нерд

    #include <SoftwareSerial.h>

    SoftwareSerial gprsSerial(7, 8);

    int pin = 0;
    int temp = 0;

    void setup()
    {
    pinMode(temp, INPUT);
    pinMode(pin, INPUT);
    gprsSerial.begin(19200);
    delay(500);
    }

    void loop()
    {
    temp = analogRead(pin);
    delay(150);
    sendTextMessage();
    delay(40000);
    }

    /*
    * Функция отправки SMS-сообщения
    */
    void sendTextMessage() {
    // Устанавливает текстовый режим для SMS-сообщений
    gprsSerial.print("AT+CMGF=1\r");
    delay(150); // даём время на усваивание команды
    // Устанавливаем адресата: телефонный номер в международном формате
    gprsSerial.println("AT + CMGS = \"+79*****\"");
    delay(150);
    // Пишем текст сообщения
    gprsSerial.print("temp:");
    gprsSerial.println(temp);
    delay(150);
    // Отправляем Ctrl+Z, обозначая, что сообщение готово
    gprsSerial.println((char)26);
    }

    Да вроде нету. А как найти пин, на который нужно подавать напряжение?
     
  5. Vovka41

    Vovka41 Нерд

    Не нашёл нужного.
    бп выдаёт 2А 5 В. Больше мне кажется ему точно не нужно.
    И как-то работает он странно. Допустим, я одновременно подключу его к сети и включу шилд с помощью кнопки. Тогда сообщение отправляется нормально, но после он потухает и приходится снова жать на вкл.
    Как там в скетче был выбран именно 6 пин для подачи сигнала, я не знаю
     
  6. Vovka41

    Vovka41 Нерд

    Блин, слушайте, у меня теперь сим карта вообще не работает. Её не ард. не телефон не видит. Мог ли он её спалить?
     
  7. Vovka41

    Vovka41 Нерд

    Всё, восстановил на новую, спасибо мегафону. Я похоже что-то не так в коде сделал: увидел, что при подаче сигнала на 9 пин шилд включается сам, без помощи кнопки, ну и внёс одну команду в setup digitalWrite(gprspin,HIGH). Как думаете, из-за этого сим карта была очень долго под напряжением?
     
  8. Airbus

    Airbus Радиохулиган Модератор

    Не получается.
    int buttonPin = 12; // номер входа, подключенный к кнопке
    int power = 9 ; // подача питания пин 9
    void setup (){
    // инициализируем пин, подключенный к кнопке, как вход
    // пин 9 для включения шилда
    pinMode(buttonPin, INPUT);
    pinMode(power, OUTPUT);
    digitalWrite(power,HIGH); //подали питание
    delay(1000); //на 1 сек
    digitalWrite(power,LOW); //сняли питание
    delay(1000); //на 1 сек
    Serial.begin(9600);
    Serial.println("AT+CMGF=1\r"); // выставляем текстовым режим сообщений один раз
    delay(500);
    }
    void loop (){
    // считываем значения с входа кнопки если разомкнута
    if (digitalRead(buttonPin) == HIGH){
    delay(300);
    Serial.print("AT+CMGS="); // отправляем смс
    Serial.print((char)34);
    Serial.print("8*********"); // номер получателя
    Serial.print((char)34); // символ кавычки "
    Serial.print((char)13); // символ <cr> (ASCII character 13)
    delay(300);
    Serial.print("preved medved!"); // текст смс
    delay(300);
    Serial.print((char)26); // символ <ctrl-z> (ASCII character 26)
    delay(10000);

    }
    }
    В чём подвох?СМС отправляет но включается только вручную
     
    Последнее редактирование: 5 мар 2014
  9. alexxx86

    alexxx86 Гик

    Ну для начала после двух секунд 9 пин надо выставить в LOW.
    Да и вообще должно быть так digitalWrite ( power, HIGH);
    Ну а здесь написано как программно включать http://forum.amperka.ru/threads/Программное-включение-питания-gprs-shield-v1-0.2576/
     
    Последнее редактирование: 4 мар 2014
  10. Airbus

    Airbus Радиохулиган Модератор

  11. alexxx86

    alexxx86 Гик

    digitalWrite ( power, HIGH);
    delay (1000);
    digitalWrite ( power, LOW);
    Покрайней мере я делал так. Только я работал не с шилдом а отдельно gsm модулем.
    Нет, не так. Нужно спаять вместе два контакта которые имеються на шилде, к кнопке они ни какое отношение не имеют, тогда будет доступно программное включение.
     
  12. Airbus

    Airbus Радиохулиган Модератор

  13. alexxx86

    alexxx86 Гик

    Эти. Правильно, только после LOW паузу можно убрать.
     
    Airbus нравится это.
  14. Airbus

    Airbus Радиохулиган Модератор

    Всё сделал!Всё работает!Дело было в этой самой перемычке.Скетч рабочий-включает отправляет СМС!Спасибо огромное!
     
  15. Vovka41

    Vovka41 Нерд

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

    Airbus Радиохулиган Модератор

    В смысле что с кодом?У Вас несколько ошибок Что такое temp? Что такое pin?Почему им присвоены одинаковые значения?Нет условия при котором идёт отправка СМС if(тратата тратата) Что такое temp = analogRead(pin); Носом чую что temp-это из Ассемблера?Сравните с моим Скетчем и поймёте где и что.
     
    Последнее редактирование: 5 мар 2014
  17. Vovka41

    Vovka41 Нерд

    Код (Text):
    int buttonPin = 12; // номер входа, подключенный к кнопке
    int power = 9 ; // подача питания пин 9
    void setup (){
    // инициализируем пин, подключенный к кнопке, как вход
    // пин 9 для включения шилда
    pinMode(buttonPin, INPUT);
    pinMode(power, OUTPUT);
    digitalWrite(power,HIGH); //подали питание
    delay(1000); //на 1 сек
    digitalWrite(power,LOW); //сняли питание
    delay(1000); //на 1 сек
    Serial.begin(9600);
    Serial.println("AT+CMGF=1\r"); // выставляем текстовым режим сообщений один раз
    delay(500);
    }
    void loop (){
    // считываем значения с входа кнопки если разомкнута
    if (digitalRead(buttonPin) == HIGH){
    delay(300);
    Serial.print("AT+CMGS="); // отправляем смс
    Serial.print((char)34);
    Serial.print("8*********"); // номер получателя
    Serial.print((char)34); // символ кавычки "
    Serial.print((char)13); // символ <cr> (ASCII character 13)
    delay(300);
    Serial.print("preved medved!"); // текст смс
    delay(300);
    Serial.print((char)26); // символ <ctrl-z> (ASCII character 26)
    delay(10000);

    }
    }

    Скетч я понял, а он всё равно не включает автоматические шилд?
     
  18. alexxx86

    alexxx86 Гик

    Vovka41 Спаяйте вместе контакты обведённые на картинке. Screenshots_2014-03-06-09-06-32.png
     
    Vovka41 нравится это.
  19. Vovka41

    Vovka41 Нерд

    Спасибо большое alexxx86, а после пайки контактов шилд будет работать всё время, или только во во время отправки смс? И ещё одно, во тот скетч, что выше, он подойдёт для программного включения шилда, или нужно менять?
     
  20. alexxx86

    alexxx86 Гик

    Будет работать пока не выключете. Подойдёт.
     
    Vovka41 нравится это.