GY-NEO6MV2 gps sensörü ve hc-04 mesafe sensörünün birlikte çalışma hatası

nickly

Yeni Üye
Katılım
21 Temmuz 2023
Mesajlar
4
Arkadaşlar merhaba. Benim sorunum, Gps sensörü ve mesafe sensörünü arduinoda birlikte kullanırken mesafe sensörünün hatalı ölçümler yapıyor olmasıdır. Sistem çalışırken gps sensörünün gücünü kestiğim anda mesafe sensörü doğru ölçümler yapıyor. Sistemi arduino mega ve arduino uno da denedim aynı şekilde mesafe sensörünü de değiştim ama hepsinde aynı sonucu verdi. Sistemi usb ile besliyorum fakat yine güç kaynağını değiştirip lipo ve kalem piller ile denedim sonuç yine değişmedi. 2 güç kaynağı kullanıp sensörlere farklı besleme uyguladım toprak hatlarını birleştirdim yine sonuç elde edemedim. 2 sensör birbirinden 25 cm kadar uzaklıkta sorun sizce ne olabilir ? Teşekkürler.
 
sistemin kodu şu şekilde :

Kod:
#include <TinyGPS.h>
TinyGPS gps;
#include <SoftwareSerial.h>
SoftwareSerial ss(3,2); //tx rx pinleri bağlanır // doğru olan bu
const int trigger_pin =10;
const int echo_pin = 11;
int sure;
float engelmesafe;
void setup() {
    pinMode(trigger_pin, OUTPUT);
    pinMode(echo_pin, INPUT);
    Serial.begin(9600);
    ss.begin(9600);
}
void loop() {
    digitalWrite(trigger_pin, HIGH);
    delayMicroseconds(10);
    digitalWrite(trigger_pin, LOW);
    sure = pulseIn(echo_pin, HIGH);
    engelmesafe = (sure/2) / 29.1;
    Serial.print("\nMesafe = ");
    Serial.println(engelmesafe);


    smartdelay(500);
    Serial.println();

    float flat, flon,distance;
    unsigned long age;
    gps.f_get_position(&flat, &flon);
    Serial.print("x koordinatı: "); Serial.println(flat, 6);
    Serial.print("y koordinatı: "); Serial.println(flon, 6);

    float hiz = gps.f_speed_kmph();
    Serial.print("Hız: "); Serial.println(hiz);

    const char* yon = gps.cardinal(gps.course_to(flat, flon, 40.541502, 41.979748));
    //char yon =gps.cardinal(gps.f_course()) ;
    //Serial.print("Yön: "); Serial.println(gps.cardinal(gps.course_to(flat, flon, 40.541502, 41.979748)));
    Serial.print("mesafe : "); Serial.println( gps.distance_between(flat , flon ,40.541502 , 41.979748 ));
    Serial.print("yön: "); Serial.println(yon);

}

static void smartdelay(unsigned long ms) {
    unsigned long start = millis();
    do {
        while (ss.available())
            gps.encode(ss.read());
    } while (millis() - start < ms);
}
 
Last edited by a moderator:
Program kodunu bir "kod" bloğu olarak eklersen çok daha okunabilir olur. Ben mesajı düzenleyip kod bloğu olarak değiştirdim.

1689958353687.png
 
Software serial yerine Hardware serial kullanın.
GPS zaten 9600bps ile kesme/uart dolayısıyla işlemciyi yeterince meşgul ediyor. Bir de bunu software serial ile kullanınca denetleyicinin nefes alacak zamanı kalmıyor. Bu yüzden önce gpsi Hardware serial porta taşıyıp kodunuzu revize edin. Hatta yapabilirseniz port hızını 115200bps yapın. 700-800 byte verinin alınma süresi kısalsın.
 
Software serial yerine Hardware serial kullanın.
GPS zaten 9600bps ile kesme/uart dolayısıyla işlemciyi yeterince meşgul ediyor. Bir de bunu software serial ile kullanınca denetleyicinin nefes alacak zamanı kalmıyor. Bu yüzden önce gpsi Hardware serial porta taşıyıp kodunuzu revize edin. Hatta yapabilirseniz port hızını 115200bps yapın. 700-800 byte verinin alınma süresi kısalsın.
hocam sorun çözüldü ilgi ve alakanız için çok teşekkür ederim.
 

Forum istatistikleri

Konular
7,285
Mesajlar
123,134
Üyeler
2,938
Son üye
oguzbaste

Son kaynaklar

Son profil mesajları

Freemont2.0 herbokolog Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
Freemont2.0 posta Freemont2.0 wrote on posta's profile.
Merhabalar :)
az bilgili çok meraklı
Prooffy semih_s Prooffy wrote on semih_s's profile.
Merhaba, sizden DSO2C10 hakkında bilgi rica ettim. Yanıtlarsanız sevinirim...
Unal taydin Unal wrote on taydin's profile.
Timur Bey, Arduino kontrollü bir akü şarj cihazı yapmaya çalışıyorum. Aklımdaki fikri basit bir çizim olarak konu açmıştım. Özellikle sizin fikirlerinizi çok önemsiyorum.
Back
Top