arduino sd卡g代码_arduino读取u盘「建议收藏」

arduino sd卡g代码_arduino读取u盘「建议收藏」Arduino读写SD卡模块(获得SD卡信息)硬件准备接线方法一方法二库文件准备代码部分效果图硬件准备SD卡模块接线方法一ArduinoUNOGPIO接法ArduinoUNOSD卡模块5V5VG

Arduino读写SD卡模块(获得SD卡信息)

硬件准备

SD卡模块
在这里插入图片描述

接线

方法一

Arduino UNO GPIO接法

Arduino UNO SD卡模块
5V 5V
GND GND
CS 4
MOSI 11
SCK 13
MISO 12

方法二

SPI接法 (适合UNO Mega2560等)
Arduino UNO SPI引脚图
在这里插入图片描述
在这里插入图片描述
Mega 2560 SPI接法
在这里插入图片描述

库文件准备

SD卡模块需要这两个库

#include <SPI.h>
#include <SD.h>

SD卡库文件下载
将下载好的库文件解压放到
在这里插入图片描述

代码部分

// 加载SD库
#include <SPI.h>
#include <SD.h> 

// 使用SD实用程序库函数设置变量:
Sd2Card card;
SdVolume volume;
SdFile root;

const int chipSelect = 4;
 
void setup() { 
   
  Serial.begin(9600);
  while (!Serial) { 
   
    ;
  }
  Serial.print("\nInitializing SD card...");
  //测试SD卡是否正常工作
  if (!card.init(SPI_HALF_SPEED, chipSelect)) { 
   
    Serial.println("initialization failed. Things to check:");
    Serial.println("* is a card inserted?");
    Serial.println("* is your wiring correct?");
    Serial.println("* did you change the chipSelect pin to match your shield or module?");
    return;
  } else { 
   
    Serial.println("Wiring is correct and a card is present.");
  }
 
  //显示卡的类型
  Serial.print("\nCard type: ");
  switch (card.type()) { 
   
    case SD_CARD_TYPE_SD1:
      Serial.println("SD1");
      break;
    case SD_CARD_TYPE_SD2:
      Serial.println("SD2");
      break;
    case SD_CARD_TYPE_SDHC:
      Serial.println("SDHC");
      break;
    default:
      Serial.println("Unknown");
  } 
  
  //判读能否获取存储类型数据
  if (!volume.init(card)) { 
   
    Serial.println("Could not find FAT16/FAT32 partition.\nMake sure you've formatted the card");
    return;
  }  

  uint32_t volumesize;
  Serial.print("\nVolume type is FAT");
  Serial.println(volume.fatType(), DEC);
  Serial.println();
 
  //显示SD卡容量,计算不同单位
  volumesize = volume.blocksPerCluster();    // clusters are collections of blocks
  volumesize *= volume.clusterCount();       // we'll have a lot of clusters
  volumesize *= 512;                            // SD card blocks are always 512 bytes
  Serial.print("Volume size (bytes): ");
  Serial.println(volumesize);
  Serial.print("Volume size (Kbytes): ");
  volumesize /= 1024;
  Serial.println(volumesize);
  Serial.print("Volume size (Mbytes): ");
  volumesize /= 1024;
  Serial.println(volumesize);
 
  Serial.println("\nFiles found on the card (name, date and size in bytes): ");
  //读取卡里面的文件列表信息
  root.openRoot(volume);
 
  root.ls(LS_R | LS_DATE | LS_SIZE);
}
  
void loop(void) { 
    
}

效果图

打开串口监视器(9600)
在这里插入图片描述

今天的文章arduino sd卡g代码_arduino读取u盘「建议收藏」分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/64346.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注