نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
أَللّهُمَّ ارْزُقْنی شَفاعَةَ الْحُسَیْنِ یَومَ الْوُرُودِ
مهدی دمیرچیلو

آموزش جامع آردوینو جلسه 19 string در arduino

246

به نام خدا : تو این مطلب از آموزش آردوینو میخوام به آموزش رشته در آردوینو بپردازم، و انواع توابعش رو توضیح بدم و برای هر کدوم مثالی بزنم، این مطلب رو برای این میگم که تو مطالب بعدی بهش نیاز دارم وگرنه نمیخواستم بگم(تو فکرش نبودم که بزارم تو سایت این مطلب رو  pardon )
آموزش جامع آردوینو جلسه 19 string در arduino

آموزش جامع آردوینو جلسه 19 string در arduino


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

String()
charAt()
compareTo()
concat()
c_str()
endsWith()
equals()
equalsIgnoreCase()

getBytes()
indexOf()
lastIndexOf()
length()
remove()
replace()
reserve()
setCharAt()

startsWith()
substring()
toCharArray()
toInt()
toFloat()
toLowerCase()
toUpperCase()
trim()

که در ادامه تک تک توابع رو توضیح میدم و مثال هایی میزن برای هر کدوم. smile


داستان(خواب بریدن سر اولین مرغ!!!)
داستان(خواب بریدن سر اولین مرغ laugh ) : یادم میاد بچه بودم، حالا چند سال دقیقا نمیدونم، من اون موقع زیاد مرغ خروس – اردک – بلدرچن – لاکپشت کلا همه جی نگه میداشتم blush ، البته الانش هم همین طور هستش laugh و 1 مرغ لاری دارم و 2 تا بلدرچین(که در زیر عکس مرغ لاریم و عکس بلدرچین نر ام رو میبینید)، آقا ما یادمه توکوچه بودیم پیش رفیقامون یه دفه یه زنه(دختره) اومد پیشم و گفتم این انگشتر طلای منو بگیر و مرغت رو بده به من، ما کپ کردیم یه لحظه، مرغ 5 تومنی من کجا و اون انگشتر طلا کجا، علت رو پرسیدم، گفت دیشت خواب دیدم اولین مرغی که دیدم قربونیش کنم O_o >>> آقا ما هم که جونمون به این حیونامون بسته بود قبول نکردیم، و از اون طرف اسرار از ما ... و یه جوری دکش کردیم(حالا مگه دک میشد sarcastic )، بعد فهمیدیم که اون بنده خدا مریض هستش sad ، خدا همه ی مریضا رو شفا بده.
بلدرچین
مرغ لاری

آموزش کار با توابع string ( رشته ) در آردوینو

string یا رشته چیه و کار چیه و بازم چیه و کلا چیه ^_^
برید تو گوگل بسرچید جان داش حال توضیح دادن ندارم. diablo
نحوه تعریف یه رشته
نحوه تعریف یه رشته در آردوینو دقیقا مثل تعریغ انواع متغییر های دیگه هستش، مثال زیر رو ببینید تا یه توضیح کوچولو موچولو بدم :
خب در مثال بالا من 3 تا رشته با نام های str1 - str2 - str3 تعریف کردم و مقدار های اولیه ای بهشون دادم.
نکته ای که خواستم بگم اینه، سه تا رشته تعریف کردم در سه جای مختلف پروژه،
رشته str3 فقط در تابع loop قابل دسترسی هستش و در بقیه جاهای برنامه نه، رشته str2 هم فقط در تابع setup قابل دسترسی و استفاده هستش ولی رشته str1 در کل پروژه(همه جای پروژه) قابل دسترسی هستش و به این متغییر ها اگه اشتباه نکنم میگن متغییرهای سراسری.(اینم یه نکته برنامه نویسی C بود و جاش اینجا نبود که بگم ولی گفتیم دیگهmail)
startsWith و endsWith
startsWith : این تابع بررسی میکنه که آیا رشته string با رشته string2 شروع میشه یا نه(یعنی در اول رشته string آیا رشته string2 وجود داره یا نه.)
1 : در اول رشته string، رشته string2 وجود دارد.
0 : وجود ندارد.
مثال زیر رو برای این تابع ببینید :
endsWith : این تابع هم شبیه تابع startsWith هستش با این تفاوت که : این تابع بررسی میکنه که آیا رشته string با رشته string2 پایان میپذیره یا نه(یعنی در پایان رشته string رشته string2 وجود داره یا نه)
1 : در پایان رشته string، رشته string2 وجود دارد.
0 : وجود ندارد.
خب در مثال زیر من یه رشته تعریف کردم و بعد در خط 7 میام بررسی میکنم که آیا در پایان رشته str1 آیا عبارت chilu وجود داره یا نه اگه وجود داشته باشه که عبارت Yes داخل پنجره سریال نمایش داده میشه و در غیر این صورت عبارت No نمایش داده میشه.(با این پروژه چند تا عبارت دیگه تست کنید حتما!)
equals
equals : برای بررسی اینکه آیا string با string2 برابر هستش یا نه(بررسی برابر بودن یا نبودن دو رشته)
1 : دو رشته با هم برابر هستند.
0 : با هم برابر نیستند.

