当前位置:   article > 正文

Arduino 合宙 ESP32 S3 + OV2640 实现低成本SD存储卡相机(ESP32连接SD模块引脚)_合宙s3 cam

合宙s3 cam

合宙ESP32 S3 板载16M flash,8m psram和一个FPC相机接口,价格却不到30元,无疑比价格将近50元的第三方ESP32 S3和将近30的ESP32 Cam更具性价比。

但是虽然板载FPC,由于接口冲突,导致相机与psram不能同时开启,作为ESP32 Cam的替代品来看,还缺少了板载SD卡,而且作为一块发布不久的开发板,网上资料资料非常少,甚至连乐鑫的ESP32 S3开发板关于如何用Arduino配置连接SD卡模块的资料都很少。

但是经过多次试错终于发现了连接方法,Arduino ESP32中默认使用VSPI模式连接,而且官方示例中也没有怎么定义引脚,但是S3中用VSPI模式连接会报错,只能用HSPI连接

  1. //SDCard
  2. #include <SD.h>
  3. #include <SPI.h>
  4. SPIClass sdSPI(HSPI); // 使用vspi模式会报错
  5. #define SD_MISO 17
  6. #define SD_MOSI 16
  7. #define SD_SCLK 18
  8. #define SD_CS 14
  9. void SDCheck() { // 测试SD卡连接
  10. uint8_t cardType = SD.cardType();
  11. if (cardType == CARD_NONE)
  12. {
  13. Serial.println("未连接存储卡");
  14. return;
  15. }
  16. else if (cardType == CARD_MMC)
  17. {
  18. Serial.println("挂载了MMC卡");
  19. }
  20. else if (cardType == CARD_SD)
  21. {
  22. Serial.println("挂载了SDSC卡");
  23. }
  24. else if (cardType == CARD_SDHC)
  25. {
  26. Serial.println("挂载了SDHC卡");
  27. }
  28. else
  29. {
  30. Serial.println("挂载了未知存储卡");
  31. }
  32. Serial.printf("存储卡总大小是: %lluMB \n", SD.cardSize() / (1024 * 1024)); // "/ (1024 * 1024)"可以换成">> 20"
  33. Serial.printf("文件系统总大小是: %lluB \n", SD.totalBytes());
  34. Serial.printf("文件系统已用大小是: %lluB \n", SD.usedBytes());
  35. }
  36. void setup() {
  37. bool SDstart = false;
  38. Serial.begin(115200);
  39. sdSPI.begin(SD_SCLK, SD_MISO, SD_MOSI, SD_CS);
  40. if (!SD.begin(SD_CS, sdSPI))
  41. {
  42. Serial.println("存储卡挂载失败");
  43. return;
  44. }
  45. SDCheck();

 相机部分配置:

  1. //Cam
  2. #include "esp_camera.h"
  3. #include "esp_timer.h"
  4. #include "soc/soc.h" // Disable brownour problems
  5. #include "soc/rtc_cntl_reg.h" // Disable brownour problems
  6. //cam gpio
  7. #define PWDN_GPIO_NUM -1
  8. #define RESET_GPIO_NUM -1
  9. #define XCLK_GPIO_NUM 39
  10. #define SIOD_GPIO_NUM 21
  11. #define SIOC_GPIO_NUM 46
  12. #define Y2_GPIO_NUM 34
  13. #define Y3_GPIO_NUM 47
  14. #define Y4_GPIO_NUM 48
  15. #define Y5_GPIO_NUM 33
  16. #define Y6_GPIO_NUM 35
  17. #define Y7_GPIO_NUM 37
  18. #define Y8_GPIO_NUM 38
  19. #define Y9_GPIO_NUM 40
  20. #define VSYNC_GP
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/814860
推荐阅读
相关标签
  

闽ICP备14008679号