проблема библиотеки - ФОРУМ ДВ Робот dvrobot.ru
Четверг, 18.10.2018, 16:11
Главная Мой профиль Регистрация Выход
  • НАШ МАГАЗИН
  • Вы вошли как Гость | Группа "Гости"Приветствую Вас, Гость
    [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
    • Страница 1 из 1
    • 1
    Модератор форума: Serg, GRACH  
    ФОРУМ ДВ Робот dvrobot.ru » DV ROBOT » Arduino - вопросы и ответы. » проблема библиотеки
    проблема библиотеки
    Artemka1858Дата: Суббота, 18.05.2013, 04:54 | Сообщение # 1
    3.5 Вольт
    Группа: Пользователи
    Сообщений: 16
    Репутация: 0
    Статус: Offline
    Взял на просторах инета скетч для датчика DHT11. При компиляции выдает вот такие ошибки:
    
    Цитата
    sketch_may17a:20: error: 'dht' does not name a type
    sketch_may17a.ino: In function 'void setup()':
    sketch_may17a:67: error: 'DHT' was not declared in this scope
    sketch_may17a.ino: In function 'void loop()':
    sketch_may17a:115: error: 'DHT' was not declared in this scope
    sketch_may17a.ino: In function 'void button1()':
    sketch_may17a:270: error: 'DHT' was not declared in this scope

    Вот кусок кода
    Код
    #include <SoftwareSerial.h>
    #include <dht.h>
    #include <LiquidCrystal.h>
    LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
       
       
    //для DHT11
    #define dht_dpin A5
    dht DHT;
       

    int i=0;
    char time[30]="";  
    char timehors[2]="";  
    char timemin[2]="";  
    char timedate[8]="";  
    int hrs=0;  
    int minuta=0;  
    boolean isMessage=false;  
    unsigned long previousTimer=0;
    unsigned interval=1000;

    Ругается на строчку "dht DHT;". Библиотека лежит там где положено. Скачивал с разных источников. Контроллер Atmega168, плата ардуино уно.
    Спасибо за помощь.
     
    Ivan-771Дата: Суббота, 18.05.2013, 06:16 | Сообщение # 2
    5 Вольт
    Группа: Пользователи
    Сообщений: 39
    Репутация: 0
    Статус: Offline
    Халтурный подход, к copy-paste  выходит боком.
     
    SergДата: Суббота, 18.05.2013, 07:20 | Сообщение # 3
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    А зачем нужна строка, на которую он ругается?
     
    Artemka1858Дата: Суббота, 18.05.2013, 18:41 | Сообщение # 4
    3.5 Вольт
    Группа: Пользователи
    Сообщений: 16
    Репутация: 0
    Статус: Offline
    То есть ни кто не знает ? зачем ента строка
     
    SergДата: Суббота, 18.05.2013, 19:10 | Сообщение # 5
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    Зачем эта строка- дело понятное. Но вполне можно и без нее обойтись. Не мешало бы библиотеку и скетч сюда выложить, если хотите, что бы вам помогли.
     
    SergДата: Суббота, 18.05.2013, 23:18 | Сообщение # 6
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    Вот так не пробовали?

    Код

    include <SoftwareSerial.h>  
      #include <dht.h>  
      #include <LiquidCrystal.h>  
      LiquidCrystal lcd(12, 11, 5, 4, 3, 2);  
          
          
      //для DHT11  
      #define dht_dpin A5  
      #define dht DHT
          
       
      int i=0;  
      char time[30]="";   
      char timehors[2]="";   
      char timemin[2]="";   
      char timedate[8]="";   
      int hrs=0;   
      int minuta=0;   
      boolean isMessage=false;   
      unsigned long previousTimer=0;  
      unsigned interval=1000;

     
    Artemka1858Дата: Воскресенье, 19.05.2013, 00:29 | Сообщение # 7
    3.5 Вольт
    Группа: Пользователи
    Сообщений: 16
    Репутация: 0
    Статус: Offline
    Вот полный скетч.
    Код
    // Пины:
    // GPRS: 7, 8
    // Дисплей: 2, 3, 4, 5, 11, 12 (13 - подсветка)
    // Реле: 9, 10
    // Датчик DHT11: А5
    // Датчики влажности почвы: А2, А3
    // Датчик температуры воды: А1
    // Кнопки: А0
       
    //Подключаем библиотеки
    #include <SoftwareSerial.h>
    #include <dht.h>
    #include <LiquidCrystal.h>
    LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
       
       
    //для DHT11
    #define dht_dpin A5
    dht DHT;
       
    //Переменные для GPRS-модуля
    SoftwareSerial gprsSerial(7, 8);
    int i=0;
    char msg[160]=""; //входящее смс-сообщение
    char phoneNum[20]=""; //номер телефона
    char phoneNumOk[20]="7912ХХХХХХХ";
    char time[30]=""; //текущее время
    char timehors[2]=""; //текущий час
    char timemin[2]=""; //текущая минута
    char timedate[8]=""; //текущая дата
    int hrs=0; //текущий час int
    int minuta=0; //текущая минута int
    boolean isMessage=false; //ответ с модуля является сообщением
    unsigned long previousTimer=0;
    unsigned interval=1000;
       
       
    int soil1Pin = 3; //пин датчика почвы 1
    int soil2Pin = 2; //пин датчика почвы 2
    int relay1Pin = 9; //пин реле 1
    int relay2Pin = 10; //пин реле 2
       
       
    //состояния для реле
    int ON = 0;
    int OFF = 1;
       
    double normTemp = 30.0; //допустимая температура воды
    int soilMax = 900; // влажность почвы
    int button = 0; //состояние кнопок
    int isSettings = 0; //режим настроек
       
    char* myStat1[]={"-------------------", "-------------------", "-------------------",
    "-------------------", "-------------------", "-------------------", "-------------------", "-------------------", "-------------------", "-------------------"};
    char* myStat2[]={"-------------------", "-------------------", "-------------------",
    "-------------------", "-------------------", "-------------------", "-------------------", "-------------------", "-------------------", "-------------------"};
       
       
    void setup()
    {
         digitalWrite(relay1Pin, OFF);
         digitalWrite(relay2Pin, OFF);  
         pinMode(relay1Pin, OUTPUT);  
         pinMode(relay2Pin, OUTPUT);
       
         DHT.read11(dht_dpin);
       
         Serial.begin(9600);
         delay(2000);
         gprsSerial.begin(19200);                
         delay(300);
         
         lcd.begin(16, 2);
         
    }
       
       
    double GetWaterTemp() //Получение температуры воды в баке
    {
       double temp;
       temp = log(((10240000/analogRead(1)) - 10000));
       temp = 1 / (0.001129148 + (0.000234125 * temp) + (0.0000000876741 * temp * temp * temp));
       temp = temp - 273.15;
       return temp;
    }
       
    void loop()
    {
       
       //КОД ДЛЯ РАБОТЫ С GPRS-МОДУЛЕМ:
       
       unsigned long currentTimer = millis();  
       if ((currentTimer - previousTimer) > interval) {
         previousTimer = currentTimer;
         gprsSerial.print("AT+CCLK?\r");  //Запрашиваем время каждую секунду
       }
       
       if (gprsSerial.available()){    //Считываем время, а также СМС и т.д.
         char buf = gprsSerial.read();
         //Serial.print(buf);
         if ('\r' == buf) {
           msg[i++] ='\0';  //Добавляем нуль терминатор
           if (isMessage) {
             //если текущая строка - SMS-сообщение,
             //отреагируем на него соответствующим образом
             //Serial.println(phoneNum); //Печатаем номер телефона с которого пришла СМС
             //Serial.println(msg);  //Печатаем текст СМС
                     //lcd.clear();
                     //lcd.print(phoneNum);
                     //lcd.setCursor(0, 1);
                     //lcd.print(msg);
                     //delay(3000);
                     if (String(phoneNum).toInt() == String(phoneNumOk).toInt()) {
                       String textSms = String("Temp v teplice:")+int((DHT.temperature))+String("C. Temp vody: ")+int(GetWaterTemp())+String("C");
                       sendTextMessage(textSms);
                       //delay(3000);
                     }  
             isMessage = false;
           }
           else {
             if (!strncmp("+CMT",msg,4)) {
               int i=0;
               //если текущая строка начинается с "+CMT",
               //то следующая строка является сообщением
               isMessage = true;
               for (i=8;(msg[i]!=',') && (i<30);i++) {  //Выбираем из первой строки сообщения номер телефона с которого оно было отправлено
               }
               msg[i-1]='\0';          //Добавляем нуль терминатор в конец строки с номером телефона
               strcpy(phoneNum,msg+8); //Копируем номер телефона в другую строку
             }
       
             if (!strncmp("+CCLK",msg,5)) {  //Делаем все то же самое с последовательностью символов начинающейся на +CCLK
               int i=0;                    //Эта последовательность является ответом шилда на запрос текущего времени
               for (i=8;(msg!='"') && (i<40);i++) {  //Выделяем из ответа строку содержащую текущее время
               }
               msg[i-3]='\0';
               strcpy(time,msg+8);
               //Serial.println(time);   //и печатаем ее    
                       
                       //Выделяем из строки текущий час и переводим в число
                   int k=0;
               for (k=9; (k<11);k++) {
               }
               time[k]='\0';
               strcpy(timehors,time+9);
               //Serial.println(timehors);    
                       hrs = String(timehors).toInt();
                       //Serial.println(hrs);
                       
                       int l=0;
               for (l=12; (l<14);l++) {
               }
               time[l]='\0';
               strcpy(timemin,time+12);
               //Serial.println(timemin);    
                       minuta = String(timemin).toInt();
                       //Serial.println(minuta);
                       
                       int m=0;
               for (m=0; (m<8);m++) {
               }
               time[m]='\0';
               strcpy(timedate,time);
               //Serial.println(timedate);
                       
             }
           }
           i=0;          
         }
         else if ('\n' != buf) {
           msg[i++] = buf;
         }    
       }
       
       //________________________________
       //КОД ДЛЯ ПРОВЕРКИ НАЖАТИЯ КНОПОК:
       
       button=analogRead(0);//считываем сигнал с пина 0
             
         if(button>675&&button<690)
         {
           //действие первой кнопки
           button1();
         }
             
           if(button>845&&button<855)
         {
           // действие второй кнопки
           button2();
         }
             
         if(button>920&&button<935)
         {
           // действие третьей кнопки
           button3();
         }
       
       //__________________________    
       //КОД ДЛЯ ПРОВЕРКИ ДАТЧИКОВ:
       
       if(analogRead(soil1Pin)>soilMax/*&&hrs==18*/)
       {
         if(GetWaterTemp()>normTemp)
         {
           //поливаем первую зону
             //String textSms = String("Poliv Zona 1. Vlaga:")+int(analogRead(soil1Pin))+String(" Temp vody: ")+int(GetWaterTemp())+String("C");
             //sendTextMessage(textSms);
             digitalWrite(relay1Pin, ON);
             lcd.clear();
             lcd.print("Polivaem zonu 1");
             lcd.setCursor(0, 1);
             lcd.print(time);
             for (int i = 9; i > 0; i--){
               myStat1 = myStat1[i-1];
             }
             myStat1[0] = time;
             
             long_delay(10);
             digitalWrite(relay1Pin, OFF);
             lcd.clear();
         }
       }
       
       if(analogRead(soil2Pin)>soilMax/*&&hrs>18*/)
       {
         if(GetWaterTemp()>normTemp)
         {
           //поливаем вторую зону
             //String textSms = String("Poliv Zona 2. Vlaga:")+int(analogRead(soil2Pin))+String(" Temp vody: ")+int(GetWaterTemp())+String("C");
             //sendTextMessage(textSms);
             digitalWrite(relay2Pin, ON);
             lcd.clear();
             lcd.print("Polivaem zonu 2");
             lcd.setCursor(0, 1);
             lcd.print(time);
             for (int i = 9; i > 0; i--){
               myStat2 = myStat2[i-1];
             }
             myStat2[0] = time;
             long_delay(10);
             digitalWrite(relay2Pin, OFF);
             lcd.clear();
         }
       }
       
                       
    }
       
       //__________________
       //ФУНКЦИИ:
       
    void button1()
    {
       if(isSettings == 0) {
         //здесь будет вывод краткой статистики на дисплей
         lcd.clear();
         lcd.print("Knopka 1");
         delay(1000);
         lcd.clear();
         lcd.setCursor(0, 0);
         lcd.print("1:");
         lcd.print(analogRead(soil1Pin));
         lcd.print(" 2:");
         lcd.print(analogRead(soil2Pin));
         lcd.setCursor(0, 1);
         lcd.print("Vod:");
         lcd.print(GetWaterTemp());
         lcd.print(" Tep:");
         lcd.print(DHT.temperature);
         delay(5000);
       }
       
       if(isSettings == 1) {
         editSoilMinus();
         delay(300);
       }
       
       if(isSettings == 2) {
         editSoilMinus();
         delay(300);
       }
    }
       
       
    void button2()
    {
       if(isSettings == 0) {
         //здесь будет вывод подробной статистики на дисплей
         lcd.clear();
         lcd.print("Knopka 2");
         delay(1000);
         for (int i = 0; i < 10; i++){
           lcd.clear();
           lcd.print("Zona 1: ");      
           lcd.print(i);  
           lcd.setCursor(0, 1);
           lcd.print(myStat1);
           delay(2000);
         }
       
         for (int i = 0; i < 10; i++){
           lcd.clear();
           lcd.print("Zona 2: ");
           lcd.print(i);   
           lcd.setCursor(0, 1);
           lcd.print(myStat2);
           delay(2000);
         }
         lcd.clear();
       }
       
       if(isSettings == 1) {
         editSoilPlus();
         delay(300);
       }
       
       if(isSettings == 2) {
         editSoilPlus();
         delay(300);
       }
    }
       
       
    void button3()
    {
       if(isSettings == 0) {
         // здесь будет выводиться на экран текущее значение soilMax
         lcd.clear();
         lcd.print("soilMax=");
         lcd.print(soilMax);
         isSettings = 1;
         delay(300);
         loop();
       }
       
       if(isSettings == 2) {
         //здесь будет вывод сообщения о новом значении soilMax
         lcd.clear();
         lcd.print("Novoe znachenie");
         lcd.setCursor(0, 1);
         lcd.print(soilMax);
         isSettings = 0;
         delay(1000);
       }  
    }
       
       
    void editSoilPlus()
    {
       soilMax = soilMax + 10;
       isSettings = 2;
       lcd.clear();
       lcd.print(soilMax);
    }
       
    void editSoilMinus()
    {
       soilMax = soilMax - 10;
         isSettings = 2;  
       lcd.clear();
       lcd.print(soilMax);
    }
       
       
    void sendTextMessage(String text) {
         // Устанавливает текстовый режим для SMS-сообщений
         gprsSerial.print("AT+CMGF=1\r");
         delay(100); // даём время на усваивание команды
         // Устанавливаем адресата: телефонный номер в международном формате
         gprsSerial.println("AT + CMGS = \"+7912ХХХХХХХ\"");
         delay(100);
         // Пишем текст сообщения
         gprsSerial.println(text);
         delay(100);
         // Отправляем Ctrl+Z, обозначая, что сообщение готово
         gprsSerial.println((char)26);
    }
       
    void long_delay(unsigned long seconds){while(seconds--){delay(1000);}}[/l][/i]

     
    А как библиотеку кинуть ?
     
    SergДата: Воскресенье, 19.05.2013, 10:02 | Сообщение # 8
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    Вот так не ругается на датчик температуры.

    Код
    // Пины:   
       // GPRS: 7, 8   
       // Дисплей: 2, 3, 4, 5, 11, 12 (13 - подсветка)   
       // Реле: 9, 10   
       // Датчик DHT11: А5   
       // Датчики влажности почвы: А2, А3   
       // Датчик температуры воды: А1   
       // Кнопки: А0   
           
       //Подключаем библиотеки   
       #include "SoftwareSerial.h"   
    #include "DHT.h"
       #include "LiquidCrystal.h"
       LiquidCrystal lcd(12, 11, 5, 4, 3, 2);   
           
        #define DHTTYPE DHT11
       //для DHT11   
       #define dht_dpin A5   
       DHT dht(dht_dpin, DHTTYPE);   
           
       //Переменные для GPRS-модуля   
       SoftwareSerial gprsSerial(7, 8);   
       int i=0;   
       char msg[160]=""; //входящее смс-сообщение   
       char phoneNum[20]=""; //номер телефона   
       char phoneNumOk[20]="7912ХХХХХХХ";   
       char time[30]=""; //текущее время   
       char timehors[2]=""; //текущий час   
       char timemin[2]=""; //текущая минута   
       char timedate[8]=""; //текущая дата   
       int hrs=0; //текущий час int   
       int minuta=0; //текущая минута int   
       boolean isMessage=false; //ответ с модуля является сообщением   
       unsigned long previousTimer=0;   
       unsigned interval=1000;   
           
           
       int soil1Pin = 3; //пин датчика почвы 1   
       int soil2Pin = 2; //пин датчика почвы 2   
       int relay1Pin = 9; //пин реле 1   
       int relay2Pin = 10; //пин реле 2   
           
           
       //состояния для реле   
       int ON = 0;   
       int OFF = 1;   
           
       double normTemp = 30.0; //допустимая температура воды   
       int soilMax = 900; // влажность почвы   
       int button = 0; //состояние кнопок   
       int isSettings = 0; //режим настроек   
           
       char* myStat1[]={"-------------------", "-------------------", "-------------------",   
       "-------------------", "-------------------", "-------------------", "-------------------", "-------------------", "-------------------", "-------------------"};   
       char* myStat2[]={"-------------------", "-------------------", "-------------------",   
       "-------------------", "-------------------", "-------------------", "-------------------", "-------------------", "-------------------", "-------------------"};   
           
           
       void setup()   
       {   
           digitalWrite(relay1Pin, OFF);   
           digitalWrite(relay2Pin, OFF);    
           pinMode(relay1Pin, OUTPUT);    
           pinMode(relay2Pin, OUTPUT);   
           
           dht.readTemperature(dht_dpin);   
           
           Serial.begin(9600);   
           delay(2000);   
           gprsSerial.begin(19200);                  
           delay(300);   
           dht.begin();
           lcd.begin(16, 2);   
             
       }   
           
           
       double GetWaterTemp() //Получение температуры воды в баке   
       {   
         double temp;   
         temp = log(((10240000/analogRead(1)) - 10000));   
         temp = 1 / (0.001129148 + (0.000234125 * temp) + (0.0000000876741 * temp * temp * temp));   
         temp = temp - 273.15;   
         return temp;   
       }   
           
       void loop()   
       {   
           
         //КОД ДЛЯ РАБОТЫ С GPRS-МОДУЛЕМ:   
           
         unsigned long currentTimer = millis();    
         if ((currentTimer - previousTimer) > interval) {   
           previousTimer = currentTimer;   
           gprsSerial.print("AT+CCLK?\r");  //Запрашиваем время каждую секунду   
         }   
           
         if (gprsSerial.available()){    //Считываем время, а также СМС и т.д.   
           char buf = gprsSerial.read();   
           //Serial.print(buf);   
           if ('\r' == buf) {   
             msg[i++] ='\0';  //Добавляем нуль терминатор   
             if (isMessage) {   
               //если текущая строка - SMS-сообщение,   
               //отреагируем на него соответствующим образом   
               //Serial.println(phoneNum); //Печатаем номер телефона с которого пришла СМС   
               //Serial.println(msg);  //Печатаем текст СМС   
                       //lcd.clear();   
                       //lcd.print(phoneNum);   
                       //lcd.setCursor(0, 1);   
                       //lcd.print(msg);   
                       //delay(3000);   
                       if (String(phoneNum).toInt() == String(phoneNumOk).toInt()) {   
                         String textSms = String("Temp v teplice:")+int(dht.readTemperature())+String("C. Temp vody: ")+int(GetWaterTemp())+String("C");   
                         sendTextMessage(textSms);   
                         //delay(3000);   
                       }    
               isMessage = false;   
             }   
             else {   
               if (!strncmp("+CMT",msg,4)) {   
                 int i=0;   
                 //если текущая строка начинается с "+CMT",   
                 //то следующая строка является сообщением   
                 isMessage = true;   
                 for (i=8;(msg[i]!=',') && (i<30);i++) {  //Выбираем из первой строки сообщения номер телефона с которого оно было отправлено   
                 }   
                 msg[i-1]='\0';          //Добавляем нуль терминатор в конец строки с номером телефона   
                 strcpy(phoneNum,msg+8); //Копируем номер телефона в другую строку   
               }   
           
               if (!strncmp("+CCLK",msg,5)) {  //Делаем все то же самое с последовательностью символов начинающейся на +CCLK   
                 int i=0;                    //Эта последовательность является ответом шилда на запрос текущего времени   
                 for (i=8;(msg!='"') && (i<40);i++) {  //Выделяем из ответа строку содержащую текущее время   
                 }   
                 msg[i-3]='\0';   
                 strcpy(time,msg+8);   
                 //Serial.println(time);   //и печатаем ее   
                           
                         //Выделяем из строки текущий час и переводим в число   
                     int k=0;   
                 for (k=9; (k<11);k++) {   
                 }   
                 time[k]='\0';   
                 strcpy(timehors,time+9);   
                 //Serial.println(timehors);      
                         hrs = String(timehors).toInt();   
                         //Serial.println(hrs);   
                           
                         int l=0;   
                 for (l=12; (l<14);l++) {   
                 }   
                 time[l]='\0';   
                 strcpy(timemin,time+12);   
                 //Serial.println(timemin);      
                         minuta = String(timemin).toInt();   
                         //Serial.println(minuta);   
                           
                         int m=0;   
                 for (m=0; (m<8);m++) {   
                 }   
                 time[m]='\0';   
                 strcpy(timedate,time);   
                 //Serial.println(timedate);   
                           
               }   
             }   
             i=0;            
           }   
           else if ('\n' != buf) {   
             msg[i++] = buf;   
           }      
         }   
           
         //________________________________   
         //КОД ДЛЯ ПРОВЕРКИ НАЖАТИЯ КНОПОК:   
           
         button=analogRead(0);//считываем сигнал с пина 0   
                 
           if(button>675&&button<690)   
           {   
             //действие первой кнопки   
             button1();   
           }   
                 
             if(button>845&&button<855)   
           {   
             // действие второй кнопки   
             button2();   
           }   
                 
           if(button>920&&button<935)   
           {   
             // действие третьей кнопки   
             button3();   
           }   
           
         //__________________________      
         //КОД ДЛЯ ПРОВЕРКИ ДАТЧИКОВ:   
           
         if(analogRead(soil1Pin)>soilMax/*&&hrs==18*/)   
         {   
           if(GetWaterTemp()>normTemp)   
           {   
             //поливаем первую зону   
               //String textSms = String("Poliv Zona 1. Vlaga:")+int(analogRead(soil1Pin))+String(" Temp vody: ")+int(GetWaterTemp())+String("C");   
               //sendTextMessage(textSms);   
               digitalWrite(relay1Pin, ON);   
               lcd.clear();   
               lcd.print("Polivaem zonu 1");   
               lcd.setCursor(0, 1);   
               lcd.print(time);   
               for (int i = 9; i > 0; i--){   
                 myStat1 = myStat1[i-1];   
               }   
               myStat1[0] = time;   
                 
               long_delay(10);   
               digitalWrite(relay1Pin, OFF);   
               lcd.clear();   
           }   
         }   
           
         if(analogRead(soil2Pin)>soilMax/*&&hrs>18*/)   
         {   
           if(GetWaterTemp()>normTemp)   
           {   
             //поливаем вторую зону   
               //String textSms = String("Poliv Zona 2. Vlaga:")+int(analogRead(soil2Pin))+String(" Temp vody: ")+int(GetWaterTemp())+String("C");   
               //sendTextMessage(textSms);   
               digitalWrite(relay2Pin, ON);   
               lcd.clear();   
               lcd.print("Polivaem zonu 2");   
               lcd.setCursor(0, 1);   
               lcd.print(time);   
               for (int i = 9; i > 0; i--){   
                 myStat2 = myStat2[i-1];   
               }   
               myStat2[0] = time;   
               long_delay(10);   
               digitalWrite(relay2Pin, OFF);   
               lcd.clear();   
           }   
         }   
           
                           
       }   
           
         //__________________   
         //ФУНКЦИИ:   
           
       void button1()   
       {   
         if(isSettings == 0) {   
           //здесь будет вывод краткой статистики на дисплей   
           lcd.clear();   
           lcd.print("Knopka 1");   
           delay(1000);   
           lcd.clear();   
           lcd.setCursor(0, 0);   
           lcd.print("1:");   
           lcd.print(analogRead(soil1Pin));   
           lcd.print(" 2:");   
           lcd.print(analogRead(soil2Pin));   
           lcd.setCursor(0, 1);   
           lcd.print("Vod:");   
           lcd.print(GetWaterTemp());   
           lcd.print(" Tep:");   
           lcd.print(DHT.temperature);   
           delay(5000);   
         }   
           
         if(isSettings == 1) {   
           editSoilMinus();   
           delay(300);   
         }   
           
         if(isSettings == 2) {   
           editSoilMinus();   
           delay(300);   
         }   
       }   
           
           
       void button2()   
       {   
         if(isSettings == 0) {   
           //здесь будет вывод подробной статистики на дисплей   
           lcd.clear();   
           lcd.print("Knopka 2");   
           delay(1000);   
           for (int i = 0; i < 10; i++){   
             lcd.clear();   
             lcd.print("Zona 1: ");        
             lcd.print(i);    
             lcd.setCursor(0, 1);   
             lcd.print(myStat1);   
             delay(2000);   
           }   
           
           for (int i = 0; i < 10; i++){   
             lcd.clear();   
             lcd.print("Zona 2: ");   
             lcd.print(i);     
             lcd.setCursor(0, 1);   
             lcd.print(myStat2);   
             delay(2000);   
           }   
           lcd.clear();   
         }   
           
         if(isSettings == 1) {   
           editSoilPlus();   
           delay(300);   
         }   
           
         if(isSettings == 2) {   
           editSoilPlus();   
           delay(300);   
         }   
       }   
           
           
       void button3()   
       {   
         if(isSettings == 0) {   
           // здесь будет выводиться на экран текущее значение soilMax   
           lcd.clear();   
           lcd.print("soilMax=");   
           lcd.print(soilMax);   
           isSettings = 1;   
           delay(300);   
           loop();   
         }   
           
         if(isSettings == 2) {   
           //здесь будет вывод сообщения о новом значении soilMax   
           lcd.clear();   
           lcd.print("Novoe znachenie");   
           lcd.setCursor(0, 1);   
           lcd.print(soilMax);   
           isSettings = 0;   
           delay(1000);   
         }    
       }   
           
           
       void editSoilPlus()   
       {   
         soilMax = soilMax + 10;   
         isSettings = 2;   
         lcd.clear();   
         lcd.print(soilMax);   
       }   
           
       void editSoilMinus()   
       {   
         soilMax = soilMax - 10;   
           isSettings = 2;    
         lcd.clear();   
         lcd.print(soilMax);   
       }   
           
           
       void sendTextMessage(String text) {   
           // Устанавливает текстовый режим для SMS-сообщений   
           gprsSerial.print("AT+CMGF=1\r");   
           delay(100); // даём время на усваивание команды   
           // Устанавливаем адресата: телефонный номер в международном формате   
           gprsSerial.println("AT + CMGS = \"+7912ХХХХХХХ\"");   
           delay(100);   
           // Пишем текст сообщения   
           gprsSerial.println(text);   
           delay(100);   
           // Отправляем Ctrl+Z, обозначая, что сообщение готово   
           gprsSerial.println((char)26);   
       }   
           
       void long_delay(unsigned long seconds){while(seconds--){delay(1000);}}[/l][/i]
     
    SergДата: Воскресенье, 19.05.2013, 10:21 | Сообщение # 9
    Ампер
    Группа: Модераторы
    Сообщений: 510
    Репутация: 28
    Статус: Offline
    Но ругается на код GSM модуля. Может попробуете куски кода отладить отдельно, а уж потом соединить их в общую программу ?? Ошибок предостаточно..
     
    ФОРУМ ДВ Робот dvrobot.ru » DV ROBOT » Arduino - вопросы и ответы. » проблема библиотеки
    • Страница 1 из 1
    • 1
    Поиск:

    ДВ Робот - Чат