Не работает пример c SD картой
- Войдите на сайт для отправки комментариев
Вс, 01/05/2011 - 16:50
Сделал все как написано здесь habrahabr.ru/blogs/arduino/115176/ на плате freeduino 2009. После прошивки начинает мигать диод на 13 ноге где-то раз в секунду, а в терминале с такой же периодичностью пишет "Initializing SD card..." и все. Никакие файлы на карте не появляются. Помогите решить проблему.
Где то может быть короткое, или прегрузка по питанию . Обязательна проверка всей схемы для избежания "соплей"
все проверил несколько раз, косяков нет, питаюсь от usb. может поставить конденсатор между питанием и землей?
мне кажется проблема в диоде на 13 ноге, который включен параллельно карте. как програмно поменять 13 ногу на 9 например?
у людей работает при аналагичных настройках. Значит нужно отдохуть отвлечься и позже еще раз всё перепроверить. Там питание должно быть 3.3В берется с самого ардуино. А пины для SPI там правильно указаны
пересобрал все на другую фридуино, то же самое.. если дотронуться никуда не подключенным проводом до 7 вывода sd карты перезагружаться начинает чаще. может проблема в том что слишком длинные провода? паразитные емкости? стоячие волны?
а можно глянуть на ваше творение в реале (фото). Да и еще, незабудте отворматить карту в fat, у мну просто была проблема изза этого. не писался файл.
в fat форматировал и другую карту пробовал и fat32 пробовал
s56.radikal.ru/i153/1105/31/42795d0956b7.jpg
s40.radikal.ru/i089/1105/e6/3191dab49250.jpg
плохо видно но вот смотрю что у вас с 13 пина попадает на резистор а потом через перемычку на еще один, если это так то тогда не правильно. Должно с ардуины от 13 пина идти до резистора потом после резистора еще один а между ними вывод до карты, а у вас кажется как будто наоборот. ...
нет, все как на схеме, два дальних резистора, слева 13 нога, посередине 5 нога карты, справа земля. А бело-синяя перемычка, это земля на 6 ногу карты
фридуино перезагружается, когда пытаюсь создать, открыть или проверить на существование файла, инициализации карты проходит нормально
хмм странно.
В среду-четверг соберу такую же схему для проверки
более менее заработало. если не использовать последовательный порт после инициализации карты, то программа работает без сбоев. Если же где-нибудь после открытия файла или проверки на его существование воткнуть Serial.println(""); тогда то и начинаются лаги. Похоже не судьба мне последовательным портом пользоваться.
Интересно, но ведь должно быть решение все равно.
Подскажите пожалуйсто где скачать библиотеку SD.H пришлите ссылку пожалуйста. Очень надо записывать на карту в текстовом формате.
библиотека идет в комплекте с Arduino 0022. arduino.cc/en/Reference/SD
проблему решил. лаги ардуины связаны с переполнением RAM. на моей atmega 168 всего 1КБ. библиотека sd занимает очень много места+ буфер serial + все строки. когда память переполняется ардуина перезагружается. решение - экономить память любыми способами. robocraft.ru/blog/arduino/88.html robocraft.ru/blog/arduino/531.html
У меня не работает тот-же пример! Подскажите, из-за чего он может не работать?! при открытии порта пишет "инициализация" и ВСЁ...
не перезагружается, а просто стоит в таком состоянии..
Карточка micro SD 2GB через SD адаптер, отформатирована в Fat32....
фотографии будут чуть позже, если нужно, конечно
Плата Freeduino 2009 (ATmega128)
Ребят, малость не по теме, но всё же. Если кто покупал такую вот штуку http://viewitem.eim.ebay.ru/Arduino-WAV-Sound-Broadcast-Kits/270675858361/item Arduino WAV Sound Broadcast Kits - там есть несколько проблемм. 1)ардуино не определяется как arduino uno. Вероятно надо прошивать, но пока было некогда, посему перекинул всё на обычную UNO. 2)стандартные библиотеки sd неподходят. в настройках надо менять пины, и дополнительно со странички разработчика надо качать и подключать библиотеку управления звуковым контроллером. Если надо - напишите, поищу. Особо пока не разбирался, но простые примеры работать заставил :-)
Есть DFRobot Ethernet Shield с картридером но мне тоже не удаётся сделать пример который описан выше. Может кто справился с картридером?
Друзья, подскажите как сделать чтобы в переменной text был текст index.htm в его "первоначальном" виде,а не:
строка 19, заменить на:
и будет щастье.
Да, забыл: строка 03: поменять int text; на
char text;
char text;
Работаетю
Спасибо.
Как я понял чтение происходит посимвольно.
И в моём варианте при использовании в void loop той же переменной каждые 5 сек мне приходит >, т.е. последний символ в файле?
Как я понял чтение происходит посимвольно.
И в моём варианте при использовании в void loop той же переменной каждые 5 сек мне приходит >, т.е. последний символ в файле?
Ничего не понял из вашего объяснения, если честно. Читать можно и посимвольно, и блоками - как вам будет угодно. Посмотрите документацию на класс Stream - там описаны все методы, которые вы можете использовать. Там есть и посимвольное чтение, и блочное. А поскольку Serial является наследником класса Stream - эти методы автоматически доступны и в Serial.
Ничего не понимаю с буфером.
Мне нужно загнать весь текст из index.htm в переменную, которую могу использовать в любом месте.
Ничего не понимаю с буфером.
Мне нужно загнать весь текст из index.htm в переменную, которую могу использовать в любом месте.
Ну так в чём проблема?
Это тупо в лоб, что называется.
Первый раз текст печатается как надо.
В void loop
В строке 4 ошибка, должно быть '\n', а не '/n'
Выдаёт кусок текста
А дальше просто память кончается ;) Я же вам говорил - пример тупо в лоб. Вы же не думали, что оперативки у вас вагон? Вот с этим всем как-то и придётся жить. Думайте.
Значит не получится открыть файл спомощью #include <EtherCard.h>
С помощью #include <EtherCard.h> - не получится, т.к. вы путаетё тёплое с мягким.
Текстовый файл содержит "0123456789"
По адресу 192.168.1.100
Текст файла text.txt
57