به نام خدا | سلام خدمت شما داشای گلم | عرضم به حظورون که توی این مطلب از سری مطالب آموزش آردوینو میخوام به آموزش SPI در آردوینو بپردازم و همین طور آموزش SPI مجازی رو بگم و همین طور راه اندازی IC 74HC595 رو با آردوینو و همچنین! راه اندازی IC 74hC165 با آردوینو رو به صورت خرکی(بی تربیت، این چه کلمات چیزی هستش که میگی ) هم بگم.
و این مطلب رو هم قرار بود خیلی وقت پیش میزاشتم که قسمت نشد و الان میزارم به دو دلیل : ۱) برا مطلب آموزش نوشتن کتابخونه برا nrf24l01 باید توابع Spi رو قبلش گفت و نمیشه نگفت و پیچوند 2) درخواست یکی از دوستان
3) گفتیم یه مطلبی درباره آردوینو گزاشته باشیم
آموزش جامع آردوینو جلسه ۱۴ SPI AND Virtual SPI
SPI چیست : در جواب باید بگم که یه روش ارتباط بین دو چیز هستش، مثل usart، برا توضیح بیشتر برید تو نت سرچ کنید، حال توضیح دادن ندارم
فرق Virtual SPI با SPI : اولی با کدنویسی و تعیین چند تا پایه از میکرو(هر پایه ای از میکرو که دوست داشتین) قابل اجرا هستش و دومی به صورت سخت افزاری داخل میکرو ها قرار داره و در این حالت حتما باید از پایه های خاصی از میکرو استفاده کنید.(عکس زیر)، برا توضیح بیشتر تو نت بسرچید
پایه های SPI در آردوینو
عکس زیر رو ببینید کافیه.
Virtual SPI in Arduino
خب این قسمت دو تا تابع داره، همین الان بگم و شرش کم بشه و بره پی کارش ، سر همین قسمت بود که من این مطلب رو دارم الان میزارم، وگرنه باید ۳۰ سال پیش اینو میزاشتم، البته چون دوستان هم کسی درخواست نکرد این آموزش رو من نزاشتم.
SPI in Arduino
چیزایی که تو این مطلب نگفتم(بعدا یادم بندازید تکمیل کنم مطلب رو) :
- مثالی از Spi
- توضیح متون داخل صفحه SPI library
- توضیح تابع usingInterrupt
- توضیح کامل ارتباط spi با چند دستگاه(البته عکس زیر رو هم ببینید متوجه میشید و در بالا هم توضیحاتی کم و بیش دادم، تو عکس زیر، اولی برا ارتباط با یه تراشه دیگه هستش و عکس مورد زیریش برا بیش از یکی)
این مطلب، قسمت SPI (و نه Virual SPI، البته اینم مهمه جای خودش ولی…) خیلی مهمه، چون در آینده که بخوام نوشتن کتابخونه رو آموزش بدم این مورد نیازه، و این که بخوای کد های کتابخونه ها رو بررسی کنی بازم این مورد نیازه و اگه بخوای یه IC رو راه اندازی کنی بازم این مورد نیازه، اگه بخوای پول دربیاری این مورد نیازه، اگه بخوای یه کتابخونه برا یه قطعه ای بنویسی که بر اساس نیاز مشتری تهیه باید بشه باید اینو یاد بگیری، اگه میخوای بری بهشت باید اینو یاد بگیری ، از شوخی بگذریم اگ بخواین حرفه ای کار کنید باید برنامه نویسیتون رو قوی کنید و این پروتکول های ارتباطی، ADC، TIMER و… روخوب یاد بگیرید و فریب این همه کتابخونه آماده آردوینو رو هم نخورید.، چون با اینا شاید برا کارای ساده خوب باشه اما تو کارای حرفه ای عین خر تو گل
گیر میکنید و چیزی هم بلد نیستید و فقط بلیدید کتاب خونه آماده دانلود کنید و….(یکی بیاد به خودم بگه اینا رو
)
با توجه به این که در شرایط ناجوری این مطلب نوشته شده ، اگه جایی اشتباه، کم، زیاد و… هستش بگید تا درست/تکمیل و… کنم.
خب اینم مطلبم تموم شد، اگه مفید بود براوتون، یه دعای کنید ما رو.(البته دعای خوب اااا، و نه دعای بد، یه دفه وسط نماز دعا نکنی کشتی داخل هواپیما، بیوفته پایین و بخوره تو ملاج من عجب دعایی شد
)
فعلا یا علی تا مطلب بعد(البته اگه زنده بودیم).
مهمان
سلام.ممنون از سایت خوبتون.
من میخوام با esp32 همزمان rfid , sd راه بندازم ولی نمیشه با اینکه ss های متفاوت دادم.
میشه کمکم کنید واقعا کارم گیره؟؟؟؟؟؟؟؟؟
مهمان
خیلی ممنون بابت اطلاعاتتون
من دارم یه برد beaglebone به dac5535b متصل میکنم با پروتکل spi
ممنون میشم با هم در ارتباط باشیم
مهمان
سلام!

