Всем привет. Вот недавно пришло arduino mega2560 и модуль GPS EM411. Никак не втуплю что нужно на него писать, чтобы выводил высоту скорость координаты и т.д. вот нашел кое что но всеравно невтуплю http://formallanguage.blogspot.ru/2009/06/gps-logger-with-speedometer.html http://www.ksphome.ru/em-411 подскажите что к чему
Обычно достаточно подать питание и через некоторое время модуль начинает выдавать данные. В описании модуля указаны его настройки по-умолчанию (настройки порта, используемый протокол и набор выдаваемых сообщений). И то, и другое можно изменить. По второй Вашей ссылке внизу есть ссылки на русский мануал по модулю и на мануал по протоколу NMEA-0183 - достаточно первой, там все очень хорошо расписано.
ок. покопаюсь. и заодно вот ещё вопросик у меня ардуино уно и мега подключины. с уно идут покозания датчиков по сериал и приходят на сериал2 на меге. смысл работы меги принтить знасения с Сериал2 на сериал юсб. но он принтит аскии код вместо букв и т.д. что делать?
да вот мне нужно кидать значения каждые 5 секунд, а если поставить задержку на мегу то скетч на меге потеряет всякий смысл.
да и к томуже у меня мега почему то невидит датчик 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; }
Где-то имеет место быть лишний перевод байтов в строку. Serial.print() выводит строковое представление числа, Serial.write() отправит само число.