توجه : البته به جای استفاده از این تابع میتونیم از روش قدیمی بررسی برابر بودن دو چیز استفاده کنیم یعنی همون عملگر ==، مثال زیر رو ببینید :

toUpperCase و toLowerCase

toUpperCase : بزرگ کردن تمام حروف انگلیسی رشته string
toLowerCase : کوچک کردن تمام حروف انگلیسی رشته string

مثال زیر و جوابش رو ببینید متجوه موضوع این دو تا بع میشید(اگه دقیقا متوجه نشدید)

جواب مثال بالا به صورت زیر هستش :

toUpperCase = MAHDI DAMARCHILU
toLowerCase = mahdi damarchilu

خواستین به مثال سایت آردوینو هم مراجعه کنید : StringCaseChanges

length

length : این تابع طول رشته string رو به ما میده(تعداد کاراکترهای موجود در رشته string رو به ما میده.)
مثال این تابع :

remove

remove : برای حذف یه سری کاراکتر از یه رشته(به نحوی که در ادامه میگم) از این تابع استفاده میکنیم.
این تابع remove به دو صورت میشه نوشتش و ازش استفاده کرد که در بالا مشاهده میکنید، در زیر به ترتیب توضیحشون میدم :
توجه : در رشته ها، در آرایه ها، و... کلا در برنامه نویسی شمارش از 0 شروع میشه و نه 1(حواستون باشه :-D)

تابع اولی : از خونه شماره index ام تا آخر رشته رو حذف میکنه.(یعنی رشته جدید برابر میشه با خونه 0 رشته تا خونه index ام رشته و بقیه کاراکترها حذف میشه.)
index : شماره کاراکتری که حذف کردن و بریدن رشته از اونجا شروع میشه.
مثال زیر رو ببینید تا بهتر متوجه بشید :

جواب مثال بالا به صورت زیر هستش :

new str1 = Mahdi

تابع دومی : تو این تابع به کمک پارامتر index شماره خونه ای که حذف کاراکترها از اونجا شروع میشه رو تعیین میکنیم و به کمک پارامتر count تعداد کاراکترهایی که باید حذف بشه رو تعیین میکنیم.
index : شماره کاراکتری که حذف کردن و بریدن رشته از اونجا شروع میشه.
count : تعداد کاراکترهایی که از خونه index ام رشته مون باید حذف بشه.
مثال زیر رو ببینید و با مثال بالا مقایسه اش کنید تا کامل متوجه موضوع بشید :

جواب مثال بالا به صورت زیر هستش :

new str1 = MahdiDamarchilu

اینم یه مثال از سایت آردوینو که ببینیدش حتما(البته بررسیش هم بکنید و فقط به دیدن اکتفا نکنید laugh ):

جواب پروژه بالا به صورت زیر هستش :

The full string:
Hello World!
String after removing from the seventh index through the end
Hello W
String after removing six characters starting at the third position
Herld!

replace
replace : این تابع تو رشته string دنبال رشته substring1 میگرده و اگه پیداش کنه با رشته substring2 جایگزینش میکنه.
مثال زیر و جوابش رو ببینید :
جواب مثال بالا به صورت زیر هستش :

new str1 = Ali+Damarchilu

به مثال زیر از سایت آردوینو هم نگاهی بکنید :

جواب پروژه بالا به صورت زیر هستش :

<html><head><body>
Original string: <html><head><body>
Modified string: </html></head></body>

normal: bookkeeper
l33tspeak: b00kk33p3r

setCharAt و charAt
charAt : دسترسی به کاراکتر n ام رشته string
n : شماره کاراکتری که میخوایم مقدارش رو بخونید.
مقدار برگشتی این تابع به صورت char هستش(یدونه تک کاراکتر)
توجه : البته همون طور که میدونید میشه مثل آرایه ها، به رشته هم دسترسی داشته باشیم و کاراکتر موجود در خونه های مختلف رو بخونیم، و از تابع فوق هم استفاده نکنیم، تو مثال زیر از هر دو روش استفاده کردم :
حلا بریم سراغ اون یکی تابع(چو این دو تابع مکمل هم هستن به همین خاطر تو یه قسمت قرارشون میدم)
setCharAt : به کمک این تابع میتونیم کاراکتر index ام رشته string رو با کاراکتر c جایگزین کنیم.
توجه : به کمک تابع setChar ما مقدار کاراکتر i ام رشته ای رو میخوندیم و به کمک این تابع مقدار کاراکتر i ام رشته ای رو تغییر میدیم.
مثال زیر و جوابش رو ببینید که بعد این مثال روش عادی و خودمون رو هم میگم و مثالش ور هم میگم :
جواب مثال بالا به صورت زیر هستش :

