Arduino를 만나기 시작했습니다. - 2

6028 단어 Arduino입문GPS

1. 소개



인사말



어쩌면 Arduino를 사용하여 놀기 시작했기 때문에
그 비망록으로서 정리해 나갈까.
두 번째입니다.
첫 번째는 여기

이번 내용



이번에는 GPS 모듈 (GMS7-CR6)을 사용하여 위치 정보를 얻습니다.
시리얼 모니터에 출력하는 곳까지 합니다.

참고 페이지



아래의 페이지를 참고로 하고 있습니다. 형번이 완전 일치는 하고 있지 않습니다만 대체로 같았습니다.
  • 데이터시트
  • 참고 페이지 1
  • 참고 페이지 2

  • 2. 배선



    사진에 왼쪽부터 순서대로 pin1 ~ pin6으로 하면 표대로 된다.
    1, 2를 각각 Arduino의 GND와 Vcc에 배선하고,
    5를 Arduino의 D11, 6을 Arduino의 D10에 배선한다.




    Pin Number
    Signal Name
    Description


    1
    그라운드
    Power and signal ground

    2
    파워
    3.3V ~ 6.0V DC 입력

    3
    Serial Data In 2
    Asynchronous serial input at RS-232 level, to input command message

    4
    Serial Data Out 2
    Asynchronous serial output at RS-232 level, to output NMEA message

    5
    Serial Data In 1
    Asynchronous serial input at TTL level, to input command message

    6
    Serial Data Out 1
    Asynchronous serial output at TTL level, to output NMEA message


    배선 예. 적당히 했기 때문에 더럽다. . .


    3. 스케치(프로그램)



    참고 페이지를 흉내내면 좋을 뿐입니다.



    gps_test.ino
    #include <SoftwareSerial.h>
    
    #define PIN_GPS_Rx 10
    #define PIN_GPS_Tx 11
    
    #define SERIAL_BAUDRATE 9600
    #define GPSBAUDRATE 9600
    
    SoftwareSerial sGps(PIN_GPS_Rx, PIN_GPS_Tx);
    
    void setup() {
      // put your setup code here, to run once:
      Serial.begin(SERIAL_BAUDRATE);
      Serial.println("Software Serial Test Start!"); 
    
      sGps.begin(GPSBAUDRATE);
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
      if (sGps.available()) {  
        Serial.write(sGps.read());
      }
    }
    

    설명


  • SoftwareSerial.h
  • Arduino 보드의 0 ~ 1 번 이외의 핀을 사용하여 직렬 통신을 수행하기위한 표준 라이브러리
  • h tp // w w. 무사시 전파. 코 m/아 r즈이노/레 f/

  • SoftwareSerial sGps (PIN_GPS_Rx, PIN_GPS_Tx);
  • SoftwareSerial의 생성자에서 객체를 생성합니다.
  • rx → 데이터를 수신하는 핀
  • tx → 데이터 전송 핀
  • h tp // w w. 무사시 전파. 이 m/아 r즈이노/레 f/그리고 x. php? f=1&포s=121

  • sGps.begin (GPSBAUDRATE);
  • 시리얼 통신 속도 (보 레이트)를 설정합니다.
  • 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 31250, 38400, 57600, 115200 지원
  • h tp // w w. 무사시 전파. 이 m/아 r즈이노/레 f/그리고 x. php? f=1&포s=137

  • Serial
  • Arduino 보드는 Serial이라는 이름으로 참조되는 일련의 직렬 포트(RX와 TX)를 가지고 있어 컴퓨터 등과 통신할 수 있다.

  • Serial.begin (SERIAL_BAUDRATE);
  • 직렬 통신의 데이터 전송 속도를 bps (baud)로 지정합니다.
  • h tp // w w. 무사시 전파. 이 m/아 r즈이노/레 f/이여 x. php? f=0&포s=3157

  • Serial.write(sGps.read());
  • 직렬 포트에 바이너리 데이터를 출력합니다.
  • h tp // w w. 무사시 전파. 이 m/아 r즈이노/레 f/이여 x. php? f=0&포s=3405


  • 4. 동작



    아래와 같은 출력이 됩니다.
    다만, 기동후 잠시는 아래와 같이 유효한 데이터를 취할 수 없습니다. (감히 그런 데이터를 표시하고 있습니다)
    $GPGSA,M,1,,,,,,,,,,,,,,,*12
    $GPRMC,,V,,,,,,,,,,N*53
    $GPGGA,,,,,,0,00,,,M,0.0,M,,0000*48
    $GPGSA,M,1,,,,,,,,,,,,,,,*12
    $GPRMC,,V,,,,,,,,,,N*53
    $GPGGA,,,,,,0,00,,,M,0.0,M,,0000*48
    $GPGSA,M,1,,,,,,,,,,,,,,,*12
    

    좋은 웹페이지 즐겨찾기