I_R_W15_M03 Przykładowe projekty
Moduł czytnika kart MicroSD
Karty SD pozwalają na zapisywanie i prowadzenie rejestru odczytanych danych. Taki sposób przetwarzania danych stosuje się w urządzeniach, w skład których wchodzą m.in:
moduł GPS do zbierania danych dotyczących położenia;
stacja pogodowa do zapisywania danych na temat temperatury, opadów itp.;
systemy pomiarowe zbierające dane odnośnie odległości, odchyleń itp.
Jedną z najczęściej mierzonych wartości nieelektrycznych we wszystkich dziedzinach elektroniki jest temperatura. Jej pomiary są podstawą regulacji powietrza w pomieszczeniach przez różnego rodzaju systemy grzewcze, klimatyzatory, wentylatory itp., oraz monitorowania warunków panujących na zewnątrz przez stacje pogodowe. Sam pomiar temperatury zazwyczaj jest wystarczający, jednak bardziej skomplikowane systemy wymagają dokładniejszej informacji na temat warunków środowiska. Dobrym rozwiązaniem jest stosowanie zintegrowanych czujników, które umożliwiają jednoczesny pomiar zarówno temperatury powietrza, jak i wilgotności. Należą do nich sensory z serii DHT, w tym niewielki, cyfrowy czujnik temperatury i wilgotności DHT22, którym zajmiemy się później.
Moduł ten zawiera wszystkie potrzebne elementy, aby można było komunikować się z kartą microSD poprzez np. Arduino. Karty SD komunikują się poprzez magistralę SPI. Większość mikrokontrolerów, w tym te wykorzystane w Arduino, posiadają sprzętową kontrolę tego interfejsu.

Stosując kartę SD, należy pamiętać, aby była ona sformatowana w formacie FAT32.
Budujemy układ
Podłącz układ według poniższego schematu, wgraj kod i przetestuj działanie programu.

Połączenie z Arduino:
MOSI – pin 11 Arduino,
MISO – pin 12 Arduino,
CLK – pin 13 Arduino,
CS – pin 10 Arduino,
VCC – 5 V Arduino,
GNG – GND Arduino.
Program zapisu na kartę
Do obsługi dodatkowych elementów podłączonych do Arduino, takich jak karta pamięci microSD, potrzebne są odpowiednie biblioteki. W tym przypadku wykorzystujemy dwie biblioteki: SD oraz SPI.
Biblioteka SD zawiera gotowe funkcje umożliwiające między innymi tworzenie plików, zapisywanie danych na karcie oraz ich odczytywanie. Biblioteka SPI odpowiada natomiast za komunikację pomiędzy Arduino a modułem karty SD. Dzięki zastosowaniu tych bibliotek obsługa karty pamięci jest znacznie prostsza i nie wymaga samodzielnego programowania całego sposobu komunikacji z modułem.
Poniżej możesz pobrać obie biblioteki potrzebne do wykonania ćwiczenia.
Biblioteka do obsługi karty SD:
Biblioteka do obsługi komunikacji SPI:
Po pobraniu bibliotek instalujemy je w Arduino IDE.
Na początku dołączamy potrzebne biblioteki do szkicu.
W celu poprawnej inicjalizacji karty SD należy w programie wprowadzić w pętli setup() poniższe komendy. Instrukcja warunkowa if() sprawdza, czy karta jest wykrywana. Jeśli nie, następuje wyświetlenie informacji poprzez port szeregowy i przerwanie wykonywania programu. Jeśli karta zostanie rozpoznana, program nie wejdzie do instrukcji i wyświetli napis znajdujący się poza nią.
W pętli loop() wpisujemy komendy zapisu tekstu na kartę microSD.
Polecenie SD.open otwiera plik o podanej nazwie, a jeśli taki plik nie istnieje, zostanie dzięki temu poleceniu utworzony. Gdy plik jest już otwarty (lub utworzony), program wchodzi do instrukcji warunkowej if(), gdzie następuje wpisanie jej do pliku. Jeśli zaś zostanie zwrócona wartość false, program wykona instrukcję else.
Po otwarciu plik musi zostać zamknięty - w przeciwnym razie dane nie będą poprawnie wprowadzone.
Całość kodu wygląda następująco:
Jeśli karta nie znajduje się w module, w monitorze portu szeregowego pojawi się informacja o błędnej inicjalizacji karty.
Po włożeniu karty do komputera widzimy, że na karcie znajduje się plik TEST.CSV. Po jego otwarciu możemy zobaczyć zapisane dane.