산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 산업기술

Arduino SD 카드:정의 및 사용 방법

수많은 Arduino 프로젝트를 실행합니까? 그리고 엄청난 양의 중요한 정보와 로그 데이터를 저장해야 합니까? 해결책은 Arduino SD 카드를 사용하는 것입니다. 어떻게 작동합니까?

이 문서에서는 기기가 무엇인지, 연결하는 방법, 사용하는 방법 등 기기에 대해 알아야 할 모든 정보를 제공합니다.

계속 읽어서 알아야 할 모든 정보를 찾아보세요.

Arduino에서 SD란 무엇입니까?

아두이노 SD 카드

이미지 출처:Pixlr

SD 카드 또는 마이크로 SD 카드는 두 가지 주요 구성 요소가 있는 장치입니다. 그리고 이러한 구성 요소를 사용하면 Arduino 프로젝트에 데이터 로깅을 쉽게 포함할 수 있습니다. 또한 대부분의 마이크로 SD 카드의 작동 전압은 3.3V입니다.

결과적으로 장치를 5V 논리 회로에 직접 연결하는 것은 불가능합니다. 즉, 3.6V 이상의 전압으로 작업을 시도하면 SD 카드가 손상됩니다.

따라서 모듈에 전류 전압을 3.3~6V에서 약 3.3V로 변경하는 레귤레이터(온보드 초저 드롭아웃)가 있는 이유입니다.

또한 SD 카드에는 모듈(74LVC125A)에 칩이 있어 연결 로직을 3.3 – 5V에서 3.3V로 변경하는 데 도움이 됩니다. 따라서 이 프로세스를 "논리 레벨 이동"이라고 할 수 있습니다. 즉, 보드가 Arduino와 같은 두 개의 마이크로 컨트롤러(3.3V 및 5V)와 연결할 수 있음을 의미합니다.

마이크로컨트롤러의 구성요소

표준 SD 카드를 Arduino와 어떻게 인터페이스합니까? 이를 위해 SDIO 모드와 SPI 모드의 두 가지 방법이 있습니다.

대부분의 SD 카드 모듈은 SPI 모드를 기반으로 합니다(오버헤드 감소 및 속도 저하). 그리고 이것은 대부분의 마이크로컨트롤러가 사용하기 쉬운 모드입니다.

메모리 카드 모듈

반면에 더 빠른 모드는 SDIO이며 휴대폰, 카메라 등과 같은 다양한 장치에 적용됩니다. 그러나 이 모드는 진행하기 전에 기밀 문서에 서명해야 하기 때문에 더 복잡한 경향이 있습니다.

Arduino SD 카드 모듈의 핀아웃

SD 카드 모듈은 어댑터에 6개의 핀이 있으며 다음을 포함합니다.

마이크로 SD 카드 준비 방법

먼저 SD 카드 모듈을 가져와서 마이크로 SD 카드를 삽입해야 합니다. 그런 다음 모듈을 Arduino에 배치하여 카드를 올바르게 포맷합니다.

거기에 있는 동안 Arduino 라이브러리를 기반으로 카드를 포맷해야 합니다. 즉, 메모리 카드를 FAT32 또는 FAT16으로 포맷해야 합니다.

또한 새 SD 카드로 작업하는 경우 제조업체에서 FAT 파일 시스템으로 미리 포맷했을 수 있습니다. 그러나 카드 형식에 문제가 발생할 수 있습니다. 따라서 새 것이든 오래된 것이든 상관없이 SD 카드를 다시 포맷하는 것이 좋습니다.

SD 카드를 Arduino에 어떻게 연결합니까?

SD 카드와 연결하는 Arduino 카드

이미지 출처:Wikimedia Commons

SD 카드를 사용할 준비가 되었기 때문에 SD 브레이크아웃 보드에 연결할 수 있습니다.

따라서 브레드 보드에 마이크로 SD 카드 모듈을 배치하여 시작할 수 있습니다. 그런 다음 모듈의 VCC 핀을 Arduino의 5V에 연결합니다. 또한 GND 핀을 접지에 연결합니다. 그리고 남는 것은 SPI 통신용 핀입니다.