0ahdi-1amarchilu

خب تو رشته ها برا خوندن و یا نوشتن یه کاراکتر از رشته مون میتونیم همانند آرایه ها با رشتمون رفتار کنیم، برای تغییر یه کاراکتر از رشتمون میتونیم علاوه بر استفاده از تابع بالا از روش زیر هم استفاده کنیم(توصیه من استفاده از روش زیر هستش!) :

جواب این پروژه هم دقیقا مثل پروژه قبلی هستش.

اینم یه پروژه از سایت آردوینو که دیدنش ظرر نداره :

جواب پروژه بالا به صورت زیر هستش :

SensorReading: 456
Most significant digit of the sensor reading is: 4
SensorReading= 456

equalsIgnoreCase
equalsIgnoreCase : برای بررسی این که آیا کاراکترهای رشته string با string2 برابر هستن یا نه(البته بدون توجه به کوچیک و بزرگ بودن حروف انگلیسی)، یعنی در مثال زیر تمام 4 تا رشته با هم برابر هستن بدون توجه به کوچیک و بزرگ بودن حروف.
1 : برابر بودن دو رشته
0 : عدم برابری

مثال زیر و جوابش رو ببینید و با توضیحات من مقایسه کنید تا این تابع رو هم کامل متوجه بشید :

جواب مثال بالا برا هر سه خط 14-15-16 برابر 1 هستش(یعنی رشته های فوق بدون توجه به کوچیک و بزگ بودن حروف با هم برابر اند) :

1
1
1

lastIndexOf و indexOf
indexOf : این تابع دنبال رشته val در داخل رشته string میگردنه و موقعیت رشته val در string رو بر میگردونه.
همون طور که میبینید تابع بالا به دو صورت وجود داره، که تابع اولی از خونه 0 ام رشته string دنبال رشته val میگرده و تابع دومی از موقعیتی که توسط پارامتر from تعیین میکنیم دنبال val میگرده.
توجه : اگه رشته val داخل رشته string وجود داشته باشه، این تابع موقعیت val در String رو برمیگردونه و در غیر این صورت عدد 1- رو برمیگردونه.
جواب مثال بالا به صورت زیر هستش :

10
-1

 

lastIndexOf : این تابع همانند تابع indexOf هستش با این تفاوت که تابع indexOf از اول رشته string به دنبال رشته(یا کاراکتر) ما میگرده ولی تابع lastIndexOf از آخر رشته string شروع به جستوجو(جست و جو، جسوجو، جس و جو و... laugh ) میکنه.(لذا به علت تنبلی بیش از حد پروژه ای به صورت جدا برای این تابع قرار نمیدم و مطمئن هستم که شما هم نمیرید پروژه ای برای این تابع برای خودتون مثال بزنید buba لذا به من نگید تنبل چون خودتون تنبلید laugh خب بگذریم از این حرفا در ادامه یه پروژه توپول برا هر دوی این توابع قرار میدم.)
پروژه زیر از سایت آردوینو(با کمکی! تغییر) رو هم ببینید بد نیستش :

concat

concat : این تابع برای الحاق کردن یه مقدار(حالا میتونه رشته باشه یا هر نوع متغییر دیگه ای باشه >>> String, char, byte, int, unsigned int, long, unsigned long, float, double) به آخر رشته string از این تابع میتونیم استفاده کنیم.
توجه : اگه این تابع عملیات الحاق رو با موفقیت انجام بده عدد 1 و در غیر این صورت عدد 0 رو برمیگردونه.
در زیر دو مثال میزارم براتون، که تو اولی از تابع بالا استفاده کردم و تو پروژه دومی از روش عادی اضافه کردن یه چیز به رشته ها به کمک + استفاده کردم(چیه جان داش برا هر کاری باید از تابع استفاده کنیم، من خودم به شخصه زیاد خوشم نمیاد توابع رو برای هر چیز حتی الکی ترین چیزها اومدن نوشتن shout )

جواب پروژه بالا به صورت زیر هستش :

DMF313.IR-13-3.14

تو پروژه زیر هم از روش قدیمی و راحت تری استفاده کردم به کمک عملگر +(فک کنم بهش میگن عملگر)، جواب این پروژه هم مثل پروژه بالا هستش.

مثال زیر از سایت آردوینو(با کمکی تغییر :-D) رو ببینید :

جواب پروژه بالا به صورت زیر هستش :

