SD-Card-Module не работает с внешним источником питания
Описание проблемы
Я пытаюсь собрать регистратор данных с помощью Arduino UNO. Я подключил модуль SD-карты к Arduino. Я планировал перехватывать данные измерений с аналоговых входных контактов. При подключении к usb порту все работает. Но если я запускаю Arduino от внешнего источника питания, метод SD.open
не работает (он просто возвращает false).
Проблема возникает, даже если я подключаю внешний источник питания дополнительно к USB-подключению. Так что проблема не может быть в отсутствующем последовательном соединении.
Обратите внимание, что проблема возникает, только если SD.open
находится в режиме записи.
(Файл dataFile = SD.open("datalog.txt", FILE_WRITE);
)
Что я уже пробовал:
- запуск примера кода SD-карты, который включен в библиотеку SD-карт.
- попробовать разные типы форматирования файловой системы (FAT, FAT32, с разными размерами кластера)
- питание устройства чтения SD-карт с напряжением 3,3 В вместо 5 В
Подключение Arduino
Посмотрите на картинки, чтобы проверить, нет ли ошибок в проводке:
Характеристики блока питания
А вот характеристики блока питания:
- Производитель: MyVolts
- Модель: DD282MU
- Вход: 100–240 В (переменный ток), 50–60 Гц.
- Выход: 9 В, 1 А (постоянный ток)
Я надеюсь, что вы можете помочь мне с моей проблемой. И, конечно же, я надеюсь, что решение проблемы вообще есть. Спасибо.
@Tim Wißmann, 👍2
Обсуждение2 ответа
Лучший ответ:
Хорошо, спасибо всем за ваши усилия.
Наконец, поменяв блок питания и подключив Arduino к другому usb-порту без операционной системы, я нашел решение.
Проблема заключалась в самой SD-карте: Я заменил SD-карту на более новую (может быть, более дорогую (?)) и теперь она просто работает. Независимо от того, подключаете ли вы Arduino к блоку питания или через USB-соединение. Я предполагаю, что может быть разная тактовая частота модуля SD-карты при разных напряжениях, что и вызывает проблему. Старая SD-карта не справляется с высокой скоростью и выдает ошибку (или просто отклоняет) при попытке записи...
В любом случае, еще раз спасибо за ваши усилия!
У меня тоже была такая проблема: SD-карта не инициализировалась при внешнем питании.
Прочитав это, я уменьшил внешнее напряжение питания до 5,1 В.
(от 7,5 В), и внезапно моя SD-карта инициализируется при внешнем питании.
Таким образом, «твердые» 5 В должны иметь SPI, работающий на более высокой скорости (я думаю), имеет смысл. Недостатком является то, что TFT не такой яркий, как должен быть.
... лучше купите более «дорогой» модуль SD-карты, LOL.
Ps. После некоторого тестирования я обнаружил, что SD-карта будет работать при напряжении до 6,4 В в разъеме питания, выше этого значения карта не инициализируется. Кстати, я не уверен, что это проблема скорости только потому, что скорость SPI привязана делителем к часам Mega, поэтому сначала нужно изменить часы Mega.
Надеюсь, это поможет
- Arduino Uno SD карта памяти
- SD-карта не инициализируется
- Что означают эти контакты? Куда мне их подключить?
- Понимание того, почему следует избегать «String» и альтернативных решений
- Arduino: как записать значение переменной в текстовый файл и изменить его на SD-карте?
- Сохранение файла .txt на SD-карту и чтение данных каждого содержимого в файл txt, а затем сохранение его в переменной
- Как запитать Arduino и 1 цветную светодиодную ленту от одного источника питания
- Как остановить uno от запуска программы при включении питания?
Вы пытались подключить 5-вольтовый контакт модуля SD-карты напрямую к блоку питания через регулятор 7805? Откуда вы знаете, что
SD.open()
возвращает false, когда вы не подключены к ПК через USB?, @SoreDakeNoKotoСпасибо за ваш ответ. Регулятора 7805 у меня нет, поэтому не пробовал. Я знаю, что
SD.open()
возвращает false, потому что я подключил светодиод и позволил ему мигать в этом случае. Во-вторых, я видел это в последовательном мониторе: ошибка также возникает, если подключены оба кабеля USB и блок питания., @Tim WißmannСотрите то, что я сказал о 7805; только что вспомнил, что в нем нет необходимости, так как выход Arduino 5 В в любом случае от внутреннего регулятора. SD-карты потребляют большой ток (не менее 100 мА) при чтении или записи. Таким образом, может случиться так, что ток, потребляемый как Arduino, так и SD-картой, вызывает падение напряжения блока питания и вызывает отключение. Попробуйте другой блок питания, если он у вас есть (один с максимальным потреблением 2 А); Крышка 100 мкФ от 5 В до GND поможет. Также вы проверили возвращаемое значение
SD.begin()
?, @SoreDakeNoKoto