일반적으로 마이크로 SD 카드는 많은 데이터 전송이 필요합니다. 그러나 카드를 마이크로컨트롤러의 하드웨어 SPI 핀에 연결할 때 더 나은 성능을 보입니다. 핀(SPI)이 다른 핀 세트로 인터페이스 코드를 "비트뱅잉(bit-banging)"하는 것보다 빠르기 때문입니다.

또한 Arduino 보드에는 그에 따라 연결해야 하는 다양한 SPI 핀이 있다는 점에 유의하는 것이 중요합니다. 예를 들어 Arduino Nano에는 11(MOSI), 12(MISO) 및 13(SCK)과 같은 핀이 있습니다. 또한 네 번째 핀인 SS 라인 "칩 선택"이 필요합니다.

또한 SS 핀 또는 선호하는 핀에 핀 10을 사용할 수 있습니다. 하지만 아두이노 메가를 다룰 때는 핀이 다릅니다. 따라서 53(SS), 50(MISO), 51(MOSI), 52(SCK)를 사용해야 합니다. 또한 다른 Arduino 보드를 사용하는 경우 이 공식 문서를 참조할 수 있습니다. 그러면 데이터를 기록할 준비가 된 것입니다.

CardInfo로 SD 카드 모듈을 테스트하기 위해 Arduino 코드를 어떻게 사용합니까?

SD 카드와 통신하는 것은 지루할 수 있습니다. 그러나 좋은 부분은 Arduino IDE에 멋진 라이브러리 "SD"가 있다는 것입니다. 결과적으로 SD 카드를 읽고 쓰는 과정이 쉬워집니다.

또한 스케치를 실행하고 파일→예제→SD→카드 정보를 클릭합니다. 그 후 스케치는 일부 데이터를 표시하여 SD 카드를 인식하는지 알려줍니다. 그런 다음 스케치로 돌아가 "칩 선택"이 올바른 디지털 핀을 사용하고 있는지 확인할 수 있습니다. 그렇지 않은 경우 핀을 10으로 변경합니다.

모든 것이 좋아 보이면 SD 카드를 모듈에 넣고 스케치를 업로드합니다. 또한 직렬 모니터를 열면 즉시 프롬프트가 표시되어야 합니다. 그리고 프롬프트에 볼륨 유형, 크기는 FAT32, 카드 유형은 SDHC(SD High Capacity)가 표시되어야 합니다.

Arduino 스케치의 스크린샷

그러나 클론 또는 불량 SD 카드인 경우 제품 및 제조업체 ID가 없는 카드 유형으로 SD1을 볼 수 있습니다. 이를 통해 카드를 다시 포맷할 수 있습니다. 같은 결과가 나오면 카드를 던집니다.

Arduino 스케치의 스크린샷

마지막으로 SD 카드 없이 스케치를 다시 실행합니다. 그리고 스케치는 SD 카드를 초기화하지 않습니다. 흥미롭게도 카드가 손상되었거나 배선 오류가 있는 경우에도 이 메시지가 표시될 수 있습니다.

Arduino 스케치의 스크린샷

SD 카드가 올바른 배선으로 올바르게 포맷되면 어떻게 됩니까? "배선이 정확하고 카드가 있습니다."라는 메시지가 표시됩니다.

Arduino SD 카드로 데이터 읽기 및 쓰기

SD 카드가 성공적으로 초기화되면 다음 단계로 진행할 수 있습니다. 먼저 스케치에 코드를 업로드하여 시작할 수 있습니다. 따라서 모든 것이 정상이면 "초기화 완료"라는 디스플레이가 표시됩니다.

또한 "테스트를 위한 쓰기 완료"가 표시됩니다. 따라서 Arduino를 재설정하고 스케치를 다시 실행하도록 선택하면 이전 데이터를 덮어쓰지 않습니다. 대신 새 데이터가 이전 데이터에 첨부됩니다.

코드는 무엇을 의미합니까?

1부

스케치에는 SPI 라이브러리와 내장 SD 라이브러리가 있습니다. 결과적으로 SD 카드를 사용하여 SPI 인터페이스에 쉽게 연결할 수 있습니다.

그런 다음 CS가 모듈의 핀에 연결할 Arduino 핀을 선택해야 합니다. CS 핀이 고정되어 있지 않기 때문입니다. 또한, 하드웨어 SPI 라이브러리를 사용하고 있기 때문에 핀이 고정되어 있으므로 명시할 필요가 없습니다.