Sensor
Sensor value
Sensor value for input
Sensor value for input Q
Sensor value for input Q13
Sensor value for input Q13 =
Sensor value for input Q13 = 1234567890

substring
substring : برای تکه تکه کردن یه رشته(جدا کردن یه قسمت خاص از یه رشته و کپی کردنش در یه رشته جدید) از این تابع استفاده میکنیم.
همون طور که میبینید این تابع به 2صورت نوشته میشه.
تابع اولی : از کاراکتر from تا آخر رشته string رو جدا میکنه و رشته جدا شده رو برمیگردونه.
تابع دومی : از کاراکتر from تا کاراکتر to-1 از رشته string رو جدا میکنه و رشته جدا شده رو برمیگردونه.
سوال : چرا بالا نوشتی to-1 و ننوشتی to ???
جواب : خب حقیقتش این که ما توقع داریم که تابع دومی ار کاراکتر شماره from ام تا کاراکتر شماره to ام رو جدا کنه و به صورت یه رشته جدا برگردونه ولی این تابع تا کارکاتر to-1 رو جدا میکنه و خود کاراکتر شماره to ام رو جدا نمیکنه.
مثال زیر و جدابش رو ببینید باز بهتر متوجه منظور من میشید :
جواب مثال بالا به صورت زیر هستش :

Mahdi
Damarchilu
Dmf313.ir

در زیر هم مثالی که تو سایت آردوینو بود رو براتون قرار میدم :

جواب این پروژه به صورت زیر هستش :

Content-Type: text/html
It's an html file
It's a text-based file

toInt و toFloat
toFloat : تبدیل رشته به یه عدد اعشاری از نوع float
توجه : رشته string باید با یه عدد شروع بشه و اگه در ابتدای رشته عدد وجود نداشته باشه، عمل تبدیل رشته به float انجام نمیشه و این تابع عدد 0 برمیگردونه، ولی اگه داخل رشته بعد از عدد هر کاراکتری میخواد باشه باشه مشکلی به وجود نمیاد.
مثال زیر و جوابش رو ببینید :
جواب پروژه بالا به صورت زیر هستش :

0.000
3.142
3.100
3.142

 

toInt : تبدیل رشته به یه عدد صحیح از نوع int
توجه : رشته string باید با یه عدد شروع بشه و اگه در ابتدای رشته عدد وجود نداشته باشه، عمل تبدیل رشته به int انجام نمیشه و این تابع عدد 0 برمیگردونه، ولی اگه داخل رشته بعد از عدد هر کاراکتری میخواد باشه باشه مشکلی به وجود نمیاد.

جواب پروژه بالا به صورت زیر هستش :

3
34
34

c_str و toCharArray
toCharArray : کپی کردن کاراکتر های داخل رشته string به درون آرایه(از نوع char)
buf : نام آرایه ای که قراره کاراکترهای رشته string داخلش قرار بگیره.
len : اندازه آرایه.
اینم پروژه این تابع :
جواب پروژه بالا به صورت زیر هستش :

Mahdi Damarchilu
Mahdi Damarchilu

 

c_str : برای این تابع توضیح خاصی نمیدم، کسایی که تازه کار هستن بیخیال این تابع بشن ولی کسایی که زبون c شون قوی هستش با دیدن مثال زیر متوجه موضوع میشن.
توجه : لینک این تتابع در سایت آردوینو c_str

جواب پروژه بالا به صورت زیر هستش :

Mahdi Damarchilu
Mahdi Damarchilu

trim
trim : این تابع فضاهای خالی(space) در ابتدا و انتهای رشته رو حذف میکنه!، مثال زیر رو ببینید بهتر متوجه موضوع میشید :
compareTo
compareTo : به اون صورت دقیقا و در عمل متوجه کاربرد دقیق این تابع من نشدم.
StringCompareTo
StringComparisonOperators
توجه : ولی چیزی که من فهمیدم(که به احتمال 99% درسته) این تابع بر اساس خونه حروف در زبان انگلیسی عمل میکنه این مقایسه رو(عجب جمله ای شد)، یعنی دو رشته رو کاراکتر به کاراکتر با هم بررسی میکنی :
1) اگه تمام کاراکتر ها با هم برابر بودن، این تابع عدد 0 رو برمیگردونه.
2و3) اگه تا یه جایی کاراکترهای هر دو رشته با هم برابر بودن و در کاراکتر xام کاراکترها با هم برابر نبودن این تابع میاد اونا رو بر اساس جدول کد اسکی با هم مقایسه میکنه، مثلا اگه در رشته string2 این کاراکتر A باشه و در رشته string این کاراکتر B باشه، تابع بالا یه عددی - برمیگردونه و اگه این حالا فرض ما برعکس بود تابع عددی + برمیگردونه

