Adafruit Micro-SD breakout не инициализируется на MEGA 2560

Micro-SD breakout] [Connection to MEGAУ меня возникли некоторые проблемы, пытаясь заставить мой Arduino MEGA 2560 читать мою карту micro-SD. Моя проводка выглядит следующим образом:

Breakout    Arduino
5v            5v
Gnd           Gnd
CLK           52
DO            50
DI            51
CS            53
CD            не был подключен, а затем подключен к 47 (ни один из них не работал).

Вот мой код:

#include <Wire.h> //библиотека, необходимая для использования коммуникационной шины I2C
#include <Adafruit_Sensor.h>
#include <Adafruit_BME680.h>
#include <SD.h>
#include <SPI.h>

const uint8_t chipSelect = 53; //контакт ChipSelect для устройства чтения SD-карт
const uint8_t cardDetect = 47;

File CO2Data; //Объект данных, в который вы будете записывать данные датчика

void setup() {
Serial.begin(115200);// "запускает" последовательный монитор, чтобы вы могли печатать данные при подключении к компьютеру (установите скорость передачи данных в бодах на 115200).
Wire.begin ();//запускает коммуникационную шину I2C, чтобы она могла общаться с K33

Serial.print("Initializing SD car...");
pinMode(53, OUTPUT); 

if (!SD.begin(chipSelect)) {
Serial.println("Card failed, or not present");
// не делай больше ничего:
while (1) ;
}
Serial.println("card initialized.");
File CO2data = SD.open("datalog.txt", FILE_WRITE);
if (! CO2data) {
Serial.println("error opening datalog.txt");
// Ждать вечно, так как мы не можем записать данные
 while (1) ;
}}

SD-карта отформатирована в FAT32.

Спасибо за любую помощь!

, 👍0

Обсуждение

попробуйте пример CardInfo, @Juraj

Я попробовал пример cardinfo и получил следующее сообщение: Инициализация SD-карты ... инициализация не удалась. Что нужно проверить: * вставлена ли карта? * правильна ли ваша проводка? * вы изменили PIN ChipSelect в соответствии с вашим экраном или модулем?, @CMil

Обновление: я установил chipselect на 10 в примере Cardinfo, и карта найдена и присутствует. Однако он все равно не будет работать в моем скетче. Я пробовал разные комбинации выводов., @CMil

у вас есть какой-то щит на Мега или какие-то другие устройства, подключенные к нему?, @Juraj

У меня есть пара вещей, подключенных к MEGA: Adafruit BME680 (temp pressure), использующий интерфейс I2C (SCL подключен к 21 и SDA подключен к 20) и датчик CO2 KC-30, подключенный к контактам 10 и 9., @CMil

РЕШАЕМАЯ: Неаналоговая линия заземления, подключенная к micro-SD, снижала мое напряжение. Просто подключили к другому грунту и проблема решена! (Проверьте напряжение), @CMil

что такое в данном случае неаналоговое заземление?, @Juraj

Из того, что я смог собрать. заземляющий штифт на MEGA, встроенный в цифровые штифты, был другим источником заземления (digital ground). Я буквально взял провод заземления с платы SD и просто прикоснулся им к корпусу USB-разъема на MEGA, и мое напряжение вернулось., @CMil

вы пробовали один из контактов заземления между контактом 5 В и контактом Vin?, @Juraj

Я проверил Vin на micro-SD между землей на моей плате регулятора напряжения (которая сбрасывает батарею, поступающую с 12, и выводит 5 на МЕГА), он отлично читается. Но при измерении между контактом Vin на Micro-Sd и землей на micro-Sd мое напряжение было всего 1,5. Поэтому я просто перерезал этот провод заземления., @CMil


1 ответ


1

Неаналоговая линия заземления, подключенная к micro-SD, снижала мое напряжение. Просто подключили к другому грунту и проблема решена! (Проверьте напряжение).

Из того, что я смог собрать. заземляющий штифт на MEGA, встроенный в цифровые штифты, был другим источником заземления (digital ground). Я буквально взял провод заземления с платы SD и просто прикоснулся им к корпусу USB-разъема на MEGA, и мое напряжение вернулось.

,

Это нормально - принять свой собственный ответ как решение проблемы., @VE7JRO