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

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

Hybrid View

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

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

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

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

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

نام: SD-Card.jpg
مشاهده: 1129
حجم: 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
    تاریخ عضویت
    Feb 2016
    نوشته ها
    55
    نقل قول نوشته اصلی توسط SAADATMAND نمایش پست ها
    سلام
    كار با sd card خيلي سخت اگر كسي بتونه توي l void loop بهش فرمان بده اون موقع من بهش جايزه مي دم . بنده يك ماه دارم روي اين موضوع كار مي كنم هم با uno هم با mega توي برنامه كاربردي و واقعي شما نياز داريد كدي در قسمت لوپ بنويسي چون در قسمت ستاپ فقط معرفي مي كنه و مشكلي نيست همه مي تونن توي مثالهاي خودش يعني منظورم sd يعني در كتابخانه اش در مورد مثالهايي كه زده شده بيشترش توي ستاپ نوشته شده كه جواب مي ده حالا كافي شما سنسور جريان يا دما داشته باشي و بخواهي از قسمت لوپ فرمان بهش بدي ديگه توي مموري نمي نويسه يعني كار نمي كنه اگر كسي كدي نوشت كه كار كنه بنده بهش جايزه مي دم من توي سايتهاي زيادي اين مشكل را ديدم بيشتر اون ور آب به قول خودمون كافرها ! همشون همين مشكل دارن .
    با تشكر
    ببخشید بنده از ماژولی استفاده کردم که یه SD card همراه یک TFT2.2 inch روش هست که تونستم نمایشگرشو راه بندازم این کارت حافظه اش یه سری پین مشترک با نمایشگر داشت که اونها رو هم زدم به برد UNO همراه با یه ولتاژ 5 ولت از منبع تغذیه . حالا می خواستم ببینم برای ثبت متغیرهایی که از سنسورها می خونیم رو بخواهیم هم ذخیره کنه در کارت حافظه هم نشون بده باید چه کرد؟
    اتصال پین هام به این شکل بوده :
    DC به D6
    LED به D4
    RESET به D4
    CS به D5
    MOSI به D11
    MISO به ِ12D
    SCK به D13
    البته نمایشگرش راه افتاده ولی حافظه رو نمی دونم چجوری راهش بندازم
    از کاربر سعادتمند می خواهم اگه به جوابی رسیدند یه کمکی به ما هم بکنند؟ ممنونم

  5. #5
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    نقل قول نوشته اصلی توسط mr.ansaripour نمایش پست ها
    ببخشید بنده از ماژولی استفاده کردم که یه sd card همراه یک tft2.2 inch روش هست که تونستم نمایشگرشو راه بندازم این کارت حافظه اش یه سری پین مشترک با نمایشگر داشت که اونها رو هم زدم به برد uno همراه با یه ولتاژ 5 ولت از منبع تغذیه . حالا می خواستم ببینم برای ثبت متغیرهایی که از سنسورها می خونیم رو بخواهیم هم ذخیره کنه در کارت حافظه هم نشون بده باید چه کرد؟
    اتصال پین هام به این شکل بوده :
    Dc به d6
    led به d4
    reset به d4
    cs به d5
    mosi به d11
    miso به ِ12d
    sck به d13
    البته نمایشگرش راه افتاده ولی حافظه رو نمی دونم چجوری راهش بندازم
    از کاربر سعادتمند می خواهم اگه به جوابی رسیدند یه کمکی به ما هم بکنند؟ ممنونم

    بببین همین که تونستی نمایشگر رو راه بندازی یعنی تونستی ارتباط spi رو فراهم کنی
    الان باید کدهای راه اندزای اس دی کارت رو سرچ کنیو پین هاشو مطابق این پینهات تغییر بدی

  6. #6
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,064
    نقل قول نوشته اصلی توسط mr.ansaripour نمایش پست ها
    ببخشید بنده از ماژولی استفاده کردم که یه SD card همراه یک TFT2.2 inch روش هست که تونستم نمایشگرشو راه بندازم این کارت حافظه اش یه سری پین مشترک با نمایشگر داشت که اونها رو هم زدم به برد UNO همراه با یه ولتاژ 5 ولت از منبع تغذیه . حالا می خواستم ببینم برای ثبت متغیرهایی که از سنسورها می خونیم رو بخواهیم هم ذخیره کنه در کارت حافظه هم نشون بده باید چه کرد؟
    اتصال پین هام به این شکل بوده :
    DC به D6
    LED به D4
    RESET به D4
    CS به D5
    MOSI به D11
    MISO به ِ12D
    SCK به D13
    البته نمایشگرش راه افتاده ولی حافظه رو نمی دونم چجوری راهش بندازم
    از کاربر سعادتمند می خواهم اگه به جوابی رسیدند یه کمکی به ما هم بکنند؟ ممنونم

    کدهای جدید
    فایل های پیوست شده فایل های پیوست شده

  7. #7
    Member
    تاریخ عضویت
    Feb 2016
    نوشته ها
    55
    دوستان خیلی ممنونم از پاسخ تان مشکل راه اندازی میکرو اش هم حل شده ولی فعلا جدا گانه راه شون انداختم یعنی کارت حافظه جدا ، نمایشگر TFT2.2 اینچ هم جدا (که البته اینو با ولتاژ 5 ولت منبع تغذیه نه اتصال به رایانه) به شکل زیر :
    MOSI به D11
    MISO به ِ12D
    SCK به D13
    و cs کارت حافظه به d4
    و CS نمایشگر tft به d10
    و RST به d8 و
    dc به d9 متصل شده اند با کتابخانه گرفته شده از سایت http://www.adafruit.com/products/1480
    و کتابخانه مثال های خود نرم افزار که SD داره با هر کدوم جدا راه افتاده ولی
    برای ذخیره اطلاعات روی sd طوری که بخواهیم جدولی یا tabular مثلا چند متغیر رو ذخیره کنه مشکل هست مثلا سطر اول نام دو متغیر رو به فاصله یه تب نشون بده و سطرهای بعدی اعدادی که سنسورها می خونند رو زیرش نشون بده که اون خط اول را باید در void setup یکبار اجرا کنه و فایل تکست رو بسته و در VIOD LOOP مجددا باز کرده و خطوط بعدی رو که می خونه ذخیره کنه و نشون بده اینجا دو مشکل هست یکی اینکه کلا دفعه دوم که فایل تکست باز میشه چیزی ذخیره نمیشه و دو اینکه چطور میشه بهش فهموند که در نوشتن مرحله دوم بره خط بعدی اعداد رو ردیف ثبت کنه زیر خط اولی که قبلا ثبت کرده. اینم کد بنده است تا الان :

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

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

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

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

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

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

SEO by vBSEO