본문 바로가기
모두의 아두이노/아두이노 센서

[센서] 아두이노 NEO-6M GPS 확장 쉴드 SD 카드 사용하기 (MicroSD) - ReadWrite 테스트

by 로니킴 2021. 11. 16.


본 절은 [NEO-6M] 아두이노 GPS 확장 쉴드를 사용하기 위해 알아야 할 내용과 실습 방법에 대해 설명한다. 아두이노 센서의 특징, 동작원리, 사양, 연결 핀 배열, 출력 값, 주의사항을 알아본다. 아두이노와 센서를 연결하고, 간단한 코딩으로 센서를 쉽게 실습할 수 있다. 

 

목차

     

     

     


     

    NEO-6M GPS 확장 쉴드

     

     

    • Ublox Neo-6M module
    • 5 Hz update rate
    • External GPS antenna
    • On board 3V super capacitor as backup battery
    • On board 3.3v regulator
    • 3.3V and 5V logic level compatible
    • Power and fix indicator LEDs
    • Reset Button
    • Weight: 23g (shield only), 55g (gps antenna + cable)
    • Baud rate : 9600
    • Update rate: 1Hz (Default), 5Hz (Max)

     

     

     

     


    NEO-6M GPS 확장 쉴드 란?

     

    본 제품은 ublox사의 NEO-6M GPS 모듈을 탑재한 GPS 쉴드이다. GPS핀은 RX, Tx 핀을 통해 아두이노와 통신한다. microSD 카드 인터페이스를 지원하여 데이터 로깅 어플리케이션에 사용이 가능하다.

     

    +더알아보기

     

     

    [센서] 아두이노 NEO-6M GPS 확장 쉴드

    본 절은 [GPS 쉴드] 를 사용하기 위해 알아야 할 내용과 실습 방법에 대해 설명한다. GPS의 특징, 동작원리, 사양, 연결 핀 배열, 출력 값, 주의사항을 알아본다. 아두이노와 GPS쉴드를 연결하고, 간

    makerspace.steamedu123.com

     

     

     


     

    NEO-6M GPS 확장 쉴드 핀 배열

     

    Shield 버전의 다이어그램은 미니 점퍼로 제어되는 핀이 Arduino D1 ~ D7의 물리적 핀에 연결된 연결을 볼 수 있다. 선택된 2개의 핀은 직렬 통신을 담당하므로 다른 용도로 사용해서는 안된다.

    쉴드에서 선택한 TX 핀은 Arduino의 RX에 연결해야 한다는 점을 항상 기억해야 한다. 프로그래밍할 때 이 점에 주의해야 한다. 

     

    핀 8은 SPI 프로토콜에서 MicroSD 카드를 선택하는 서비스를 만들기 때문에 실드에서도 사용된다.

     

    https://blog.eletrogate.com/shield-gps-microsd/

     

    SPI는 PIN 10, 11, 12, 13를 사용한다. 

     

     

     

    하지만 아두이노 메가에서도 똑같은 위치에 있는 10~13번 핀에 SPI 통신 기능이 만들어야 하는데, 

    구조상 다른 위치에 설정되어 있다.  50~53번 핀을 사용한다. 

     

     

     


     

    NEO-6M GPS 확장 쉴드 SD카드 하드웨어 연결

     

    MicroSD 카드를 슬롯에 삽입하고 잠길 때까지 누른다. MicroSD 카드를 제거하려면 다시 누르면 카드가 튀어 나온다.

    예를 들어, 고품질 MicroSD 카드와 Class 10은 안정적인 저장을 할 수 있다. 

     

    참고로, 저품질 카드는 간혹 데이터 읽기, 쓰기를 실패할 수 있다. 

     

     


     

    NEO-6M GPS 확장 쉴드 SD카드 소프트웨어 코딩

    하드웨어 연결이 완료되면, 아두이노 IDE를 이용해 아두이노 센서 소스코드를 코딩할 수 있다. 

    센서 코드는 다음과 같다. 

    /*
      SD card read/write
    
      This example shows how to read and write data to and from an SD card file
      The circuit:
       SD card attached to SPI bus as follows:
     ** MOSI - pin 11
     ** MISO - pin 12
     ** CLK - pin 13
     ** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN)
    
      created   Nov 2010
      by David A. Mellis
      modified 9 Apr 2012
      by Tom Igoe
    
      This example code is in the public domain.
    
    */
    
    #include <SPI.h>
    #include <SD.h>
    
    File myFile;
    
    void setup() {
      // Open serial communications and wait for port to open:
      Serial.begin(9600);
      while (!Serial) {
        ; // wait for serial port to connect. Needed for native USB port only
      }
    
    
      Serial.print("Initializing SD card...");
    
      if (!SD.begin(8)) {
        Serial.println("initialization failed!");
        while (1);
      }
      Serial.println("initialization done.");
    
      // open the file. note that only one file can be open at a time,
      // so you have to close this one before opening another.
      myFile = SD.open("test.txt", FILE_WRITE);
    
      // if the file opened okay, write to it:
      if (myFile) {
        Serial.print("Writing to test.txt...");
        myFile.println("testing 1, 2, 3.");
        // close the file:
        myFile.close();
        Serial.println("done.");
      } else {
        // if the file didn't open, print an error:
        Serial.println("error opening test.txt");
      }
    
      // re-open the file for reading:
      myFile = SD.open("test.txt");
      if (myFile) {
        Serial.println("test.txt:");
    
        // read from the file until there's nothing else in it:
        while (myFile.available()) {
          Serial.write(myFile.read());
        }
        // close the file:
        myFile.close();
      } else {
        // if the file didn't open, print an error:
        Serial.println("error opening test.txt");
      }
    }
    
    void loop() {
      // nothing happens after setup
    }

     

    SD.begin을 8번 핀으로 변경한다. 

     

     


     

    NEO-6M GPS 확장 쉴드 동작확인

    하드웨어 연결, 소프트웨어 코딩이 완료되면 다음과 같이 동작 화면을 확인할 수 있다. 

     

    ------------------------------------------------------ 
    개발환경 : WINDOWS 10 
    아두이노 IDE : 1.8.13 
    ------------------------------------------------------ 
    01 연결
     - 아두이노와 PC 연결 
     - 아두이노 IDE 실행 
     - 메뉴 → 툴 → 보드:아두이노 UNO 확인 
      - 메뉴 → 스케치 → 확인/컴파일 

    02 컴파일 확인 

    스케치>확인/컴파일(CTRL+R) 를 선택해서 컴파일을 진행한다.


    03 아두이노 우노 업로드 

    컴파일이 이상없이 완료되면 스케치>업로드(CTRL+U) 를 선택해서 컴파일 파일을 업로드 한다. 

     

     


    04 동작 확인

    다음과 같이 동작을 확인할 수 있다. 

     

     

     

     


     

    마무리

    아두이노와 GPS 쉴드 센서를 연결하고, 간단한 코딩으로 센서를 쉽게 실습할 수 있다.  

     

     

     

     


     

    모두의 아두이노 환경 센서 책

    [모두의 아두이노 환경 센서] 책은 예스24, 인터넷 교보문고, 알라딘, 인터파크도서, 영풍문고, 반디앤루니스 , 도서11번가 등에서 구입할 수 있다. 이 책에서는 PMS7003, GP2Y1010AU0F, PPD42NS, SDS011 미세먼지 센서, DHT22 온습도 센서, MH-Z19B 이산화탄소 센서, ZE08-CH2O 포름알데히드 센서, CCS811 총휘발성유기화합물 TVOC, GDK101 방사선(감마선) 센서, MQ-131 오존(O3) 센서, MQ-7 일산화탄소, MICS-4514 이산화질소 센서, MICS-6814 암모니아 센서, DGS-SO2 아황산가스(SO2) 센서, BME280 기압 센서, GUVA-S12SD 자외선(UV) 센서, MD0550 기류 센서, QS-FS01 풍속 센서(Wind speed) 를 사용한다.  

     

    모두의 아두이노 환경 센서

    아두이노와 센서로 내 건강을 지킬 수 있다!다양한 환경 센서를 실생활 프로젝트에 응용해보자!시중에 판매되고 있는 간이측정기도 센서로 값을 측정합니다. 똑같은 센서를 아두이노에 연결하

    book.naver.com

    반응형


    댓글