Страница 16 из 44 ПерваяПервая ... 61011121314151617181920212226 ... ПоследняяПоследняя
Показано с 151 по 160 из 435
  1. #151
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    55
    Сообщений
    13,381
    Вес репутации
    10

    По умолчанию Re: Управление внешними устройствами с Arduino при помощи СМС

    А ты посмотри в PDF для модема перечень AT команд

  2. #152
    Продвинутый
    Регистрация
    20.05.2011
    Сообщений
    325
    Вес репутации
    240

    По умолчанию Re: Управление внешними устройствами с Arduino при помощи СМС

    Chip, я читал. Команда AT+CNMI есть, но вот с параметрами не могу разобраться. Опытным путем, выяснил, что при параметрах 3,0,0,0, когда приходит СМС, оно автоматически открывается, то же самое происходит и с параметрами 3,2,0,0

    В оригинале скетча, установлено 3,3,0,0, но это скетч для модуля SM5100B. При параметрах 3,3,0,0 просто приходит уведомление о полученном сообщении, а судя по статье http://tronixstuff.wordpress.com/201...ar-–-part-two/, в модуле SM5100B с такими параметрами СМС сразу открывается.

    Кроме того, если в скетче, вместо Serial пишу Serial1, то шилд реагирует на команды терминала. С Serial, не реагирует. Но на Arduino Mega, Serial1 это ведь пины 18 и 19, а шилд к ним никак не может быть подключен. Его ноги включены в пины 0 и 1.

    Также, с перемычками проблема. Когда использую NewSoftserial, устанавливаю ноги 2 и 3 и ставлю перемычки так:
    23.bmp (ранние скетчи по отправке СМС и звонки работают)

    При Serial1 так:
    01.bmp (могу управлять с помощью терминала)

    Вот надпись на шилде:

    TXD
    D|0|1|2|3|4|5|6|7
    RXD

    Никак не пойму, в чем загвоздка?
    Последний раз редактировалось metaforos; 21.02.2012 в 05:44.
    Liliput 629 GL, Intel Atom N230 1.6, HDD 200 GB, ОЗУ 2GB, Globalsat GT-100.

  3. #153
    Продвинутый
    Регистрация
    20.05.2011
    Сообщений
    325
    Вес репутации
    240

    По умолчанию Re: Управление внешними устройствами с Arduino при помощи СМС

    Нашел одну важную ошибку в моих скетчах (КАСАТЕЛЬНО ТОЛЬКО ARDUINO MEGA), которая также является, думаю одной из первопричин ранних неудач и дальнейших эксперементов:

    Not all pins on the Mega and Mega 2560 support change interrupts, so only the following can be used for RX: 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69

    Т.е. используя NewSoftSerial, использование пина 2 в качестве Rx - недопустимо (а я то думаю, почему Ардуина в терминал ответы не шлет?).
    Попробовал побороть эту проблему, установкой Rx на указанные пины, но все равно ничего не получилось. В результате, пришлось вообще отказаться от NewSoftSerial и работать с Serial1. ИМХО, NewSoftSerial, разрабатывалась для Arduino имеющих один последовательный порт.
    Последний раз редактировалось metaforos; 23.02.2012 в 04:18.
    Liliput 629 GL, Intel Atom N230 1.6, HDD 200 GB, ОЗУ 2GB, Globalsat GT-100.

  4. #154
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    55
    Сообщений
    13,381
    Вес репутации
    10

    По умолчанию Re: Управление внешними устройствами с Arduino при помощи СМС

    Странно что ты использовал NewSoftSerial имея на борту четыре нормальных порта

  5. #155
    Продвинутый
    Регистрация
    20.05.2011
    Сообщений
    325
    Вес репутации
    240

    По умолчанию Re: Управление внешними устройствами с Arduino при помощи СМС

    НУ вот и я так думаю... Просто до этого нужно было "дойти" (разобраться)... Учимся на своих ошибках и эксперементируем дальше
    Liliput 629 GL, Intel Atom N230 1.6, HDD 200 GB, ОЗУ 2GB, Globalsat GT-100.

  6. #156
    Продвинутый
    Регистрация
    20.05.2011
    Сообщений
    325
    Вес репутации
    240

    По умолчанию Re: Управление внешними устройствами с Arduino при помощи СМС

    Получилось. !!! Вся заморочка была в моем непонимании Serial-oв. Перекинул на Serial1 и все заработало. СМС принимает, диодами моргает.
    Liliput 629 GL, Intel Atom N230 1.6, HDD 200 GB, ОЗУ 2GB, Globalsat GT-100.

  7. #157
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    55
    Сообщений
    13,381
    Вес репутации
    10

    По умолчанию Re: Управление внешними устройствами с Arduino при помощи СМС

    Вот и отлично!

  8. #158
    Продвинутый
    Регистрация
    20.05.2011
    Сообщений
    325
    Вес репутации
    240

    По умолчанию Re: Управление внешними устройствами с Arduino при помощи СМС

    Chip, сейчас начинаю работу над скетчем, который бы охватывал весь нужный мне функционал. Посмотрел примеры скетчей и увидел, что кроме функций "setup" и "loop", можно еще использовать и "свои" функции.

    Почитал http://arduino.ru/Reference/FunctionDeclaration. Судя по описанию, название функции нужно объявлять заранее.

    Почитал http://www.compcar.ru/forum/showthread.php?t=5307, посмотрел код.
    "Свои" функции (их названия) объявлены в "loop". Т.е. можно просто в "loop" объявить выполнение "своих" функций и далее каждую функцию программировать?
    Liliput 629 GL, Intel Atom N230 1.6, HDD 200 GB, ОЗУ 2GB, Globalsat GT-100.

  9. #159
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    55
    Сообщений
    13,381
    Вес репутации
    10

    По умолчанию Re: Управление внешними устройствами с Arduino при помощи СМС

    Объявлять функции не нужно , достаточно создать ее и вызывать из любого места

    PHP код:
    void loop()   
    {   
    IR_resiver(); //вызываем 
    joystik();  //вызываем 

    //*******************
    void IR_resiver() 
    {  
      
    //твой код

    //**************** 
    void joystik() 
    {   
     
    //твой код

    Последний раз редактировалось Chip; 28.02.2012 в 01:27.

  10. #160
    Продвинутый
    Регистрация
    20.05.2011
    Сообщений
    325
    Вес репутации
    240

    По умолчанию Re: Управление внешними устройствами с Arduino при помощи СМС

    Chip, возникла некоторая проблема. Увеличил упраравление до 8-ми устройств.

    Вот скетч :

    PHP код:
      char inchar;                
      
    int relay8 11;
      
    int relay7 10;
      
    int relay6 9;
      
    int relay5 8;
      
    int relay4 7;
      
    int relay3 6;
      
    int relay2 5;
      
    int relay1 4;
       
      
    void setup()
       {
        
    pinMode(relay1OUTPUT);
        
    pinMode(relay2OUTPUT);
        
    pinMode(relay3OUTPUT);
        
    pinMode(relay4OUTPUT);
        
    pinMode(relay5OUTPUT);
        
    pinMode(relay6OUTPUT);
        
    pinMode(relay7OUTPUT);
        
    pinMode(relay8OUTPUT);
        
    digitalWrite(relay1LOW);
        
    digitalWrite(relay2LOW);
        
    digitalWrite(relay3LOW);
        
    digitalWrite(relay4LOW);
        
    digitalWrite(relay5LOW);
        
    digitalWrite(relay6LOW);
        
    digitalWrite(relay7LOW);
        
    digitalWrite(relay8LOW);
        
        
    Serial1.begin(9600); 
        
    delay(30000); 
        
    Serial1.println("AT+CMGF=1\r"); 
        
    delay(200);
        
    Serial1.println("AT+CNMI=3,0,0,0\r"); 
        
    delay(200);
       }
      
      
    void loop() 
    {
        if(
    Serial1.available() >0)

    {
     
    inchar=Serial1.read();    
     if (
    inchar=='#')
      {
       
    delay(10);
       
    inchar=Serial1.read();  
       if (
    inchar=='a')
        {
         
    delay(10);
         
    inchar=Serial1.read();
         if (
    inchar=='0')
          {
           
    digitalWrite(relay1LOW);
          } 
           else if (
    inchar=='1')
            {
             
    digitalWrite(relay1HIGH);
            }
       
       
    delay(10);
       
    inchar=Serial1.read();  
       if (
    inchar=='b')
        {
         
    inchar=Serial1.read();
         if (
    inchar=='0')
          {
           
    digitalWrite(relay2LOW);
          } 
           else if (
    inchar=='1')
            {
             
    digitalWrite(relay2HIGH);
            }

       
    delay(10);
       
    inchar=Serial1.read();  
       if (
    inchar=='c')
        {
         
    inchar=Serial1.read();
         if (
    inchar=='0')
          {
           
    digitalWrite(relay3LOW);
          } 
           else if (
    inchar=='1')
            {
             
    digitalWrite(relay3HIGH);
            }

       
    delay(10);
       
    inchar=Serial1.read();  
       if (
    inchar=='d')
        {
         
    inchar=Serial1.read();
         if (
    inchar=='0')
          {
           
    digitalWrite(relay4LOW);
          } 
           else if (
    inchar=='1')
            {
             
    digitalWrite(relay4HIGH);
            }
            
       
    delay(10);
       
    inchar=Serial1.read();  
       if (
    inchar=='e')
        {
         
    inchar=Serial1.read();
         if (
    inchar=='0')
          {
           
    digitalWrite(relay5LOW);
          } 
           else if (
    inchar=='1')
            {
             
    digitalWrite(relay5HIGH);
            }

       
    delay(10);
       
    inchar=Serial1.read();  
       if (
    inchar=='f')
        {
         
    inchar=Serial1.read();
         if (
    inchar=='0')
          {
           
    digitalWrite(relay6LOW);
          } 
           else if (
    inchar=='1')
            {
             
    digitalWrite(relay6HIGH);
            }
            
       
    delay(10);
       
    inchar=Serial1.read();  
       if (
    inchar=='g')
        {
         
    inchar=Serial1.read();
         if (
    inchar=='0')
          {
           
    digitalWrite(relay7LOW);
          } 
           else if (
    inchar=='1')
            {
             
    digitalWrite(relay7HIGH);
            }
            
       
    delay(10);
       
    inchar=Serial1.read();  
       if (
    inchar=='h')
        {
         
    inchar=Serial1.read();
         if (
    inchar=='0')
          {
           
    digitalWrite(relay8LOW);
          } 
           else if (
    inchar=='1')
            {
             
    digitalWrite(relay8HIGH);
            }

        
    delay(10);
        }
        }
        
    Serial1.println("AT+CMGD=1,4\r"); // delete all SMS
        
    }
        }
        }
        }
        }
        }
        }
    }


    Когда включаю всего 6 устройств (#a1b1c1d1e1f1g0h0), все работает нормально. Когда включаю 7 или 8 устройств (#a1b1c1d1e1f1g1h1), они включаются, но шилд отключается. С кнопки его не включить. Только отсоединение и подсоединение питания. При этом, Ардуина питается от компьютерного БП (12В) и устройства (нагрузка) физически не подключена. Кроме того, єто происходит именно тогда, когда включаю "g1" и "h1"
    Liliput 629 GL, Intel Atom N230 1.6, HDD 200 GB, ОЗУ 2GB, Globalsat GT-100.

Страница 16 из 44 ПерваяПервая ... 61011121314151617181920212226 ... ПоследняяПоследняя

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

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

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

Ваши права

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