Помогите с GPS

Тема в разделе "Arduino & Shields", создана пользователем Sergey991, 17 мар 2013.

  1. Sergey991

    Sergey991 Нерд

  2. Megakoteyka

    Megakoteyka Оракул Модератор

    Обычно достаточно подать питание и через некоторое время модуль начинает выдавать данные. В описании модуля указаны его настройки по-умолчанию (настройки порта, используемый протокол и набор выдаваемых сообщений). И то, и другое можно изменить.
    По второй Вашей ссылке внизу есть ссылки на русский мануал по модулю и на мануал по протоколу NMEA-0183 - достаточно первой, там все очень хорошо расписано.
     
  3. Sergey991

    Sergey991 Нерд

    ок. покопаюсь. и заодно вот ещё вопросик у меня ардуино уно и мега подключины.
    с уно идут покозания датчиков по сериал и приходят на сериал2 на меге. смысл работы меги принтить знасения с Сериал2 на сериал юсб. но он принтит аскии код вместо букв и т.д. что делать?
     
  4. Megakoteyka

    Megakoteyka Оракул Модератор

    А что мешает сразу принимать показания датчиков на мегу? Зачем уно?
    Исходники в студию.
     
  5. Sergey991

    Sergey991 Нерд

    да вот мне нужно кидать значения каждые 5 секунд, а если поставить задержку на мегу то скетч на меге потеряет всякий смысл.
     
  6. Sergey991

    Sergey991 Нерд

    да и к томуже у меня мега почему то невидит датчик DHT11 незнаю почему=(
    вот код на датчик
    Код (Text):
    #define dht_dpin 14 // датчик DHT11 на 0 аналоговый.
    byte bGlobalErr;
    byte dht_dat[5];
    void setup()
    {
    InitDHT();
    Serial.begin(9600);
    Serial.println("Humidity and temperaturenn");
    delay(700);
    }
    /////////////////////////////////////
    void loop()
    {
    ReadDHT();
    switch (bGlobalErr)
    {
    case 0:
    Serial.print("Current humdity = ");
    Serial.print(dht_dat[0], DEC);
    Serial.print(".");
    Serial.print(dht_dat[1], DEC);
    Serial.print("% ");
    Serial.print("temperature = ");
    Serial.print(dht_dat[2], DEC);
    Serial.print(".");
    Serial.print(dht_dat[3], DEC);
    Serial.println("C ");
    break;
    case 1:
    Serial.println("Error 1: DHT start condition 1 not met.");
    break;
    case 2:
    Serial.println("Error 2: DHT start condition 2 not met.");
    break;
    case 3:
    Serial.println("Error 3: DHT checksum error.");
    break;
    default:
    Serial.println("Error: Unrecognized code encountered.");
    break;
    }
    delay(800);
    }
    ///////////////////////////////////
    void InitDHT()
    {
    pinMode(dht_dpin,OUTPUT);
    digitalWrite(dht_dpin,HIGH);
    }
    ///////////////////////////////////
    void ReadDHT()
    {
    bGlobalErr=0;
    byte dht_in; byte i;
    digitalWrite(dht_dpin,LOW);
    delay(20);
    digitalWrite(dht_dpin,HIGH);
    delayMicroseconds(40);
    pinMode(dht_dpin,INPUT);
    //delayMicroseconds(40);
    dht_in=digitalRead(dht_dpin);
    if(dht_in){ bGlobalErr=1; return;
    }
    delayMicroseconds(80);
    dht_in=digitalRead(dht_dpin);
    if(!dht_in)
    {
    bGlobalErr=2; return;
    }
    delayMicroseconds(80);
    for (i=0; i<5; i++) dht_dat[i] = read_dht_dat();
    pinMode(dht_dpin,OUTPUT);
    digitalWrite(dht_dpin,HIGH);
    byte dht_check_sum = dht_dat[0]+dht_dat[1]+dht_dat[2]+dht_dat[3];
    if(dht_dat[4]!= dht_check_sum) {bGlobalErr=3;
    }
    };
    byte read_dht_dat(){ byte i = 0; byte result=0;
    for(i=0; i< 8; i++){ while(digitalRead(dht_dpin)==LOW);
    delayMicroseconds(30);
    if (digitalRead(dht_dpin)==HIGH) result |=(1<<(7-i));
    while (digitalRead(dht_dpin)==HIGH);
    }
    return result;
    }
     
  7. Sergey991

    Sergey991 Нерд

    тоесть проблема сводиться к тому что бы исправить проблему между мегой и DHT11
     
  8. Megakoteyka

    Megakoteyka Оракул Модератор

    Где-то имеет место быть лишний перевод байтов в строку.
    Serial.print() выводит строковое представление числа, Serial.write() отправит само число.
     
  9. Megakoteyka

    Megakoteyka Оракул Модератор

    Это почему же вдруг? Просто не надо делать задержку через delay() и все будет как надо.
     
  10. Sergey991

    Sergey991 Нерд

    На уно все работает, а на меге нет.
     
  11. Festour

    Festour Нерд

    А как делать?
     
  12. Megakoteyka

    Megakoteyka Оракул Модератор

    Festour нравится это.