پروژه زیر رو ببینید متوجه موضوع میشید دقیقا، تو پروژه زیر هم استفاده از روش عادی مقایسه دو چیز( > و < و => و =<) رو قرار دادیم و هم روش مقایسه به کمک تابع بووووووووق بالا :

reserve

reserve : این تابع تابع جالبی هستش، مثلا شما میدونید که این رشته مد نظرتون حداکثر 20 کاراکتر قراره داخلش قرار بگیره، به کمک این تابع میاید و 20 خونه از حافظه رو به اون رشتتون اختصاص میدید تا در بعضی شرایط خاص دیگه مشکلی رخ نده.

String

برای این حالت هم مثال زیر رو ببینید متوجه میشید :

خب این مطلب هم تموم شد رفت چی کارش، خسته شدم جان داش، این مطلب رو در طول 2-3 روز فک کنم نوشتم من، حدود  3هزار و 500 واژه شده تا الان این مطلب، دوستان اگه جایی کم توضیح دادم، بد توضیح دادم بگید تا در صورت امکان درستش کنم و اگه خواستین از توابع آماده بالا استفاده نکنید و خودتون این توابع رو بنویسید بگید تا تابع رو براتون قرار بدم تا این طوری برنامه نیوسیتون هم خوب بشه – من دیگه چون حال ندارم این کار رو نمیکنم ولی اگه کسی خواست بگه تا این کار رو انجام بدم.
هزینه مطلب : صلوات برا شادی روح شهدا و امام شهدا و یه فاتحه برا افرادی که تازه از دنیا رفتن.
در ضمن اگه مطلب آموزش آردوینو چیزی مد نظرتون بود بگید – چون من چیزی به خاطرم نمیرسه.
بیش از این مزاحم نمیشم فعلا یا علی.

