Показано с 1 по 4 из 4
  1. #1
    Местный
    Регистрация
    30.07.2011
    Возраст
    35
    Сообщений
    126
    Вес репутации
    190

    По умолчанию В продолжение чтения SMS - переменные, сравнение "символов" - нужна помощь

    Значит такой набор есть: TFT 3,2" тачскрин монитор, GSM шилд на базе TC35, Arduino Mega 1280.

    Научил выводить на монитор (вырезка из общего скетча):

    Код:
      if(Serial1.available())
        {
        bgsm[bsm++]=tgsm[i++]=Serial1.read();
        if (bsm>=40)
          {
          bsm=0;
          }
        }
      myGLCD.setFont(SmallFont);
      myGLCD.print(bgsm, 5, 175);
      myGLCD.setFont(BigFont);
    Отображает нормально, правда вместо пробелов квадраты шлет, но латинские ЗАГЛАВНЫЕ буквы отчетливо.

    Для начала, самая простая задача - определить что пришла SMS

    Приходит от GSM модема строка: +CMTI: "SM", 1
    Т.е. , пришла SMS и записана по нумером 1.

    Алгоритм придумал следующий: проверяем каждую переменную массива.
    Например, в массиве в переменной под индексом i появилась эта буква, значит в переменной с индексом i+1 нужна буква M.

    SMS всегда будет записываться в 1 ячейку, но в дальнейшем надо научить видеть в какую ячейку записана и открывать.


    Проблема: как научить ардуину найти букву S? Пытался так:


    Код:
        if (bgsm[bsm]=='S')
          {
          myGLCD.print("S OK", CENTER, 120);
          Serial1.println("AT+CMGD=1");
          }

    Общий кусок -
    Код:
      if(Serial1.available())
        {
        bgsm[bsm++]=tgsm[i++]=Serial1.read();
        if (bsm>=40)
          {
          bsm=0;
          }
    
        if (bgsm[bsm]=='S')
          {
          myGLCD.print("S OK", CENTER, 120);
          Serial1.println("AT+CMGD=1");
          }
         }
    
      myGLCD.setFont(SmallFont);
      myGLCD.print(bgsm, 5, 175);
      myGLCD.setFont(BigFont);

  2. #2
    Местный
    Регистрация
    30.07.2011
    Возраст
    35
    Сообщений
    126
    Вес репутации
    190

    По умолчанию Re: В продолжение чтения SMS - переменные, сравнение "символов" - нужна помощь

    Поехали дальше - есть у меня на экране кнопка для звонка на мою мобилу. Дак вот, ардуина звонит, я сбрасываю или она сама сбрасывает через 5 сек, модем шлет NO CARRIER и условие срабатывает!!!!!! Как такое может быть?
    Пример:
    1. шлю смс, на LCD показывает "SM", 1
    2. звоню с ардуины

    Код:
        if((x>=10 & x<=260) & (y>=10 & y<=155))
          {
          myGLCD.print("Calling....", 160, 25);
          Serial1.println("ATD+7XXXXXXXXXX;"); 
          delay(12000);
          Serial1.println("AT+CHUP"); 
          }
    После сброса звонка LCD - ATD+7XXXXXXXXXX; NO CARRIER - Вот на этом месте выполняется условие, AT+CMGD=1 OK ....

  3. #3
    Новичок
    Регистрация
    27.08.2012
    Возраст
    44
    Сообщений
    15
    Вес репутации
    155

    По умолчанию Re: В продолжение чтения SMS - переменные, сравнение "символов" - нужна помощь

    Поехали дальше - есть у меня на экране кнопка для звонка на мою мобилу. Дак вот, ардуина звонит, я сбрасываю или она сама сбрасывает через 5 сек, модем шлет NO CARRIER и условие срабатывает!!!!!! Как такое может быть?
    Выложи скетч полностью

  4. #4
    Местный
    Регистрация
    30.07.2011
    Возраст
    35
    Сообщений
    126
    Вес репутации
    190

    По умолчанию Re: В продолжение чтения SMS - переменные, сравнение "символов" - нужна помощь

    600 строк)))) Нашел вроде как в чем проблема....


    Код:
      if(Serial1.available())
        {
        bgsm[bsm]=Serial1.read();
        if (bgsm[bsm]=='S')
          {
          s=bsm;
          s++;
          }
        if (bsm==s)
          {
          if (bgsm[bsm]=='M')
            {
            myGLCD.print("S OK", CENTER, 120);
            Serial1.println("AT+CMGR=1");
            delay(200);
            rsms=1;
            }
          }
         bsm++;
    }
    bsm++ надо вынести...

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •