صفحه 1 از 5 123 ... آخرینآخرین
نمایش نتایج: از 1 به 10 از 45
Like Tree4 لایک

موضوع: ماژول SD Card Reader با قابلیت خواندن و نوشتن

  1. #1
    Junior Member
    تاریخ عضویت
    Jul 2013
    نوشته ها
    13

    ماژول SD Card Reader با قابلیت خواندن و نوشتن

    یک ماژول بسیار ساده برای برد آردوینوی شما!

    با توجه به حجم محدود حافظه EEPROM میکروکنترلرها، در اختیار داشتن یک حافظه جانبی با ظرفیت بیشتر برای اموری همچون ثبت گزارشات و لاگ های پروژه، ذخیره داده های سنسورها و ... ضروری به نظر می رسد. این ماژول ارزان قیمت، همه آنچه را که شما برای ذخیره داده های خود بر روی SD Card نیاز دارید، در اختیارتان قرار می دهد.

    شماتیک مدار:
    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: SD-Card.jpg
مشاهده: 1053
حجم: 49.1 کیلو بایت

    مثال آردوینو:
    کد:
    /*
     # Be name Khoda!
     # This example shows how use the utility libraries on which the'
       SD library is based in order to get info about your SD card.
       Very useful for testing a card when you're not sure whether its working or not.
     
     # Company    : AftabRayaneh
     # Website    : http://shop.aftabrayaneh.com
     # Editor     : Elham Rasekh
     # Date       : 01.09.2013
     # Version    : 2.0  
     	
     The circuit:
     * SD card attached to SPI bus as follows:
     ** MOSI - pin 11 on Arduino Uno/Duemilanove/Diecimila
     ** MISO - pin 12 on Arduino Uno/Duemilanove/Diecimila
     ** CLK - pin 13 on Arduino Uno/Duemilanove/Diecimila
     ** CS - depends on your SD card shield or module. 
     	 Pin 4 used here for consistency with other Arduino examples
     */
    
    // include the SD library:
    #include <SD.h>
    
    // set up variables using the SD utility library functions:
    Sd2Card card;
    SdVolume volume;
    SdFile root;
    
    // change this to match your SD shield or module;
    // Arduino Ethernet shield: pin 4
    // Adafruit SD shields and modules: pin 10
    // Sparkfun SD shield: pin 8
    const int chipSelect = 4;    
    
    void setup()
    {
      // Open serial communications and wait for port to open:
      Serial.begin(9600);
      while (!Serial) {
        ; // wait for serial port to connect. Needed for Leonardo only
      }
    
      Serial.print("\nInitializing SD card...");
      // On the Ethernet Shield, CS is pin 4. It's set as an output by default.
      // Note that even if it's not used as the CS pin, the hardware SS pin 
      // (10 on most Arduino boards, 53 on the Mega) must be left as an output 
      // or the SD library functions will not work. 
      pinMode(10, OUTPUT);     // change this to 53 on a mega
    
      // we'll use the initialization code from the utility libraries
      // since we're just testing if the card is working!
      if (!card.init(SPI_HALF_SPEED, chipSelect)) {
        Serial.println("initialization failed. Things to check:");
        Serial.println("* is a card is inserted?");
        Serial.println("* Is your wiring correct?");
        Serial.println("* did you change the chipSelect pin to match your shield or module?");
        return;
      } 
      else {
        Serial.println("Wiring is correct and a card is present."); 
      }
    
      // print the type of card
      Serial.print("\nCard type: ");
      switch(card.type()) {
      case SD_CARD_TYPE_SD1:
        Serial.println("SD1");
        break;
      case SD_CARD_TYPE_SD2:
        Serial.println("SD2");
        break;
      case SD_CARD_TYPE_SDHC:
        Serial.println("SDHC");
        break;
      default:
        Serial.println("Unknown");
      }
    
      // Now we will try to open the 'volume'/'partition' - it should be FAT16 or FAT32
      if (!volume.init(card)) {
        Serial.println("Could not find FAT16/FAT32 partition.\nMake sure you've formatted the card");
        return;
      }
    
      // print the type and size of the first FAT-type volume
      uint32_t volumesize;
      Serial.print("\nVolume type is FAT");
      Serial.println(volume.fatType(), DEC);
      Serial.println();
    
      volumesize = volume.blocksPerCluster();    // clusters are collections of blocks
      volumesize *= volume.clusterCount();       // we'll have a lot of clusters
      volumesize *= 512;                            // SD card blocks are always 512 bytes
      Serial.print("Volume size (bytes): ");
      Serial.println(volumesize);
      Serial.print("Volume size (Kbytes): ");
      volumesize /= 1024;
      Serial.println(volumesize);
      Serial.print("Volume size (Mbytes): ");
      volumesize /= 1024;
      Serial.println(volumesize);
    
    
      Serial.println("\nFiles found on the card (name, date and size in bytes): ");
      root.openRoot(volume);
    
      // list all files in the card with date and size
      root.ls(LS_R | LS_DATE | LS_SIZE);
    }
    
    
    void loop(void) 
    {
    
    }
    جهت سفارش این کالا، به این بخش در فروشگاه آفتاب رایانه مراجعه نمایید.
    فایل های پیوست شده فایل های پیوست شده
    ویرایش توسط e.rasekh : 09-08-2013 در ساعت 08:19 AM

  2. #2
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064

    مشکل compile شدن

    اگر این برنامه compile شود error می دهد .مشکل این است که باید خط
    #include <SPI.h>
    را به برنامه اضافه کنیم

  3. #3
    Member
    تاریخ عضویت
    Sep 2013
    نوشته ها
    78
    سلام
    كار با sd card خيلي سخت اگر كسي بتونه توي l void loop بهش فرمان بده اون موقع من بهش جايزه مي دم . بنده يك ماه دارم روي اين موضوع كار مي كنم هم با uno هم با mega توي برنامه كاربردي و واقعي شما نياز داريد كدي در قسمت لوپ بنويسي چون در قسمت ستاپ فقط معرفي مي كنه و مشكلي نيست همه مي تونن توي مثالهاي خودش يعني منظورم sd يعني در كتابخانه اش در مورد مثالهايي كه زده شده بيشترش توي ستاپ نوشته شده كه جواب مي ده حالا كافي شما سنسور جريان يا دما داشته باشي و بخواهي از قسمت لوپ فرمان بهش بدي ديگه توي مموري نمي نويسه يعني كار نمي كنه اگر كسي كدي نوشت كه كار كنه بنده بهش جايزه مي دم من توي سايتهاي زيادي اين مشكل را ديدم بيشتر اون ور آب به قول خودمون كافرها ! همشون همين مشكل دارن .
    با تشكر

  4. #4
    Member
    تاریخ عضویت
    Sep 2013
    نوشته ها
    78
    نبود ؟ جايزه خوب هستش !

  5. #5
    مدیر اصلی
    تاریخ عضویت
    Aug 2012
    محل سکونت
    ایران
    نوشته ها
    440
    سلام
    جایزه رو بدید به خانوم اسماعیل زاده
    http://forum.arduino.ir/4/14/293.html

  6. #6
    Junior Member
    تاریخ عضویت
    Jun 2014
    نوشته ها
    2
    سلام از این ماژول کسی جواب گرفته؟ می خوام بدونم ماژول من خرابه یا ماژول احتیاج به تبدیل 5 ولت به 3.3 برای همه ولتاژها داره

  7. #7
    Senior Member
    تاریخ عضویت
    Aug 2014
    نوشته ها
    231
    الان متوجه نمیشم برای این که حافظه اردوینو زیاد بشه باید اون بورد کوچولو sd card رو به اردوینو وصل کنم و این کد رو به اردوینو بدم بعد کد هایی که به اردوینو میدم میره توی Sd card یا باید sd card رو در بیارم بزنم به کامپیوتر و کد هارو توی کارت بریزم ؟
    یا هیچ کدوم ؟

  8. #8
    Senior Member
    تاریخ عضویت
    Nov 2013
    نوشته ها
    183
    هیچ کدوم
    شما برنامه هایی رو که مینویسید رو خوده آی سی باید ریخته شه
    با اضافه کردنه این ماژول و وصل کردن یک مموری کارت میتونید اطلاعاتتون اگر زیاد هستش تو مموری ذخیره کنید یا از اون بخونید همین

  9. #9
    Junior Member
    تاریخ عضویت
    Dec 2014
    نوشته ها
    20
    نقل قول نوشته اصلی توسط Arman5592 نمایش پست ها
    الان متوجه نمیشم برای این که حافظه اردوینو زیاد بشه باید اون بورد کوچولو sd card رو به اردوینو وصل کنم و این کد رو به اردوینو بدم بعد کد هایی که به اردوینو میدم میره توی Sd card یا باید sd card رو در بیارم بزنم به کامپیوتر و کد هارو توی کارت بریزم ؟
    یا هیچ کدوم ؟
    هيچ كدوم نيست و كاري كه اين ماژول انجام ميشه اتوماتيك نيست و بايد با دستورات ، خودتون دستي با اس دي كارت كار كنين نه اين كه خودش بفهمه حافظش كم اومد بريزه تو اس دي !

  10. #10
    Junior Member
    تاریخ عضویت
    Sep 2014
    نوشته ها
    2
    مشکل برنامه اینجاس که باید پایه ی ss خروجی معرفی شه. من با همین برنامه تست کردم جواب گرفتم. ممنون

صفحه 1 از 5 123 ... آخرینآخرین

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

SEO by vBSEO