eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › Arduino + karta SD
Ilość wypowiedzi w tym wątku: 7

  • 1. Data: 2020-01-26 15:18:41
    Temat: Arduino + karta SD
    Od: "Michal M. Lechanski" <m...@d...eu>

    Dzień dobry,

    Arduino Mega i taki kod:

    #include <SPI.h>
    #include <SD.h>
    File myFile;
    File meFile;
    String file_name;
    String file_name2;
    int filenameNumber = 1;
    int fileData = 0;

    void createlogFile() {
    String ext = ".txt";
    String ext2 = ".tx";
    while (1) {
    file_name = filenameNumber + ext;
    file_name2 = filenameNumber + ext2;
    if (SD.exists(file_name) == false) {
    break;
    } else {
    filenameNumber++;
    }
    }
    myFile = SD.open(file_name, FILE_WRITE);
    myFile.close();

    if (SD.exists(file_name)) {
    Serial.print("1. Log file: ");
    Serial.print(file_name);
    Serial.println(" created.");
    }
    delay(50);
    meFile = SD.open(file_name2, FILE_WRITE);
    meFile.close();

    if (SD.exists(file_name2)) {
    Serial.print("1. Log file: ");
    Serial.print(file_name2);
    Serial.println(" created.");
    }
    }

    void updatelogFile() {
    delay(50);
    if (SD.exists(file_name)) {
    myFile = SD.open(file_name, FILE_WRITE);
    myFile.print("# ");
    myFile.println(fileData);
    myFile.close();
    Serial.print("2. Log file: ");
    Serial.print(file_name);
    Serial.println(" updated.");
    } else {
    Serial.print("2. File ");
    Serial.print(file_name);
    Serial.println(" doesn't exist.");
    }
    delay(50);
    if (SD.exists(file_name2)) {
    meFile = SD.open(file_name2, FILE_WRITE);
    meFile.print("# ");
    meFile.println(fileData);
    meFile.close();
    Serial.print("2. Log file: ");
    Serial.print(file_name2);
    Serial.println(" updated.");
    } else {
    Serial.print("2. File ");
    Serial.print(file_name2);
    Serial.println(" doesn't exist.");
    }
    }

    void setup() {
    Serial.begin(115200);
    Serial.print(F("Initializing SD card..."));
    while (!SD.begin(53)) {
    Serial.println(F("initialization failed!"));
    }
    Serial.println(F("initialization done."));
    createlogFile();
    }

    void loop() {
    updatelogFile();
    delay(1000);
    fileData++;
    }

    Kompiluje się to bez problemów i daje taki log:

    Initializing SD card...initialization done.
    1. Log file: 2.txt created.
    1. Log file: 2.tx created.
    2. Log file: 2.txt updated.
    2. Log file: 2.tx updated.
    2. File 2.txt doesn't exist.
    2. File 2.tx doesn't exist.
    2. File 2.txt doesn't exist.

    na karcie pliki oczywiście istnieją:

    Volume in drive E has no label.
    Volume Serial Number is 6CE0-F3F8

    Directory of E:\

    01/01/2000 01:00 654 1.TXT
    01/01/2000 01:00 8 1.TX
    01/01/2000 01:00 3 2.TXT
    01/01/2000 01:00 0 2.TX
    23/01/2020 11:22 <DIR> libraries
    23/01/2020 11:22 <DIR> hardware
    26/01/2020 13:26 0 log2.txt
    5 File(s) 665 bytes
    2 Dir(s) 7,897,579,520 bytes free

    Bardzo proszę o podpowiedź co robię źle, dlaczego pliki nie są uaktualniane?

    Pomożecie? Z góry bardzo dziękuję.

    --
    Michał


  • 2. Data: 2020-01-27 10:01:13
    Temat: Re: Arduino + karta SD
    Od: Marek <f...@f...com>

    On Sun, 26 Jan 2020 14:18:41 +0000, "Michal M. Lechanski"
    <m...@d...eu> wrote:
    > Bardzo proszę o podpowiedź co robię źle, dlaczego pliki nie są
    > uaktualniane?
    > Pomożecie? Z góry bardzo dziękuję.

    A metoda SD.exist() wywoływana wielokrotnie na tej samej nazwie pliku
    (istniejącego) zawsze zwraca true? Bo to wygląda jakby kolejne
    wywołania tej metody już nie zwracały true mimo, że plik istnieje
    (popsuta biblioteka, komunikacja z kartą).

    --
    Marek


  • 3. Data: 2020-01-27 12:53:34
    Temat: Re: Arduino + karta SD
    Od: "J.F." <j...@p...onet.pl>

    Użytkownik "Marek" napisał w wiadomości grup
    dyskusyjnych:a...@n...neos
    trada.pl...
    On Sun, 26 Jan 2020 14:18:41 +0000, "Michal M. Lechanski"
    <m...@d...eu> wrote:
    >> Bardzo proszę o podpowiedź co robię źle, dlaczego pliki nie są
    >> uaktualniane?
    >> Pomożecie? Z góry bardzo dziękuję.

    >A metoda SD.exist() wywoływana wielokrotnie na tej samej nazwie pliku
    >(istniejącego) zawsze zwraca true? Bo to wygląda jakby kolejne
    >wywołania tej metody już nie zwracały true mimo, że plik istnieje
    >(popsuta biblioteka, komunikacja z kartą).

    Albo ... open otworzylo, a potem plik znikl, przynajmniej dla exist().

    Ale na karcie pliki jednak sa, co ciekawe - z rozna iloscia danych.
    Skutek wczesniejszych eksperymentow, czy blokuje sie gdzies przy
    zapisie do 2.TX ?

    J.


  • 4. Data: 2020-01-27 13:37:52
    Temat: Re: Arduino + karta SD
    Od: Marek <f...@f...com>

    On Mon, 27 Jan 2020 12:53:34 +0100, "J.F."
    <j...@p...onet.pl> wrote:
    > Albo ... open otworzylo, a potem plik znikl, przynajmniej dla
    > exist().

    Ale o ile dobrze spojrzałem on nie testuje exist na otwartym pliku.
    Jeśli użycie pary open-close na istniejącym pliku zaburza exist
    (użyte po close) to jest zdrowo popsuta biblioteka. Co mnie z kolei
    dziwi bo liby Arduino są dosyć mocno czochrane przez userow i taki
    poważny bug długo by się nie uchował.

    --
    Marek


  • 5. Data: 2020-01-27 14:03:44
    Temat: Re: Arduino + karta SD
    Od: "J.F." <j...@p...onet.pl>

    Użytkownik "Marek" napisał w wiadomości grup
    dyskusyjnych:a...@n...neos
    trada.pl...
    On Mon, 27 Jan 2020 12:53:34 +0100, "J.F."
    <j...@p...onet.pl> wrote:
    >> Albo ... open otworzylo, a potem plik znikl, przynajmniej dla
    >> exist().

    >Ale o ile dobrze spojrzałem on nie testuje exist na otwartym pliku.
    >Jeśli użycie pary open-close na istniejącym pliku zaburza exist
    >(użyte po close) to jest zdrowo popsuta biblioteka.

    Tez tak widze, ale moze jakies opoznienia w zapisie ?

    >Co mnie z kolei dziwi bo liby Arduino są dosyć mocno czochrane przez
    >userow i taki poważny bug długo by się nie uchował.

    Tez tak mysle, a jednak cos nie dziala ..

    J.


  • 6. Data: 2020-01-27 17:26:41
    Temat: Re: Arduino + karta SD
    Od: Marek <f...@f...com>

    On Mon, 27 Jan 2020 14:03:44 +0100, "J.F."
    <j...@p...onet.pl> wrote:
    > Tez tak mysle, a jednak cos nie dziala ..

    Dlatego stawiam jednak na problem z użytkownikiem.

    --
    Marek


  • 7. Data: 2020-01-27 21:02:18
    Temat: Re: Arduino + karta SD
    Od: "Michal M. Lechanski" <m...@d...eu>

    W dniu 27.01.2020 o 16:26, Marek pisze:
    > On Mon, 27 Jan 2020 14:03:44 +0100, "J.F."
    > <j...@p...onet.pl> wrote:
    >> Tez tak mysle, a jednak cos nie dziala ..
    >
    > Dlatego stawiam jednak na problem z użytkownikiem.

    Takie były i moje typy.
    Dla spokojności jednak skompilowałem ten kod na innym komputerze i
    okazało się że wszystko działa bez błędów. Czyli raczej biblioteka bo
    płytka Arduino i czytnik karty były ten same.

    Dziwi mnie tylko jak to możliwe, bo instalacje Arduino IDE na obu
    komputerach były uaktualnione do najnowszej wersji tego samego dnia.
    No chyba że biblioteki (te w katalogu instalacyjnym, bo te w katalogu
    użytkownika są identyczne na obu komputerach) raz zainstalowane nie są
    uaktualniane.

    Tak czy siak, dziękuję za zainteresowanie. Wygląda że problem rozwiązany.

    Przy okazji zapytam o moduły czytników kart - dlaczego czytniki kart
    microSD maja jeden rządek pinów, a kart SD dwa? Opisy są takie same na
    obu modułach ale wygląda że te piny są zdublowane na czytniku "dużych"
    kart SD...

    --
    Michał

strony : [ 1 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: