SD карта
- Войдите на сайт для отправки комментариев
Чт, 06/06/2013 - 05:41
Привет всем , пытаюсь подцепить карту SD по этим примерам но ардуино не как не хочет
с ней работать вроде всё правильно подключаю и всё не как не робит пишет Initializing SD card...initialization failed!
У вас какая плата Ардуино?
На AT1280
подключил вроде всё верно , и карту одну отформатировал в FAT32, а другую в FAT я как понял это тоже самое как и FAT16.
Но всё без резул , в чём может быть проблема подскажите пожалуйста?
Напишите: как у вас порты к SD/MMC подключены. Бывает частая ошибка - на arduino1280/2560 CS подключен не туда, либо в скетче неправильно определено.
На ArduinoMega - CS пин должен быть подключен к 53пину.(разумеется через преобразовательную схему 5->3.3)
В скетче должна быть строчка SD.begin(53)
Напишите: как у вас порты к SD/MMC подключены. Бывает частая ошибка - на arduino1280/2560 CS подключен не туда, либо в скетче неправильно определено.
На ArduinoMega - CS пин должен быть подключен к 53пину.(разумеется через преобразовательную схему 5->3.3)
В скетче должна быть строчка SD.begin(53)
А я смотрю на эти цифры в скетч ** MOSI - pin 11
** MISO - pin 12
** CLK - pin 13
** CS - pin 4
И цепляюсь к ним , а это распиновка UNO, пару дней голову ломал , а патом только после ваших цифры до меня и дошло что мега и уно совершенно разные пины
Спасибо вам за подсказку всё заработ.
Подскажите почему когда я подключаюсь 53 пину SD карта не работает, всё подключено по схеме http://habrahabr.ru/post/115176/
А так всё на 5 проводках работает без 53 пина?
У SD/MMC есть спец. нога - CS (ChipSelect). У Ардуино Уно - есть Hardware SPI c CS(На 10-ои пине). Соответственно инициализация библиотеки будет: SD.begin(10); (как раз как на Хабрахабре) либо SD.begin(SS_PIN); (SS_PIN - константа бибилотеки контроллера)
У всех АдруиноМега то же есть Hardware SPI с CS(но уже на 53пине). Инициализация должна быть такой: SD.begin(53); либо SD.begin(SS_PIN);
Надеюсь, правильно изложил.
Надеюсь, правильно изложил.
Не совсем.
"Стандартный" номер CS (он же SS) имеет значение только для работы микроконтроллера в режиме Slave. В режиме Master CS-пин может быть любым (из пока еще свободных).
Именно это обстоятельство позволяет управлять по SPI любым (разумным) количеством подчиненных устройств. Все они вешаются на три одних и тех же вывода микроконтроллера MOSI/MISO/SCK. А вот линия CS/SS каждого отдельного ведомого устройства должна подключаться к разным пинам микроконтроллера. И дальше, устанавливая в LOW уровень на том или ином пине микроконтроллера (сконфигурированного в качестве селектора соответствующего устройства: "CS или SS"->"Chip Select/Slave Select"), можно общаться с любым из устройств, подключенных по SPI-шине.
Кстати не все SD карты имеют поддержку SPI режима. Мне попадалась такая. Долго не мог врубиться почему не работает, пока PDF на нее не нашел.
Спасибо за помощи и за разъяснения
Подскажите пожалуйста почему на SD карете время не сохраняется а только
2:1:0
2:1:0
2:1:0
2:1:0
2:1:0
2:1:0
2:1:0
Ой всё нашел где косяк)))))
Привет всем подскажите пожалуйста не как не получается разобраться.
Код таков по состоянию кнопки на sd карту сохраняется время нажатия кнопки в время отпускания кнопки, проблема токая с двумя кнопками всё чудесно работает но когда прописываешь тритию пиши error
Это правильно, что кнопка knop4 висит на 4-том пине вместе с 4-тым пином SD?
Нет это не верно я поменял на 8 но всё равно не работает и 4 pin я к SD карте CS не подключал только подтянул 3.3к минус.
Странность та в том то что две кнопки работаю нормально но когда прописываешь трению не хочет работать пишет error opening test.txt
в чём может быть проблема?
вы кучу раз пишете
if
(!SD.begin(4)) {
085
086
}
087
Serial
.println(
"initialization done."
);
непонятно зачем
у вас так отформатирован код... возможно напутали где-то со скобками и пытаетесь два раза открыть фаил.
Вот почистил код с 2 кнопками работает , а с 3 не хочет .
код 2 кнопки
Код 3 кнопки
В чём проблема может ещё быть?
Усё разобрался )))
Вот молодец, сам спросил, сам разобрался! (скупая мужская слеза)
Еще бы написал с чем разобрался и почему глючило.. подробненько, и тропа народная не зарастет.. а то ведь завтра по вашим стопам еще толпа ломанется, а вы не обьяснили ничего...
Ну это, как бы оффтоп пожелания...
И делайте нормальные отступы.. не очень понятно какая скобка какой соответствует, да и некрасиво, когда код "прыгает"
к примеру
188
if
(but5 && !state5)
189
{
190
191
while
(!
Serial
) {
192
;
193
}
я решил что } соответствует скобке if а не while
Корявенько но работает , толком конечно и не понял почему так получается.
привыкайте создавать функции.
например, постоянно повторяющуюся такую хрень
можно сделать в одной функции и передавать в качестве аргумента номер кнопки.
А как их создавать, подскажите пожалуйста
так же как loop и setup)
<return_type> <funcion_name>(<parameter list>)
{
}
Пример :
Спасибо
Цели та я достиг четыре кнопки сохраняются и читаются , а вот причину так и не понял почему так происходит
Вот этот код работает как нужно
Но стоит прописать ещё одну кнопку снова фигня какая та получается не чего не работает
Походу дело код зависает
Код виснет на этой строке
Но тогда почему он не виснет когда 4 кнопки прописано?
А если н а SD карте СS pin к ардуино не подключен я его просто 3.3к на минус , из за этого глюк могут быть?
А если н а SD карте СS pin к ардуино не подключен я его просто 3.3к на минус , из за этого глюк могут быть?
Как говорится утро вечера мудренее,
Все замечательно заработало и не одного глюка
Чего та совсем уже запутался ерунда какая та получается
Чего та совсем уже запутался ерунда какая та получается
Подскажите пожалуйста где тут ошибка , на пять кнопок всё работает стабильно сохраняет по состоянию кнопки и выводит данные c sd карты по запросу.
Но когда я прописал два аналоговых входа код завис выводит в сериал ” Initializing SD card...initialization done” без остановки и больше не каких действий.
Где ошибка в коде?
Почему то код крутится только в void setup и дальше не работает
Привет всем, ерунда какая та получается, на атмеге 328 код не работает виснет хотя памяти занимает всего 22 из 32 ,а на атмеге 1280 код работает прекрасно.
Почему так происходит?