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

با توجه به محدود بودن حافظه ی میکروکنترلر ها، معمولا برای ثبت دیتاهای طولانی و لاگ ها از کارت های حافظه ی SD و Micro SD در پروژه ها استفاده می شود. این کارت ها با کارایی فوق العاده بالا و قیمت مناسبشان می توانند گزینه ی مناسبی برای اکثر پروژه های الکترونیکی باشند. استفاده از این ماژول های کارتخوان به نسب ساده است و پروتکل ارتباطی آن ها معمولا به صورت SPI می باشد.
برای اتصال کارتخوان های SD و Micro SD اتصال چهار پین ارتباطی MISO/MOSI/SCK/CS و دو پین تغذیه ی VCC/GND الزامی هست. جدول زیر به وضوح پین های مربوطه را برای برد های UNO و Mega نمایش می دهد، در صورتی که از برد متفاوتی استفاده می کنید. با دقت به پین های برد خودتان ارتباط را به صورت صحیح بین ماژول و برد برقرار کنید.
SD/MicroSD | Mega | Uno |
CS | ۵۳ | ۱۰ |
SCK | ۵۲ | ۱۳ |
MOSI | ۵۱ | ۱۱ |
MISO | ۵۰ | ۱۲ |
VCC | VCC | VCC |
GND | GND | GND |
بعد از برقراری ارتباط می توانید با استفاده از اسکچ زیر ماژول کارتخوان SD یا Micro SD خودتان را تست کنید. این کد طوری طراحی شده است که وضعیت یک فایل نمونه را در پنجره ی سریال نمایش دهد، در صورت عدم وجود آن را به وجود بیاورد و در صورت وجود فایل مورد نظر آن را حذف کند، این کد را می توانید با استفاده از این لینک دریافت نمایید. در صورتی که کار با برنامه ی آردوینو را بلد نیستید این آموزش را مطالعه نمایید.
/* تست نمایش، نوشتن و حذف فایل از روی کارت حافظه */ #include <SPI.h> #include <SD.h> File myFile; void setup() { Serial.begin(9600); while (!Serial) { ; } Serial.print("Initializing SD card..."); if (!SD.begin(4)) { 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."); } Serial.println("Creating example.txt..."); myFile = SD.open("example.txt", FILE_WRITE); myFile.close(); if (SD.exists("example.txt")) { Serial.println("example.txt exists."); } else { Serial.println("example.txt doesn't exist."); } Serial.println("Removing example.txt..."); SD.remove("example.txt"); if (SD.exists("example.txt")) { Serial.println("example.txt exists."); } else { Serial.println("example.txt doesn't exist."); } } void loop() { }
با توجه به مصرف تغذیه ی بسیار پایین و سرعت بالای ارتباطی کارت های حافظه ی SD و Micro SD استفاده از این نوع حافظه می تواند راه حلی مناسب و عاقلانه برای پروژه هایی که نیازمند حافظه ی بیشتر از حافظه ی پیش فرض میکروکنترلر هستند باشند. استفاده از این کارت ها آسان است و فضای بسیار کمی را نیز اشغال می کنند پس به راحتی می توانید با استفاده از این ماژول های کارتخوان به نیاز خود دست پیدا کنید.
سلام و خسته نباشید
اقای مهندس من میخام یه سری اطلاعات رو از پورت سریال اردوینو به کارت حافظه منتقل کنم .منتها وقتی از پورت سریال خود اردوینو استفاده میکنم مشکلی نیست.اما وقتی پورت سریال رو به میکروی دیگه متصل میکنم.کاراکترهای عجیب میفرسته .سرعت انتقال یکی هست اما نمیدونم مشکل کجاست.ممنون میشم راهنمایی کنید
با عرض سلام و ادب و احترام
مهم ترین عامل ایجاد این مشکل یکی نبودن سرعت ارتباطی بین میکروکنترلر های مختلف و کارت حافظه ی شماست. جدای از سرعت قابلیت درک سرعت برای میکروکنترلر نیز مهم است، به صورت مثال AtMega328 امکان درک ارتباط سریال در سرعت 115200 را ندارد، همه ی سرعت ها را روی 9600 تنظیم کنید و تست بگیرید. جدای ازا این موارد از یک میکروکنترلر سوم نیز استفاده کنید و با آن هم تست بگیرید، ممکن است خود میکروکنترلر دوم نیز دچار مشکل باشد. در نهایت نیز مسیر ارتباطی سریال را چک کنید، ممکن است قطعه ای میان راه در استریم بیت ایجاد تغییر و مشکل کند، آن قطعه را از مدار حذف کنید.
موفق و موید باشید.
با عرض سلام
می خواساتم بدام nodmcu چقدر حافظه برای انتقال اطلاعات روی آن دارد.
با عرض سلام و ادب و احترام
برد اصلی طبق توضیحات سازنده : 128kBytes Memory – 4MBytes Storage. سایر برد های متفرقه بسته ماژول ESP8266 استفاده شده در برد.
موفق و موید باشید.
سلام
ممنون از آموزش
من sd رو که وصل می کنم به آردویینو و template رو اجرا می کنم، sd رو نمیشناسه، اتصالاتم به آردویینو uno این شکلیه:
cs 10
sck 13
mosi 11
miso 12
vcc 3.3v
gnd gnd
میشه لطفا راهنمایی کنید مشکل کجاست؟
با عرض سلام و ادب و احترام
پین های اتصالی صحیح هستند. تصویری از ماژول به همراه اسکچ مورد استفاده را از طریق پیام رسان تلگرام ارسال کنید تا بررسی کنم.
موفق و موید باشید.