ПОМОГИТЕ SD читается в setup но не читается в loop может где я не так сделал Код (C++): #include <LiquidCrystal.h> #include <OneWire.h> OneWire ds(10); #include <Servo.h> Servo servo; #include <SD.h> #include <SPI.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); Sd2Card card; SdVolume volume; SdFile root; const int sd = 53; File myFile; void setup() { const int sd = 53; pinMode(21, INPUT); pinMode(22, INPUT); pinMode(23, INPUT); pinMode(24, INPUT); pinMode(25, INPUT); pinMode(35, OUTPUT); lcd.begin(16, 2); Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } SD.begin(53); while ( !SD.begin(53)) { SD.begin(53); Serial.println("ff"); //сдесь он нормально читает с 1-2 попытки delay (1000) ; return ; } SD.begin(53); Serial.print("Initializing SD card..."); if (!SD.begin(53)) { Serial.println("initialization failed!"); return; } Serial.println("initialization done."); if (SD.exists("example.txt")) { Serial.println("example.txt exists."); } else { Serial.println("example.txt doesn't exist."); } // open a new file and immediately close it: Serial.println("Creating example.txt..."); myFile = SD.open("example.txt", FILE_WRITE); myFile.close(); } void loop() { int tim = 0 ; String klych; char tx[3] ; unsigned int dengi = 0; byte b;// nado dlia klycha byte present = 0 ;// byte addr[8]; if ( !ds.search(addr)) // do syda { Serial.println("nss"); delay(300); return; } ds.search(addr); for (int i = 4 ; i < 8 ; i++) { klych += addr[i], HEX ; } ds.reset_search(); Serial.println(klych); klych += ".txt"; SD.begin(53); while ( !SD.begin(53)) { Serial.println("ff"); // а здесь всё больше не читает delay (1000) ; } lcd.print(klych); myFile = SD.open(klych.c_str(), FILE_WRITE); что не так ????? при загруски пробных скечей из образцов все работает
Код офарматируйте в IDE и в правильный тег выставьте. Это чтение? Код (C++): Serial.println("ff"); // сдесь читает
да я это ля себя поставил чтобы понимать где программа)))) , просто понять не могу в лупе она не читает sd я там код уже мучал и разное подстовлял )))) щас имеет такой вид , много лишнего но я не знал что уже делать , в setup работает а в loop нет (((( я уже голову сломал #include <LiquidCrystal.h> #include <OneWire.h> OneWire ds(10); #include <Servo.h> Servo servo; #include <SD.h> #include <SPI.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); Sd2Card card; SdVolume volume; SdFile root; const int sd = 53; File myFile; void setup() { const int sd = 53; pinMode(21, INPUT); pinMode(22, INPUT); pinMode(23, INPUT); pinMode(24, INPUT); pinMode(25, INPUT); pinMode(35, OUTPUT); lcd.begin(16, 2); Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } SD.begin(53); while ( !SD.begin(53)) { SD.begin(53); Serial.println("ff"); delay (1000) ; return ; } SD.begin(53); Serial.print("Initializing SD card..."); if (!SD.begin(53)) { Serial.println("initialization failed!"); return; } Serial.println("initialization done."); if (SD.exists("example.txt")) { Serial.println("example.txt exists."); } else { Serial.println("example.txt doesn't exist."); } // open a new file and immediately close it: Serial.println("Creating example.txt..."); myFile = SD.open("example.txt", FILE_WRITE); myFile.close(); } void loop() { int tim = 0 ; String klych; char tx[3] ; unsigned int dengi = 0; byte b;// nado dlia klycha byte present = 0 ;// byte addr[8]; if ( !ds.search(addr)) // do syda { Serial.println("nss"); delay(300); return; } ds.search(addr); for (int i = 4 ; i < 8 ; i++) { klych += addr, HEX ; } ds.reset_search(); Serial.println(klych); klych += ".txt"; SD.begin(53); while ( !SD.begin(53)) { Serial.println("ff"); delay (1000) ; } lcd.print(klych); myFile = SD.open(klych.c_str(), FILE_WRITE);
я просто давольно не давно занимаюсь этими вещами и многое не понимаю(((( если можно то объясните могу даже заплатить (хотя денег не много) но чтобы обяснили как чайнику )))
Код (C++): #include <LiquidCrystal.h> #include <OneWire.h> OneWire ds(10); #include <Servo.h> Servo servo; #include <SD.h> #include <SPI.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); Sd2Card card; SdVolume volume; SdFile root; const int sd = 53; File myFile; void setup() { const int sd = 53; pinMode(21, INPUT); pinMode(22, INPUT); pinMode(23, INPUT); pinMode(24, INPUT); pinMode(25, INPUT); pinMode(35, OUTPUT); lcd.begin(16, 2); Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } SD.begin(53); while ( !SD.begin(53)) { SD.begin(53); Serial.println("ff"); delay (1000) ; return ; } SD.begin(53); Serial.print("Initializing SD card..."); if (!SD.begin(53)) { Serial.println("initialization failed!"); return; } Serial.println("initialization done."); if (SD.exists("example.txt")) { Serial.println("example.txt exists."); } else { Serial.println("example.txt doesn't exist."); } // open a new file and immediately close it: Serial.println("Creating example.txt..."); myFile = SD.open("example.txt", FILE_WRITE); myFile.close(); } void loop() { int tim = 0 ; String klych; char tx[3] ; unsigned int dengi = 0; byte b;// nado dlia klycha byte present = 0 ;// byte addr[8]; if ( !ds.search(addr)) // do syda { Serial.println("nss"); delay(300); return; } ds.search(addr); for (int i = 4 ; i < 8 ; i++) { klych += addr[i], HEX ; } ds.reset_search(); Serial.println(klych); klych += ".txt"; SD.begin(53); while ( !SD.begin(53)) { Serial.println("ff"); delay (1000) ; } lcd.print(klych); myFile = SD.open(klych.c_str(), FILE_WRITE);
в таком виде не видит (((( но на пробном скече всё видит (((( я уже 2 дня борюсь Код (C++): #include <LiquidCrystal.h> #include <OneWire.h> OneWire ds(10); #include <Servo.h> Servo servo; #include <SD.h> #include <SPI.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); Sd2Card card; SdVolume volume; SdFile root; File myFile; void setup() { pinMode(21, INPUT); pinMode(22, INPUT); pinMode(23, INPUT); pinMode(24, INPUT); pinMode(25, INPUT); pinMode(35, OUTPUT); lcd.begin(16, 2); Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } } в таком виде тоже не видит((( void loop() { int tim = 0 ; String klych; char tx[3] ; unsigned int dengi = 0; byte b;// nado dlia klycha byte present = 0 ;// byte addr[8]; if ( !ds.search(addr)) // do syda { Serial.println("nss"); delay(300); return; } ds.search(addr); for (int i = 4 ; i < 8 ; i++) { klych += addr[i], HEX ; } ds.reset_search(); Serial.println(klych); klych += ".txt"; while ( !SD.begin(53)) { Serial.println("ff"); delay (1000) ; } lcd.print(klych); myFile = SD.open(klych.c_str(), FILE_WRITE); if (!myFile) { lcd.setCursor(0, 0); lcd.print("poshol von"); Serial.println("net"); return; } else {
как я понял что while(!SD.begin(53)) { Serial.println("ff"); delay (1000); в лупе не работает а толька в сетупе, причины не понятна
Код (C++): while (!SD.begin(53)) { SD.begin(53); Serial.println("ff"); delay (1000) ; return; } Зачем тут цикл, если он выполнится в лучшем случае один раз? Объект SD, он откуда появляется? Можно увидеть пример рабочего скетча?