4.Drugi program: Odczyt z karty SD
W tym programie zajmiemy się odczytem danych z pliku. Najpierw zapiszemy do niego jakieś dane, a następnie je odczytamy
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
//DARMOWY KURS FERIAR-LAB.PL //SZUKAJ Kurs Arduino #16: Obsługa kart SD //PUBLIKACJA PROGRAMÓW BEZ POZWOLENIA AUTORA ZABRONIONA !!! #include <SPI.h> //dodaj bibliotekę SPI.h #include <SD.h> //dodaj bilbiotekę SD.h File plik; void setup() { Serial.begin(9600); //uruchom UART o prędkości 9600 baud Serial.println("Gotowy! (1/3)"); Serial.println("Szukam karte... (2/3"); if (!SD.begin(4)) //sprawdź czy nie ma karty na pinie ChipSelect 4 { Serial.println("Nie wykryto karty(ERR)"); //błąd wykrycia karty delay(100); return; //przerwij program } Serial.println("Karta Wykryta (3/3))"); //Karta wykryta plik = SD.open("1234.txt", FILE_WRITE); //otwórz/utwórz plik 1234.txt plik.println("to jest test odczytu z pliku"); //zapisz do pliku plik.close(); //zamknij plik delay(1000); //odczekaj 1s plik = SD.open("1234.txt"); //otwórz plik 1234.txt while (plik.available()) //wykonuj pętlę dopókiwszystkie dane { //nie zostaną zczytane Serial.write(plik.read()); //wypisz zawartość pliku } plik.close(); //zamknij plik } void loop() { } |
Początek tego programu jest zbliżony do poprzedniego z wyjątkiem sprawdzenia istnienia pliku. Co ważne program zostanie wykonany tylko raz. Więc po kolei. Tworzymy plik 1234.txt.* Następnie zapisujemy dane do pliku: „to jest test odczytu z pliku”. Zamykamy plik i odczekujemy sekundę. Następnie otwieramy plik i wykonujemy pętlę typu while. Pętla typu while polega na tym, że wykonywana jest tak długo dopóki warunek zawarty w nawiasach nie będzie fałszywy. W tym przypadku pętla będzie wykonywana tak długo, aż nie zostaną żadne dane do przeczytania. Teraz kolejna ważna uwaga wykorzystujemy Serial.write(). Gdybyśmy chcieli wykorzystać Serial.print() to byśmy otrzymali dane w postaci binarnej. Oczywiście po przekonwertowaniu ich znaki ASCII byśmy otrzymali nasz komunikat, ale po co utrudniać sobie życie skoro można od razu je zapisać jako znaki ASCII.
Serial.print():
Serial.write():
*Przy następnych uruchomieniach programu, plik będzie otwierany, ale nie nadpisywany.
To już koniec tej części poradnika o obsłudze karty SD. Mam nadzieję, że przybliżyliśmy Wam sposób korzystania z karty. Jeżeli chcecie dowiedzieć się więcej o obsłudze karty przy pomocy Arduino IDE to odwiedź stronę Arduino(KLIK!)
Materiały do tej części kursu:
Jeżeli chcesz być informowany na bieżąco o nowych częściach kursu to kliknij ?Lubię to!? bądź subskrybuj naszą stronę, aby otrzymywać na adres e-mail nowości ze strony. Jeżeli masz jakieś pytania to śmiało zadawaj je na forum ; )