تعداد مطالب : 367 تا
جنگ ما فتح قدس را به همراه خواهد داشت. [ امام خمینی (ره) ]
بقیه جلسات : آموزش جامع آردوینو
ارسال دیدگاه
55
نظرات این مطلب بسته شده است.
  1. علی

    مهمان

    علی

    با سلام و تشکر از شما برای این سایت عالی…
    من یک حلقه نوشتم که یک led رو روشن و خاموش کنه بدون ایجاد تاخیر، ولی اینقدر تعداد دفعات تکرار حلقه رو زیاد کردم تا روشن و خاموش شدن led را ببینم اما قابل مشاهده نبود…

    خوب عملیات جمع متغیر num رو با عدد یک این برنامه 2 میلیارد بار انجام میده بعد وضعیت چراغ رو تغییر میده و این زمان بر هست ، چطور ممکنه 2 میلیارد محاسبه رو اینقدر سریع انجام بده که من متوجه تغییر وضعیت led نشم؟ سخت افزار من esp8266 هست. ممنون

    مشاهده پاسخ ها (1)
    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام-فرکانس میکرو رو 16M فرض کنید، مقدار متغیر زیاد میشه، شرط بررسی میشه، هر کدوم رو فرض میکنیم 1 کلاک مصرف میکنن، 8M کار در هر ثانیه فلذا برای رسیدن به 2000000000، نیاز به 2000000000/8M = 250 ثانیه؛ محاسباتش یه چیز تو این مایه ها میشه، دقیقشو باید جستجو کنی؛ ِیه کدی تو این مایه ها، ولی فک کنم 16 میگ بشه 2-3 ثانیه، دقیقا نمیدونم

      راستی یه موردی، تو این لینک از سایت آردوینو ( int ) میگه که متغیر int ها 16 بیتی هستند؛ که یه متغیر 16 بیتی بین -32,768 تا 32,767 هستش؛ مخصوص برد Arduino Un و هر بردی بر مبنای atmegaY؛ که در برد Arduino Due و بردهای smd نظیر MKR1000 و Zero برابر با 32 بیتی هستند که محدوده اش میشه : -2,147,483,648 تا 2,147,483,647؛ با فرض این که شما از uno استفاده میکنید، عملا هربار سرریز رخ میده و شمارنده ریست میشه و هیچ وقت به 2 میلیارد نمیرسه شمارنده ( کد شما )

  2. قنبر حسین پور

    مهمان

    قنبر حسین پور

    سلام وقت بخیر بنده یک داده استرینگ با سریال برای آردوینو می فرستم و یک مقایسه می کنم اگر شرط برقرار بود یک کاری انجام دهد و متاسفانه اصلا داخل شرط نمی شد مقدار داده هم پرینت می زنم با ارسالی یکی هست

  3. ارشیا

    مهمان

    ارشیا

    سلام خسته نباشید ببخشید چطور میشه یه string رو کامل خالی کرد ؟؟؟ ممنون

  4. سعید

    مهمان

    سعید

    دمت گرم ، یجایی گیر کرده بودم توضیحاتت کارمو راه انداخت

  5. sepehr

    مهمان

    sepehr

    ممنون از آموزش خوب تان آرزوی موفقیت برایتان دارم good

  6. عرفان

    مهمان

    عرفان

    منم یه خرگوش توی حیاط خونه ام نگه میداشتم
    زمستون ها گم میشد بهار و تابستون پیداش میشد smile
    عاغا یکی از فامیل های زن عموم مریض شد باید گوشت خرگوش میخورد
    بدون اجازه از من ، خرگوش رو گردن زدن dash دستشون درد نکنه نامردی نکردن پوست خرگوشمو برام فرستادن cry
    درمورد مطالبتون واقعا خوشم اومد عشقی heart

  7. پدرام

    مهمان

    پدرام

    سلام
    ممنون بابت مطلبت ولی
    شمارش از 0 شروع میشه و نه 1 ………
    با برنامه ای که نوشتی به عنوان مثال هم خوانی نداره
    اگر اینجوری باشه که شما میگی که باید -Mahdi باقی بمونه نه Mahdi
    یکبار دیگه چک کن لطفا

  8. پارسا

    مهمان

    پارسا

    سلام به اقای ادمین
    یک سول داشتم که چیجوری صفحه ی کدتون رو میارید تو متن smile help
    با تشکر bye

  9. ناصر

    مهمان

    ناصر

    سلام و وقت بخیر ، من یه مشکلی دارم ممنون میشم دوستان و عزیزان راهنمایی کنند
    من یک رشته رو بصورت زیر از سریال دریافت میکنم
    برای مثال
    “A1P1=3.5”
    یا
    “A2P3=59”
    حالا میخام توی هر رشته ای کع دریافت میکنم ، این قسمت عدد “3.5” و “A1P1” رو جدا کنم و بدونم که عدد 3.5 برای A1P1 هست یا عدد 59 برای A2P3 هست

    مشاهده پاسخ ها (1)
    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام

      1) اگه طراحی فرستنده گیرنده با خودته به این صورت عمل کن، روال درستش هم فک کنم همینه، حداقل برا من تا حالا جواب داده و تو خیلی جاها دیدم که از همین روش استفاده میکنن ( توضیح زیر برا وقتی هستش که چندین داده رو بخوای ارسال و دریافت کنی )
      1.1) یه فرمت از پیش تعریف شده، تعریف کن، مثلا داده اول مربوط به A1 داده دوم مربوط به A2 داده سوم مربوط به A3 و…
      1.2) بیت هر داده از یه کاراکتر جداکننده استفاده کن، مثلا ,
      1.3) بعد اینو سرچ کن، روال تجزیه و خوندن داده فوق دستت میاد : Split String by comma

      2) اگه تغییر کد گیرنده ممکن نی برات، چندین حالت با توجه به توضیحات ناقصت ممکنه رخ بده ( فرضو بر این گزاشتم که طبق توضیحاتت فقط 1 داده میخوای ارسال و دریافت کنی که نامش هم کنار مقدارش ذکر میشه ) :
      2.1) نام داده ها تعداد کاراکتر یکسانی دارند، مثلا A1P1 دارای 4 کاراکتر هستش و A2P3 هم 4 کاراکتر و … : خب میای کاراکتر خونه 0 تا 3 اولو میخونی به عنوان نام داده، کاراکتر خونه 4 ام رو کاری بهش نداریم، کاراکتر خونه 5 تا آخر رو میخونی به عنوان مقدار داده ( توابع هر کدوم از اینکارا تو نت هستش، فارسی یا انگلیسی سرچ کنی توابعش میاد )
      2.2) نام داده ها ممکنه تعداد کاراکترشون یکسان نباشه : خب میای موقعیت کاراکتر = رو پیدا میکنی ( اسمشو میزارم X )، از کاراکتر خونه 0ام تا خونه X-1 ام میخونه به عنوان نام داده؛ کاراکتر خونه Xام رو کاری بهش ندارم؛ کاراکتر خونه X+1 ام تا آخر رو میخونی به عنوان مقدار داده.

  10. حسن گودرزی

    مهمان

    حسن گودرزی

    سلام
    در آردونیو
    اگر رشته بصورت چند خطی باشه و حتی بین خطوط ،خط خالی هم داشته باشه، چطور میشه هر خط را از رشته جدا کرد و در یک آرایه رشته ای ذخیره کرد.
    با readStringUntil و readBytesUntil روی n\ و 0\ و r\ امتحان کردم متاسفانه خطوط خالی بیشتری اضافه می شود.
    اصلا راهی هست که از پورت سریال خط به خط خواند؟

    در پایان حقیقتا سایت آموزشی عالی دارید.
    در پناه امیرالمومنین

    مشاهده پاسخ ها (1)
    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام – میشه نمونه ای از داده هاتون ( حداقل 1 صفحه؛ 10 خط؛ 10 رکورد ) رو تو فایل txt برام بفرستید؟

  11. mahdi

    مهمان

    mahdi

    مشتی هستی دمت گرم ایولااااا heart

  12. amir hossein

    مهمان

    amir hossein

    خدا خیرت بده

  13. متین

    مهمان

    متین

    به اون بلدرچین رو قبل اینکه بکشیش بهش آب دادی؟! 😐

    مشاهده پاسخ ها (1)
    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      داستان رو کامل خوندی خداییش؟

  14. هومن کیانیان

    مهمان

    هومن کیانیان

    سلام. چرا این زبانه های مطالب باز نمیشه؟

    مشاهده پاسخ ها (1)
    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام – دارم سایت رو ویرایش میکنم – به این دلیله – الان تست کنید – کش سایت رو هم پاک کنید قبلش

  15. امین

    مهمان

    امین

    سلام خسته نباشید
    به نظر شما راهی هست ssid و pass با وایفای یا سریال مانیتور بشه تغییر داد؟
    البته من بدون استفاده از at command میخواستم بدونم.

  16. محمد

    مهمان

    محمد

    سلام
    یعنی عالیه این مطلب
    رحمت به شیر همچون پاک ات
    بسیار سپاس

  17. عباس

    مهمان

    عباس

    کتابخونه خاصی داره

  18. Ali

    مهمان

    Ali

    سلام یه سوال این کد ها فقط مربوط به آردوینو هست یا فقط کلا C++ همینطوریه

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      این کدها برای آردوینو همینه ولی اگه معمولا این کتابخونه های مورد استفاده استاندارد c++ هستش تا جایی که میدونم.

  19. ALIREZA

    مهمان

    ALIREZA

    سلام ممنون از سایت بی نظیرتون سوال دارم اینکه
    تو راه اندازی سیم ۸۰۰ با اردوینو میخوام وقتی یه پیام خاص بیاد یه قسمت از کدم تقییر کنه میتونم از این توابع استفاده کنم مثلا برا کنترل دما که از قبل رو ۲۰ با یه پیامک ۲۵ کنم یا اصلا بخوام کاربر سیستم عوض کنم (تقییر شماره موبایل)

  20. s.r

    مهمان

    s.r

    سلام. ببخشید میخواستم بدونم اگه این پروژه رو برای من کدشو بنویسین هزینش چقد میشه؟

  21. s.r

    مهمان

    s.r

    سلام. اقای دمرچلو.ممنون از مطالب خوبتون. ببخشید من از شما یه خواهشی داشتم. میخواستم اگه میشه این مطلبو
    http://saakhtani.ir/archive/1395/09/49643
    با ال سی دی کاراکتری کدشو بنویسین و بزارین توی سایت.
    اگه اینکارو بکنین واقعا مدیونتون میشم. چون خیلی نیاز دارم.
    با تشکر.

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام – امکان انجام رایگان این پروژه نیست برام فعلا.

  22. مهدی

    مهمان

    مهدی

    سلام
    ممنون از سایت خوبتون من ازمطالب سایت شما نهایت استفاده را بردم امیدوارم همیشه موفق باشید. good

  23. علی

    مهمان

    علی

    سلام اقا مهدی میشه اموزش پروگرام کردن میکرو avr رو با اردینو اموزش بدید ممنون

    مشاهده پاسخ ها (1)
    • علی

      مهمان

      علی

      کاری نداره فایل هگز رو تو تنظیمات آردوینو قابل رویت کن بعد اون فولدر و باز کن هگزو بده به پروگرمر همین

  24. رضا

    مهمان

    رضا

    آقا حسابی دمت گرم
    واثعا خیلی خوبه مطالب… تشکر

  25. Michel

    مهمان

    Michel

    از كجا و چطور ياد بگيرم با كدويژن اردوينو رو كنترل كنم؟
    بيچارت ميكنم انقدر سوال پيچت ميكنم????

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      آره منم جواب دادم laugh
      برو تو سایت خود کدویژن روال کارش هستش.
      ولی به نظر من از همین کامپایلر آردوینو استفاده کن.

  26. michel

    مهمان

    michel

    سلام دوست عزیز،همیشه از نوشته هات استفاده میکنم و خیلی ممنونم دستت ندرد،چنتا سوال هم دارم 1-کتابی هست در موضوع آردینو 2-با کدویژن میشه آردینو راه انداخت؟پروگرام چطور؟ 3- این لامذهب زبونش چیه؟ c مینویسم خطا میده

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      1-به زبون انگلیسی آره ولی فارسی هم هست ولی فک نکن به اون صورت جامع باشه.
      2-بله
      3-سی پلاس پلاس – آموزش ها رو از اول خونده باشی و سی پلاس پلاس بلد باشی یاد میگیری.

  27. مهدی

    مهمان

    مهدی

    مهدی عزیز سلام
    اردینو رو شروع کردم به کار کردن اما از آخر به اول، در واقع برای ساخت و راه اندازی یه cnc دست به کار شدم و خودم همه نمی دونم چرا از اردینو سر در اوردم.
    حالا یه برد arduino mega 2560 و یه برد Ramps دارم. خیلی از راههایی که تو اینترنت هست ر اجرا کردم ولی به مشکل خوردم. مشکلم اینه که نرم افزارهای ارسال کننده کد به اردینو کد ها رو ارسال می کنند ولی اردینو هیچ عکسلعملی نشان نی دهد. کد hex که تو سایت ها گفتن روی بردم ریختم و هزار کار دیگه. خواهشم اینه که یه توضیحی در رابطه با تنظیمات سخت افزار مثلا برد اردینو ، میان افزار مانند grbl و نرم افزار ارسال جی کد در سایت قرار بدید. هر چی تلاش کردم تا حالا موفق نشدم این مشکل رو حل کنم.

    مشاهده پاسخ ها (2)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام-آقا مهدی متوجه کلیت مسئله شدم ولی دقیقا متوجه مشکلت نشدم
      الان آموزش کار با قطعه ای رو میخوای؟
      پروژه ای بستی و مشکل داره؟

    • جلیل

      مهمان

      جلیل

      grblForCyclone رو تو اینترنت سرچ کن

  28. عادل

    مهمان

    عادل

    سلام.
    خیلی عالی
    راستی مرجع خوبی برای پردازش تصوی سراغ ندارید؟(کتاب باشه بهتره)

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      OPENCV – سرچ تو گوگل – یه آموزشی تو سایت فرا درس هستش – طرف آموزش دهنش نویسنده کتاب هم هستش – من هم کتابش رو دارم و هم فیلمش رو خریدم.

  29. majid

    مهمان

    majid

    سلام جلسه بعد تقریبا کی میاد؟؟؟؟

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      چی بزارم؟ چیزی به فکرم نمیرسه چون فکرم جاهای دیگس laugh

  30. majid

    مهمان

    majid

    سلام خداقوت میشه بگید دیگه چه چیزایی از اموزش کامل اردویینو مونده؟؟
    ی لیست تقریبا کامل
    مثلاspiکامل نیست

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      دیتاشیت مگا 16 رو ببین – سر فصل هاش رو
      اونایی که تا حالا نگفتم تو سایت برا آردوینو رو بهم بگو
      مشکلی بود بگو.

  31. mousavi

    مهمان

    mousavi

    slm
    just tank you

  32. حامد

    مهمان

    حامد

    سلام
    لطفا یه کتاب خوب برای آموزش سی شارپ معرفی کنین
    ممنون

    مشاهده پاسخ ها (1)
  33. Aadhgcgg

    مهمان

    Aadhgcgg

    سلام
    مرسي از آموزشاي خوبتون.
    مي خواستم پيشنهاد بدم آوزش يه پروژه كه با آردوينو مثلا براي ربات با دوربين و واي فاي و… با نرم افزار هاي آماده براى ويندوز و اندرويد ربات كنترل كرد.

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام – موضوع رو دقیقا بگید و کلی نگید- جزئی بگید تا من بزارم تو لیست کارام در صورت امکان

  34. سمانه

    مهمان

    سمانه

    سلام چرا این مطالب رو به صورت فیلم نمیذارین اینطوری یادگیریشون خیلی بهتر؟اگه امکان داره فیلم آموزشی بذارین.خسته نباشید مطالبتون عالیه

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      مطلب بعدی رو هم به این صورت میزارم و هم فیلم آموزشش رو – تا ببینم چی میشه.

  35. حسین

    مهمان

    حسین

    سلام حاج مهدی، خسته نباشی. دست شما درد نکنه بابت مطالب خوبتون.
    راستی اگه بخوام مطلب بزارم تو سایتتون باید چکار کنم. بفرستم براتون؟ یه سری تجربیات جالب دارم فکر کنم بدرد همه بخوره.

    مشاهده پاسخ ها (2)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      بهترین راهش اینه که word کنید و برام بفرستید تا به اسم خودتون منتشر کنم تا درگیر سایت و درسراش نشید.
      و اگه بخواین خودتون مطلب بزارین هم مشکلی نیست برا من فرقی نداره.(خواستین بگین تا اکانت بسازم براتون.)

      • حسین

        مهمان

        حسین

        Word میسازم میفرستم انشاءالله