من از nrf24l01 استفاده می کنم ،اما، من از پین های دیجیتال SPI از پین 9-10-11-12-13 استفاده می کنم،
من امیدوار بودم که بتونم CE، CSN، MOSI، MISO، SCLK را به خروجی های آنالوگ تبدیل کنم مثلا (A4-A0).
من از طریق کتابخانه ها نتونستم کارمو راه بندازم ولی اینارو تو نت پیدا کردم:
Pin 14 = Analog in 0
Pin 15 = Analog in 1
Pin 16 = Analog in 2
Pin 17 = Analog in 3
Pin 18 = Analog in 4
Pin 19 = Analog in 5
اما، همانطور که می ترسیدم، به سادگی تغییر اعداد به عدد پین آنالوگ کار نمی کند. (14-15-16-17-18)
آیا حتی می تونم از پین های آنالوگ برای SPI استفاده کرد؟ (من می دونم که پین های آنالوگ می توانند به عنوان ورودی و خروجی دیجیتال استفاده شوند.)
چه چیز دیگری باید آن را تغییر دهم تا آن را کار کنم؟
نویسنده این مطلب
سلام –
1-از SPI سخت افزای پیدا کن.
2-پایه های sPI رو از شماتیک بردت پیدا کن موقعیتشو.
مهمان
یعنی راهی هست که به غیر از پین 9-10-11-12-13 استفاده کرد من تازه کار هستم میشه بیشتر توضیح بدید

با کتابخونه های spi هم کارم راه نیوفتاد
spiسخت افزاری که همه جا میگن پین 9-10-11-12-13 هست
میشه پایه های انالوگ تبدیل کنم به spi در اردوینو اخه تو طراحیم به مشکل خوردم خواستم از پایه های انالوگ استفاده کنم به عنوان spi
فقط و فقط برای استفاده { nrf24l01}
نویسنده این مطلب
برا UNO و MEGA با هم فرق دارن.
مهمان
سلام از این که پیگیر هستم ناراحت نشید اخه جز شما کجا برم
خوب اصل مطلب اینه که برای اردوینوuno خواستم استفاده کنم
راهی هست پایه انالوگ بشهspi
نویسنده این مطلب
من اگه بلد باشم جواب میدم در حد توانم – چرا جواب ندم – جایی هم ببینم ملت دنبال کد آماده هستن جواب نمیدم.
—
تو هر میکرویی پایه هایی برای SPI تعبیه شده – از پایه های دیگه بخوای برا نقش SPI استفاده کنی باید بری سمت استفاده از کتابخونه “SPI مجازی”
حالا این SPI رو چیکار داری؟ چی میخوای راه بندازی دقیقا؟ چون الان برا آردوینو برا هر قطعه ای کتابخونه های زیادی به صورت آماده موجود هستش.
مهمان
واقعا راهی نیست
مهمان
برا uno
نویسنده این مطلب
سرچ کردم این عکس خوب بود : – پایه های 10 تا 13 برا SPI هستش همون طور که میبینی
https://www.theengineeringprojects.com/wp-content/uploads/2018/06/Introduction-to-Arduino-UNO.png
تو نظر اولت گفتی :
یعنی چی؟ پایه های دیجیتال رو میخوای به عنوان خروجی آنالوگ استفاده کنی؟ خب با تایمر میشه این کارو کرد – با PWM
اگه هم مشکل راه اندازی NRF رو داری که پایه های sPI آردوینو UNO رو عکسشو در بالا گزاشتم برات.
مهمان
والا من فقط گفتم پایه های انالوگ رو میخام به عنوان spi استفاده کنم چون از خود پایهای اصلی spi میخام pwm بگیرم کد اماده نخواستم فقط گفتم راهی هست یا نه اگر هست بفرمایید
مهمان
بابا دیگه اینقدراهم اماتور نیستیم بلدم حتی کد بنویسم نه که تجربم کمه گفتم از اینجا راهی بیابم پیشاپیش یا پساپس تشکر