다음으로 SD 카드에 정보를 저장하는 데 도움이 되는 myFile 개체를 만들어야 합니다.

그런 다음 setup() 섹션으로 이동하여 직렬 모니터에 결과를 표시하기 위한 직렬 통신을 시작합니다.

그 후에 카드를 초기화하려면 SD.begin() 함수가 필요합니다. 따라서 카드 초기화가 진행되면 "if" 문이 참이 되고 "초기화 완료" 문자열이 직렬 모니터에 나타납니다. 그렇지 않으면 "else String":"initialization failed"가 표시되고 프로그램이 종료됩니다.

그런 다음 SD.open() 함수가 "test.txt" 파일을 여는 것을 볼 수 있습니다. 이 파일이 보이지 않으면 새로 만들어야 합니다. 결과적으로 FILE_WRITE 함수는 읽기-쓰기 모드로 열립니다.

파일이 열리면 직렬 모니터에 "Writing to test.txt.." 메시지가 표시됩니다. 또한 myFile.println() 함수에서 "testing 1, 2, 3"을 볼 수 있습니다. 이후 파일에 기록된 데이터를 저장하기 위해 close() 함수를 적용해야 합니다.

2부

이제 쓰기 작업이 성공했는지 파일을 확인해야 합니다. 그리고 SD.open() 함수를 "test.txt"로 사용하여 이를 수행할 수 있습니다. 나중에 파일에서 읽고 직렬 모니터에 표시하는 myFile.read() 함수를 사용할 수 있습니다.

그런 다음 "while" 루프와 myFile.available() 함수를 사용하여 파일 문자를 읽습니다. 그리고 read() 함수는 한 번에 한 문자를 읽기 때문입니다. 그런 다음 파일을 닫습니다.

데모 스케치이기 때문에 코드를 여러 번 실행할 필요가 없습니다. 그리고 모든 코드는 한 번 실행되는 setup() 함수에 있습니다.

주의해야 할 중요 사항

1. 파일명에 대소문자 구분이 없습니다. 따라서 WriteLog.Txt는 writelog.txt 및 WRITELOG.TXT와 동일합니다.

2. 디렉토리에 있는 파일을 열 수 있습니다.

3. println() 및 print() 함수를 사용하여 변수, 문자열 등을 작성할 수 있습니다.

4. Read() 함수는 전체 숫자나 줄을 읽지 않습니다. 대신 한 번에 한 문자를 반환합니다.

5. SD 카드 라이브러리는 "긴 파일 이름"을 지원하지 않으므로 파일 이름을 짧게 유지하는 것이 중요합니다.

FAQ

Arduino SD 카드의 최대 크기는 얼마인가요?

최대 SD 카드는 2GB입니다.

Arduino SD 카드가 손상될 수 있나요?

예, 가능합니다. 그리고 물리적 손상, 부적절한 사용, 제조상의 결함, 악성코드 등으로 인해 발생할 수 있습니다.

요점

Arduino SD 카드는 데이터를 기록하는 데 사용할 수 있는 실용적인 저장 장치입니다. 그리고 정확하게 배선하기만 하면 설정하기가 매우 쉽습니다. 또한 이 기기로 편리하게 데이터를 읽고 쓸 수 있습니다.

프로젝트에 가장 적합한 Arduino SD 카드를 얻는 데 도움이 필요하십니까? 부담 없이 문의하세요.


산업기술

  1. 6G는 무엇이며 얼마나 빠를까요?
  2. 펌프 캐비테이션이란 무엇이며 어떻게 피합니까?
  3. 플라즈마 절단이란 무엇이며 플라즈마 절단은 어떻게 작동합니까?
  4. 납땜이란 무엇입니까? 납땜 유형 및 방법
  5. 브레이징이란 무엇이며 금속을 브레이징하는 방법은 무엇입니까?
  6. 구리 브레이징이란 무엇이며 어떻게 합니까?
  7. MQTT란 무엇이며 산업 자동화 회사는 이를 어떻게 사용할 수 있습니까?
  8. 린 디지털이란 무엇이며 어떻게 통합합니까?
  9. PIC18 마이크로컨트롤러:정의 및 사용 방법
  10. 참조 지정자는 무엇이며 어셈블리에서 어떻게 사용합니까?