مهمان
سلام مهندس خسته نباشی
یه پروژه دارم که باید ماژول RFID (RC522) و NRF رو به اردوینو وصل کنم ، با هم کار نمیکنن ولی جدا جدا که وصل میکنم کار میکنن.
پایه های CS هر کدوم رو هم جدا انتخاب کردم ممنون میشم راهنمایی کنید .
توی سایت های مختلف فارسی و انگلیسی مطالبی نوشته ولی هیچ کدوم کار نمیکنن ، اگر ممکنه یه اموزش در این مورد بزاری ممنون میشم.
مهمان
سلام، در مورد مودهای SPI یه توضیحی میدید !!
تشکر
مهمان
سلام با این برنامه که شما نوشتی ardunio میتونه به صورت slave هم عمل کنه؟
ممنون میشم جواب بدید.
نویسنده این مطلب
سلام
نمیدونم-چیزی خاطرم نی.
مهمان
سلام مثل همیشه این سایت کارمو راه انداخت. تشکر فقط فکر میکنم این تابع SPISettings(speedMaximum, dataOrder, dataMode) باید اینطوری باشه (SPISettings mySettings(speedMaximum, dataOrder, dataMode
مهمان
سلام. خسته نباشید. ممنونم از سایت خوب و مطالب عالی و کاملتون
ممنون میشم راهنمایی کنین 
میخواستم خواهش کنم که خودتون یه مثال از این مبحث spi بذارین. این مثالی که مال سایت آردوینو هستش فقط کد ها رو نوشته وشماتیک پروژه رو نذاشته و نمیدونم کجا و چجوری اجرا میشه
مهمان
سلام استاد. وقتی ۲تا ماژول داریم که هردو ارتباط spi باشن و بخوایم به یه اردوینو وصلشون کنیم راه حل چیه؟
ایا باید یکی رو بصورت spi مجازی تعریف کنیم؟
نویسنده این مطلب
سذام.نه
تو spi یه پایه ای به نام ss هستش که فک کنم مخففslave select هستش…..به کمک این پابه میتونیم ۱۲۸ تا دستگاه از طریق spi به میکرو وصل کنیم……چیزی که من یادم بود اینه
مهمان
سلام، آیا میشه برای کدویژن هم spi مجازی درست کرد؟ خیلی کارم گیر کرده
نویسنده این مطلب
سلام-بله.
اگه حال داری بشین همین کتابخونه رو به کدویژن تبدیل کن.
مهمان
سلام این دستورو چجوری بنویسم (if(400>gas>200 ؟
اشباست این ؟ کمک کن
نویسنده این مطلب
سلام
در مورد عملگرهای && و || تحقیق کن تو زبان c
خب شما باید به صورت زیر بنویسید :
if( gas>200 && gas<400)
یعنی اگه از 200 بزرگتر بود و اگه از 400 کوچکتر بود اون وقت…
مهمان
مرسی خیلی خوبی تو خییییییر ببینی
مهمان
سلام خیلی ممنون از سایت عالیتون چند روزیه که آشنا شدم کلی دعاتون کردم …..خب بسه تعریف …..???
یه سوال اینکه کتابخونه های جدیدی که تعریف میشه رو(مثلا کتابخونه ی ps در مورد ارتباط دسته بازی و ……) از کجا و چجوری پیدا کنیم و هم چنین آموزشش ممنون میشم که سایتی یا کتابی یا ….رو تعریف کنین چون تو خود سایت آردوینو چنین کتاخونه و توابعی رو ندیدم خواهش میکنم راهنمایییییییییی???
نویسنده این مطلب
سلام
والا من دسته بازی – کیبورد و موس کامپیوتر رو به آردوینو وصل کردم ولی موبایل ندارم که از پروژه فیلم بگیرم و بزارم تو سایت! فعلا درگیر موبایلم!
مهمان
سلام تو رو خدااااااااااااااااا بد جور درگیر این پروزه ام چون باید با دسته یه ربات رو کنترل کنم البیته با دو تا آردوینو و ارتباط بی سیم فقط شما اگه امکانش هست ارتباط دسته با آردوینو رو توضیح بدید کافیه خواهش میکنم جواب بدین
نویسنده این مطلب
سلام
شیلد زیر رو تهیه کن و شروع کن – تو نت(خارجی) اموزشش هستش – خودش هم مثال نمونه داره
شیلد و ماژول USB Host با قابلیت پشتیبانی از Android ADK
مهمان
سلام دستتون درد نکنه که انقدر خوب و روان توضیح می دین
ببخشید یه سوال :
من میخوام با دو تا آردوینو uno و به وسیله ی دوتا ماژول nrf اطلاعات رد و بدل کنم
چند ماهه دارم تلاش میکنم اما هنوز نتیجه نگرفتم
تو نت خیلی گشتم یه مثال ساده پیدا کنم که مثلا کلمه ی hello رو بفرستم یا حتی یه led رو روشن کنم اما ندیدم
خواهشم اینه که اگه شما تجربه کار با این ماژول رو دارین یه برنامه ساده در حد همین hello تو ایتتون بذارین
یه سوال دیگه: من کتابخانه ی nrf رو دانلود کردم رفتم تو قسمت example هاش و ساده ترین مثالش که عنوانش getting start هست رو مطالعه کردم از قسمت loop اش چیزی نفهمیدم متاسفانه… میشه اگه میشه برام تویحش بدین؟ بعد تو این مثال اولش نوشته <include <spi.h# ولی دیه بقیه دستوراتی که راجب ارتباط spi شما تویح دادین توش نبود . حتی spi.begin هم ننوشته توش. من خیلی گیج شدم نمیدونم کی باید از اینا استفاده کنم کی نباید
ببخشید طولانی شد.. شما امید آخرم هستین واقعا نمیدونم باید از کی کمک بخوام….
تشکر
نویسنده این مطلب
سلام
یه کتابخونه برا این Nrf24l01 نوشتم که با دو تا آردوینو میتونی یه چت روم راه بندازی( فایل رو دانلود کن و پروژه داینامیک رو استفاده کن،) – فایل کتابخونه و … تو لینک زیر گزاشتم
http://www.eca.ir/forum2/index.php?topic=119342.0
مهمان
بسیار ممنونم از لطفتون. حتما تست میکنم و نتیجه رو میگم. میشه اگه راجب این پروژه بازم سوالی داشتم ازتون کمک بگیرم؟
نویسنده این مطلب
مشکلی نیست، سوالی بود بفرمایید.
فقط اگه لطف کنید و اگه گوشیتون دوربین داره فیلم بگیرید و برام بفرستید تا بزارم تو آپارات و… چون گوشی من دوربین نداره ، و اگه به هر دلیلی امکان پذیر نیست که هیچ
مهمان
حتما اگر جواب بگیرم میفرستم
نویسنده این مطلب
ممنون
مهمان
سلام من هنوز موفق نشدم پروژه رو راه اندازی کنم تو قسمت سریال مانیتورهر چیزی که تایپ میکنم مشخصات بسته رو مینویسه اما دیتایی ردوبدل نمیشه و فقط پیغام data lose رو میده.
لطفا راهنماییم کنید خیلی ممنون میشم
نویسنده این مطلب
سلام
کدوم پروژه؟
تو مطلب مربوطه سوالتون رو مطرح کنید لطفا
مهمان
اینجا مطرح کردم ممنون
http://www.eca.ir/forum2/index.php?topic=118399.30
نویسنده این مطلب
جواب دادم
مهمان
راستی من سوالاتم رو تو تاپیکی که برای نظرات گذاشتین مطرح میکنم
یعنی اینجا http://www.eca.ir/forum2/index.php?topic=118399.0
ممنون میشم اگر براتون مقدور بود پاسخ بدین
نویسنده این مطلب
حواب دادم، فقط قبلش خبرم کنید چون ممکنه سالی یه بار هم اون جا نیام(و ممکنه هر ساعت بیام اونجا
)
مهمان
باشه ممنون
مهمان
مهندس دمت گرم خیلی مطالب جالبی گذاشتی،اللرین آقرمسه مهندس
مهمان
مثل همیشه عالی، خدا خیرت بده مهندس
مهمان
اقا کارت درسته واقعا دستت درد نکنه
مهمان
مرسی مهندس آموزشات عالیه
ادامه بده
نویسنده این مطلب
جلسه بعد چی باشه؟
شاید یه سری توابع متفرقه که تو نوشتن کتابخونه برا قطعات استفاده میشه رو گفتم شاید هم….
مهمان
سلام
کابخانه های keyad , password , glcd , رو بگی عالیه
نویسنده این مطلب
یه اشتباه بزرگی که به نظرم الکترونیکی ها میکنن اینه که رو ابردن به سمت استفاده از کتابخونه های آماده – حتی برا ساده ترین چیز ها