به نام خدا : تو این مطلب از آموزش اردوینو میریم تو جلسه ۷ امش، این مطلب میشه گفت کوتاه ترین مطلب هستش، که دو تا تابع فقط توش گفتم، حالا هم بنا به یه دلیل و هم یه مشکل اون دو تا تابع دیگه رو نمیگم و میزارم برا جلسات بعد. …. تو این مطلب یه پروژه اردوینو جالب هم گزاشتم براتون.البته چیز خاصی نداره ولی جالبه.
آموزش جامع آردوینو جلسه ۷
Advanced I/O
Tone و noTone
Tone : این تابع برا ایجاد صدا های مختلف بر روی buzzer هستش ، به این صورت که با ایجاد موج مربعی(۵۰% duty cycle) و تغییر فرکانسش صدا های مختلفی رو ایجاد میکنه؛ pin پایه ای هستش که buzzer قراره بهش وصل بشه و به جای frequency هم فرکانستون رو بر حسب hz قرار بدید.
Arduino
1
tone(pin,frequency);
توجه : نحوه کار این تابع به این صورته که هی پایه ای که buzzer بهش وصله رو ۰ و ۱(منطقی) میکنه و بین هر ۰ و ۱ ایی هم یه تاخیر زمانی میزاره؛ که با تغییر این تاخیر زمانی فرکانس کنترل میشه و زمان صفر و ۱ شدن با هم برابر هستن(۵۰% duty cycle)؛ لذا با تغییر فرکانس صدا های مختلفی بر روی buzzer شنیده میشود.
کد توضیحات بالا یه چیز تو مایه های کد زیر هستش(بدون استفاده از تابع بالا صدای buzzer رو درمیاریم )
Arduino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
voidsetup()
{
pinMode(7,OUTPUT);
}
voidloop()
{
for(inti=500;i<=1000;i++)
{
digitalWrite(7,0);
delayMicroseconds(i);
digitalWrite(7,1);
delayMicroseconds(i-500);
}
}
noTone : این تابع عکس تابع بالا هستش؛ و صدای بازر رو قطع میکنه(صدایی که توسط تابع Tone ایحاد شده بود.)؛ به جای pin شماره پایه ای رو که Buzzer بهش وصل هستش رو قرار میدیم.
یه پروژه جالب و صدای جالب(!!!) با بازر و دو تابع بالا
شماتیک پروژه
کدهای پروژه
Arduino
1
2
3
4
5
6
7
8
9
10
11
12
voidsetup(){}
voidloop()
{
for(inti=200;i<=3000;i=i+10){
tone(7,i);
delay(10);
}
for(inti=3000;i>=200;i=i-10){
tone(7,i);
delay(10);
}
}
عکس از مدار در عمل (اون چیزی که زیر مداره... )
فیلم پروژه :
1.4MBپروژه ایجاد صدا بر روی بازر با آردوینو
0%
00:00 / 00:18
pulseIn
pulseIn :این تابع برای محاسبه زمان پالس اعمال شده به پایه pin (که ما در کد زیر مقدار دهی میکنیم) هستش(زمانی که بر میگردونه بر حسب میکرو ثانیه هستش) و این که حالا این شمارش پالس کی شروع بشه موقع HIGH اون پایه یا LOW شدن ، که این هم در کد زیر توسط قسمت value تعیین میشه.
Arduino
1
2
pulseIn(pin,value);
pulseIn(pin,value,timeout);
timeout : توسط این قسمت تعیین میکنیم که چه مقدار باید تابع صبر کنه تا پالس مد نظر ما تموم بشه ( تعیین حداکثر طول پالسمون )؛ تو حالت عادی 1 ثانیه هستش، که توسط تابع دومی میشه این مقدار رو تغییر داد؛ این ورودی بر حسب ms هستش.
pin : پایه مد نظرو انتخاب میکنیم
Value : تعیین میکنیم لبه حساس مد نظر رو که H باشه یا L
مثال برای این قسمت بمونه برا مطلب بعدی، که میخوام پروژه SRF05 با آردوینو رو توضیح بدم و اونجا این تابع نقش اساسی در راه اندازی ماژول SRF05 داره.
---> پروژه فاصله سنج التراسونیک srf05 با آردینو
خوب از این قسمت دو تابع shiftIn و shiftOut میمونه که برا بحث spi مجازی هستش و بهتره تو جلسات آخر گفته بشه.
سلام، من تو دستور pulseInهنوز یه خورده مشکل دارم، ببینید من مثلا یه کلیدو بین GNDو مثلا پایه 2قرار میدم و خود پایه 2رو با یه مقاومت 10کیلو میزنم به VCC اونوقت تابع رو به صورت pulseIn(2,LOW)
مینویسم، بعدشم مقدارشو میریزم تو مثلا xو بعد میگم xرو روی سریال مانیتور نشون بده، در این صورت اگه من کلیدو فشار بدم پایه 2،LOWمیشه و طبق چیزی که گفتید این تابع باید مدت زمانی که من کلیدو نگه داشتم بهم نشون بده، اما خب من امتحان کردم نشد، میگید چیکار کنم؟
مشاهده پاسخ ها(1)
نویسنده این مطلب
مهدی دمیرچیلو
سلام
1) آیا پایه 2 رو به صورت ورودی تعریف کردید؟
2) به متغییر فوق یه عدد ثابت بدید، ببینید اون عدد طبق کد شما در سریال به درستی نمایش داده میشه یا نه.
3) یه شرط بزارید تا زمانی که کلید در حالت فشرده قرار داره، یه داده دلخواهی رو به pc ارسال کنه.
اینکارا رو انجام بدید تا ببینید مشکل کدتون کجاس.
مهمان
مهدی
با سلام من برد آردوینو dueخریداری کردم ولی در زمان کامپایل با اروری مبنی بر غیر قابل قبول بودن دستور tone مواجه شدم
دستوری برای جایگزینی وجود دارد؟ اگر نه باید چه کار کنم؟
مشاهده پاسخ ها(2)
نویسنده این مطلب
مهدی دمیرچیلو
سلام
بسته Arduino SAM Boards ( 32-bits ARM Cortex-M3) رو برای آردوینو دانلود کردم و تابع TONE رو که تست کردم مث این که این تابع برای DUE تعریف نشده.
تو نت خوندم که حذف شده برا این میکرو ( پست ها برا سال 91 بود تقریبا )
شما باید به کمک تایمر خودتون توابع مورد نیاز رو بنویسید / یا این که تو نت سرچ کنید ببینید کتابخونه خوبی پیدا میکنید برای اینکار یا نه.
مهمان
مهدی
سلام مرسی از راهنمایی تونستم باdacصوتی با کیفیت تر پلی کنم با کتابخانهAudio
مهمان
یوسف
سلام
فرمودید تابع pulseln برای محاسبه زمان پالس هست حالا اگر ما بخوایم تعداد پالس رو حساب کنیم چی
مهمان
حمید
ممنون ، متوجه شدم
یه سوال دیگه
آیا مثل تابع pulseIn داخل AVR هم داریم؟؟؟
مشاهده پاسخ ها(1)
نویسنده این مطلب
مهدی دمیرچیلو
نمیدونم – من ندیدم – باید بنویسی.
مهمان
حمید
اول از زحمات تون تشکر کنم
بعد یه سوال
کار تابع pulselnچیه؟
تعیین زمان هرپالس ؟ یا شمارش پالس ؟
مشاهده پاسخ ها(1)
نویسنده این مطلب
مهدی دمیرچیلو
سلام ( در پاسخ به اون یکی نظرت )
خب ببین در مطلب گفتم دیگه :
“این تابع برای محاسبه زمان پالس اعمال شده به پایه pin هستش”
مثلا شما میخوای فرکانس رو محاسبه کنی – زمان پالس 0 بودن ( یا 1 بودن ) رو که محاسبه کنیم، به سادگی میشه فرکانس رو هم حساب کرد – در عنوان فوق، یک پروژه هم گزاشتم برا این تابع ( پروژه SRF05 ) – پس میشه مورد اولی که گفتید – زمان هر پالس ( سطح 0 یا 1 اش – که به کمک پارامتر های ورودی تابع فوق، قابل تعیین هستش )
مهمان
h
سلام
آقا اگر بخوایم تو اردویونو اجرای ی برانامه متوقف کنیم باید چکار کنیم؟؟؟
همزمان با اموزشی ک گذاشتین دارم پیش میرم و اون مدار buzzer رو بستم میخواستم بدونم چجوری باید متوقفش کرد؟؟
مشاهده پاسخ ها(1)
نویسنده این مطلب
مهدی دمیرچیلو
سلام –
اگر بخوایم تو اردویونو اجرای ی برانامه متوقف کنیم باید چکار کنیم؟؟؟
برنامه چی؟ یعنی چی که متوقفش کنم؟
مدار buzzer رو بستم میخواستم بدونم چجوری باید متوقفش کرد؟؟
خب این مربوطه به کدنویسی ++C
شما مثلا میای میگی به پایه X یه کلید وصل بشه – اگه پایه X فشرده شد – صدا رو وصل یا قطع کن.
یا روش های دیگه – به کمک DEALY یا تایمر.
و…
مهمان
مهدیار
سلام
ی سوال داشتم اینکه با این تابعی که تو این جلسه معرفی کردید فرکانس های بیشتر از 20kهم میشه تولید کرد در عمل؟
مهمان
امیرحسین
ممنون از زحماتتون
مهمان
M
سلام.من متوجه تفاوت بین timeoute , value نشدم؟ چون در هردو گفتین زمان شروع پالس رو تعیین میکنه اگه امکانش هست توضیح بدین
مشاهده پاسخ ها(3)
نویسنده این مطلب
مهدی دمرچیلو
سلام
همچین کلماتی من تو مطلب پیدا نکردم!
مهمان
M
تو قسمت pulse In ‘ گفتین
نویسنده این مطلب
مهدی دمرچیلو
آها – مطلب هم یه مشکلی داشت که تصحیح کردم
timeout : توسط این قسمت تعیین میکنیم که چه مقدار باید تابع صبر کنه تا پالس مد نظر ما تموم بشه ( تعیین حداکثر طول پالسمون )؛ تو حالت عادی ۱ ثانیه هستش، که توسط تابع دومی میشه این مقدار رو تغییر داد؛ این ورودی بر حسب ms هستش.
pin : پایه مد نظرو انتخاب میکنیم
Value : تعیین میکنیم لبه حساس مد نظر رو که H باشه یا L
حالا فک کنم فرق این دو مورد مد نظرتو فهمیده باشی.
مهمان
ABOLFAZL
salam man mikham az pluseln () estefade bokonam vali ba in k p va l ro bozorg mizanam bazam kar nemikone va aslan in tabeo nemishnase che konim???
مهمان
mhsh
سلام.خیلی جالب بود.فقط یه سوال-میگم اونوقت این تابع tone فقط یه زمان خاص سیگال ایجاد می کنه یا تا وقتی که برسه به دستور notone اون سیگنال رو ایجاد میکنه؟یعنی مثلا میشه این دستور رو توی void setup بنویسیم بعد تا آخر برنامه این همینجور این سیگنال رو ایجاد کنه؟
مهمان
ali
اگه بخواهیم ۲ تا از پایه ها هم زمان فعال بشن و یکیشون ۱ ثانیه delay داشته باشه و اون یکی ۲ ثانیه، یعنی یکیشون ۱ ثانیه بعد از اون یکی غیر فعال بشه اون وقت باید چه کدی بنویسیم؟
مشاهده پاسخ ها(4)
نویسنده این مطلب
مهدی دمرچیلو
امکان نوشتن کد وجود ندارد
مهمان
ali
فهمیدم چه جوریه!!
digitalWrite(12,HIGH);
digitalWrite(13,HIGH);
delay(1000);
digitalWrite(12,LOW);
delay(1000);
digitalWrite(13,LOW);
اینجوری ۱۲ و ۱۳ با هم فعال میشن و ۱۲ یک ثانیه زودتر از ۱۳ غیر فعال میشه.
باور کن از رو ورقه کسی نگاه نکردم
فقط دیتاشیت بازر رو نتونستم پیدا کنم، چه ولتاژی بهش بدم؟؟؟؟؟؟؟
به ۵ ولت زدم اون رگولاتوری که روش هست خیلی داغ میکنه
نویسنده این مطلب
مهدی دمرچیلو
معمولا ۵ ولته ولی ۱۲ ولتش هم فک کنم هستش
مهمان
ali
متشکرم.
این بهترین سایت آموزشی (از لحاظ کامل و با جزئیات توضیح دادن و بقیه مخلفات) هستش که تاحالا دیدم.
در ضمن من تاحالا تو هیچ سایتی تو قسمت نظرات سوال نپرسیده بودم چون اصلا امید به این نداشتم که جواب داده بشه یا اگر هم جواب داده بشه امید به این ندارم که جواب به درد بخوری باشه. اما تو این سایت هم سریع جواب داده میشه هم کامل.
ممنون از شما به خاطر زحماتی که میکشید.
مهمان
سعید توکلی
ممنون جناب دمرچیلو عالی بود
مهمان
نیما
یعنی الان من بخوام یک صدای ساده مثل یک بیپ درست کنم که با پیزو پخش بشه راهی نیست؟الان شما همین کدهای مربوط به همین صدای اژیر که توی فیلم هست رو چطوری پیدا کردین؟
مهمان
نیما
سلام آقا مهدی خیلی خیلی ممنون بابت این همه آموزش های کاربردی که قرار میدید من که بدجور وابسته سایتتون شدم دوتا سوال دارم
یک سوال فرق بیزر با پیزر (پیزو) و فرق این دوتا با بلندگو چیه؟
دوم اینکه اگر بخوام یک صدای دلخوه مثلا مثل یک بیپ درست کنم چطوری باید مقدار دهی دارم . فرض کنید یک فایل دارم 2 ثانیه که میخوام صدای این پخش بشه راهی هست که بشه اون فایل رو تبدیل به کدهای متتاظر یا فرکانس های قابل استفاده توی آردوینو کرد؟
مشاهده پاسخ ها(2)
نویسنده این مطلب
مهدی دمرچیلو
سلام
نمیدونم
نویسنده سایت
مهدی زمانی
بیزر داخلش نوسا ساز داره و ولتاژ بدی بهش برات صدا تولید میکنه
پیزو هم ی جور بلندگو با ابعاد کوچیک و توان کمه
بلند گو هم که توی همه رنج توان و قیمت داریم برای فرکانس های پایین و فرکانس های بالا و ….
برای پخش کردن صدای فایل هم میتونید فرمت فایل رو بدست بیارید و ی برنامه بنویسید که برا اسا اون فرمت صدا رو بخونه و عدد متناظر رو روی خروجی به شما بده حالا چجوری رو اردونیو میشه رو نمیدونم چون که الا باهاش کار نکردم
مهمان
امیر
سلام خیلی ممنون از مطالب مفید
چند تا سوال داشتم
مقدار خروجی که pulseIn میده بر حسب میکرو ثانیه است؟ مثلا داده 901238 یعنی 0.9 ثانیه؟
و timeout هم بر حسب میکرو ثانیه است؟ نهایتش چقدره؟
مشاهده پاسخ ها(1)
نویسنده این مطلب
مهدی دمرچیلو
سلام
microseconds
برا timeout هم همون طور که تو مطلب گفتم، پروژه SRF05 با آردوینو رو بخون
مهمان
علیرضا
سلام.خیلی خوب بود.ممنون
مهمان
حمید
تشکر…….تشکر….تشکر……..
مهمان
اسماعیل
سلام مهدی جان خدا قوت!
اقا تا حالا بازر SMD راه انداختی ؟ 4تا پایه داره من هرکار میکنم هیچ صدایی ازش در نمیاد. مشکل کجاست ؟؟؟
مشاهده پاسخ ها(1)
نویسنده این مطلب
مهدی دمرچیلو
سلام
نه والا داش، یه لینک بده ازش تا ببینم چطوری هستش کارش
مهمان
حسین
خیلی هم عالی
مهمان
نيما
سلام آقا مهدی یه پیشنهاد داشتم البته پیشنهاد نه یه خواهش لطفأ اگه خودتونو دوست دارین به مبحث زندگی بهتر استاد پناهیان گوش دل بسپارید و سپس عمل کنید یعنی گوش کردن و عمل با هم باشه.شرمنده خیلی دوستون دارم خدا عاقبت به خیرتان کند.یا علی
مشاهده پاسخ ها(1)
نویسنده این مطلب
مهدی دمرچیلو
سلام
مهمان
Hodrin
مرسی اوکی شدم
فقط ما باید اون شیش تا حرف رو دقیقا ۱ساعت ۵ دقیقه (مثلا) ,۱ساعت ۵ دقیقه ای وارد کنیم؟
یعنی منظورم اینه که ما اگه تو این فاصله ۱۰۰ تا چیز دیگه وارد کنیم اون ۱۰۰ تارو قبول میکنه یا نه؟
یعنی فقط سر اون ۱ساعت ۵ دقیقه دیتا قبول میکنه؟
مشاهده پاسخ ها(1)
نویسنده این مطلب
مهدی دمرچیلو
تا قیامت دیتا قبول میکنه….کایر با این نداریم
ولی ما ۶ تا عدد مثلا میخوایم و بین هر دو عدد حداکثر ۱ساعت و ۵ دقیقه وقت هستش….بعد از این زمان وارد بشه عدد به عنوان ادامه دیتای قبلی تلقی نمیشه.
ما میتویم کد ۶ تا دیتا رو تو ۱۰ ثانیه وارد کنیم و میتونید تو ۳۰ دقیقه و میتونیم بین هر دیتا ۱ ساعت فاصله بندایزم که در مجموع میشه ۶ ساعت و…
تو حالت دیفالت مقدار برابر ۱ ثانیه هستش که ما مثلا میزاریمش رو ۵ ثانیه(که بسته به نیازمون میتونه تغییر کنه.)
جان خودم تا تست نکنی ok نمیشی….چیز خاصی نداره؛ الکی خودت رو اذیت نکن….الکی گیر نده…..
جدی میگم…این نظر منه…اگه بخوای سر هر چیز این قدر گیر بدی خودت رو اذیت میکنی فقط
البته این نظر منه…شاید درست باش شاید غلط
البته امری باشه بنده دربست درخدمتم……..
ok?
مهمان
Hodrin
سلام
بی زحمت میشه یکم بیشتر راجع به timeout توضیح بدی؟
مشاهده پاسخ ها(3)
نویسنده این مطلب
مهدی دمرچیلو
سلام
تو کدوم مطلب اینو گفتم من؟
مهمان
Hodrin
فکر میکنم تو جلسه قبل این جلسه
نویسنده این مطلب
مهدی دمرچیلو
گرفتم
ببین همون جا هم گفتم بازم میگم…
ببین مثلا طرف داره اسمش رو وارد میکنه(تو یه جعبه ای)، اگه الان حرف اول اسمش رو وارد کنه و ساعت بعد بیاد حرف دوم اسمش رو وارد کنه و…(فرض کنید اسمش ۶ تا حرف داره) “اون جعبه هه” فک میکنه که ما ۶ تا اسم مجزا وارد کردیم….چون زمان بین هر چیزی که دریافت میکنه به طور پیش فرض ۱ ثانیه هستش…..حالا به کمک این تابع میایم و میگیم زمان بین وارد شدن هر حرف رو ۱ ساعت و ۵ دقیقه(مثلا)در نظر بگیر تا تمام این ۶ تا حرف به عنوان یه اسم دریافت بشه و نه ۶ تا اسم
ok???
مهمان
مهرداد
سلام
انجمن لازم هست
مشاهده پاسخ ها(1)
نویسنده این مطلب
مهدی دمرچیلو
سلام
پول ندارم
ساختنش کاری نداره و قبلا ساختم
مهمان
محمد
OK
مرسی
مهمان
alireza
سلام داداش
ممنون از زحمتات
دادا یه سوال؟
fritzing میتونه آردوینو رو شبیه سازی کنه؟
مشاهده پاسخ ها(3)
نویسنده این مطلب
مهدی دمرچیلو
والا چرا دروغ بگم ….من خودم زیاد با این نرم افزاره کار نکردم…..بیشتر پروتئوس کار میکنم و در عمل تست میکنم.
مهمان
ali
ممنون
داداش براسایتت یه انجمن هم بزنی خوبه ها
نویسنده این مطلب
مهدی دمرچیلو
پیله میله یوخدی داش
مهمان
محمد
مثل قسمت های قبلی عالی بود یاشا
من یه سوال دارم میشه این قسمت از برنامه رو جوری برای اون قسمت از برنامه پروژه RFID نوشت که فرضا کارت X بیاد کارت بزنه آژیر بزنه سیستم یه چیزی تو مایه های فیلما نشون میدن اونجوری
مشاهده پاسخ ها(1)
نویسنده این مطلب
مهدی دمرچیلو
خوب کاکو برنامه که کارت رو تشخیص میده، فقط باس یه if بزاری و بگی اگه این کارت سنس شد لامپ رو فلان کن بسال کن عین فیلم ها…
ok???
مهمان
سلام، من تو دستور pulseInهنوز یه خورده مشکل دارم، ببینید من مثلا یه کلیدو بین GNDو مثلا پایه 2قرار میدم و خود پایه 2رو با یه مقاومت 10کیلو میزنم به VCC اونوقت تابع رو به صورت pulseIn(2,LOW)
مینویسم، بعدشم مقدارشو میریزم تو مثلا xو بعد میگم xرو روی سریال مانیتور نشون بده، در این صورت اگه من کلیدو فشار بدم پایه 2،LOWمیشه و طبق چیزی که گفتید این تابع باید مدت زمانی که من کلیدو نگه داشتم بهم نشون بده، اما خب من امتحان کردم نشد، میگید چیکار کنم؟
نویسنده این مطلب
سلام
1) آیا پایه 2 رو به صورت ورودی تعریف کردید؟
2) به متغییر فوق یه عدد ثابت بدید، ببینید اون عدد طبق کد شما در سریال به درستی نمایش داده میشه یا نه.
3) یه شرط بزارید تا زمانی که کلید در حالت فشرده قرار داره، یه داده دلخواهی رو به pc ارسال کنه.
اینکارا رو انجام بدید تا ببینید مشکل کدتون کجاس.
مهمان
با سلام من برد آردوینو dueخریداری کردم ولی در زمان کامپایل با اروری مبنی بر غیر قابل قبول بودن دستور tone مواجه شدم
دستوری برای جایگزینی وجود دارد؟ اگر نه باید چه کار کنم؟
نویسنده این مطلب
سلام
بسته
Arduino SAM Boards ( 32-bits ARM Cortex-M3)
رو برای آردوینو دانلود کردم و تابع TONE رو که تست کردم مث این که این تابع برای DUE تعریف نشده.تو نت خوندم که حذف شده برا این میکرو ( پست ها برا سال 91 بود تقریبا )
شما باید به کمک تایمر خودتون توابع مورد نیاز رو بنویسید / یا این که تو نت سرچ کنید ببینید کتابخونه خوبی پیدا میکنید برای اینکار یا نه.
مهمان
سلام مرسی از راهنمایی تونستم باdacصوتی با کیفیت تر پلی کنم با کتابخانهAudio
مهمان
سلام
فرمودید تابع pulseln برای محاسبه زمان پالس هست حالا اگر ما بخوایم تعداد پالس رو حساب کنیم چی
مهمان
ممنون ، متوجه شدم
یه سوال دیگه
آیا مثل تابع pulseIn داخل AVR هم داریم؟؟؟
نویسنده این مطلب
نمیدونم – من ندیدم – باید بنویسی.
مهمان
اول از زحمات تون تشکر کنم
بعد یه سوال
کار تابع pulselnچیه؟
تعیین زمان هرپالس ؟ یا شمارش پالس ؟
نویسنده این مطلب
سلام ( در پاسخ به اون یکی نظرت )
خب ببین در مطلب گفتم دیگه :
“این تابع برای محاسبه زمان پالس اعمال شده به پایه pin هستش”
مثلا شما میخوای فرکانس رو محاسبه کنی – زمان پالس 0 بودن ( یا 1 بودن ) رو که محاسبه کنیم، به سادگی میشه فرکانس رو هم حساب کرد – در عنوان فوق، یک پروژه هم گزاشتم برا این تابع ( پروژه SRF05 ) – پس میشه مورد اولی که گفتید – زمان هر پالس ( سطح 0 یا 1 اش – که به کمک پارامتر های ورودی تابع فوق، قابل تعیین هستش )
مهمان
سلام
آقا اگر بخوایم تو اردویونو اجرای ی برانامه متوقف کنیم باید چکار کنیم؟؟؟
همزمان با اموزشی ک گذاشتین دارم پیش میرم و اون مدار buzzer رو بستم میخواستم بدونم چجوری باید متوقفش کرد؟؟
نویسنده این مطلب
سلام –
برنامه چی؟ یعنی چی که متوقفش کنم؟
خب این مربوطه به کدنویسی ++C
شما مثلا میای میگی به پایه X یه کلید وصل بشه – اگه پایه X فشرده شد – صدا رو وصل یا قطع کن.
یا روش های دیگه – به کمک DEALY یا تایمر.
و…
مهمان
سلام
ی سوال داشتم اینکه با این تابعی که تو این جلسه معرفی کردید فرکانس های بیشتر از 20kهم میشه تولید کرد در عمل؟
مهمان
ممنون از زحماتتون
مهمان
سلام.من متوجه تفاوت بین timeoute , value نشدم؟ چون در هردو گفتین زمان شروع پالس رو تعیین میکنه اگه امکانش هست توضیح بدین
نویسنده این مطلب
سلام
همچین کلماتی من تو مطلب پیدا نکردم!
مهمان
تو قسمت pulse In ‘ گفتین
نویسنده این مطلب
آها – مطلب هم یه مشکلی داشت که تصحیح کردم
timeout : توسط این قسمت تعیین میکنیم که چه مقدار باید تابع صبر کنه تا پالس مد نظر ما تموم بشه ( تعیین حداکثر طول پالسمون )؛ تو حالت عادی ۱ ثانیه هستش، که توسط تابع دومی میشه این مقدار رو تغییر داد؛ این ورودی بر حسب ms هستش.
pin : پایه مد نظرو انتخاب میکنیم
Value : تعیین میکنیم لبه حساس مد نظر رو که H باشه یا L
حالا فک کنم فرق این دو مورد مد نظرتو فهمیده باشی.
مهمان
salam man mikham az pluseln () estefade bokonam vali ba in k p va l ro bozorg mizanam bazam kar nemikone va aslan in tabeo nemishnase che konim???
مهمان
سلام.خیلی جالب بود.فقط یه سوال-میگم اونوقت این تابع tone فقط یه زمان خاص سیگال ایجاد می کنه یا تا وقتی که برسه به دستور notone اون سیگنال رو ایجاد میکنه؟یعنی مثلا میشه این دستور رو توی void setup بنویسیم بعد تا آخر برنامه این همینجور این سیگنال رو ایجاد کنه؟
مهمان
اگه بخواهیم ۲ تا از پایه ها هم زمان فعال بشن و یکیشون ۱ ثانیه delay داشته باشه و اون یکی ۲ ثانیه، یعنی یکیشون ۱ ثانیه بعد از اون یکی غیر فعال بشه اون وقت باید چه کدی بنویسیم؟
نویسنده این مطلب
امکان نوشتن کد وجود ندارد
مهمان
فهمیدم چه جوریه!!
digitalWrite(12,HIGH);
digitalWrite(13,HIGH);
delay(1000);
digitalWrite(12,LOW);
delay(1000);
digitalWrite(13,LOW);
اینجوری ۱۲ و ۱۳ با هم فعال میشن و ۱۲ یک ثانیه زودتر از ۱۳ غیر فعال میشه.
باور کن از رو ورقه کسی نگاه نکردم
فقط دیتاشیت بازر رو نتونستم پیدا کنم، چه ولتاژی بهش بدم؟؟؟؟؟؟؟
به ۵ ولت زدم اون رگولاتوری که روش هست خیلی داغ میکنه
نویسنده این مطلب
معمولا ۵ ولته ولی ۱۲ ولتش هم فک کنم هستش
مهمان
متشکرم.
این بهترین سایت آموزشی (از لحاظ کامل و با جزئیات توضیح دادن و بقیه مخلفات) هستش که تاحالا دیدم.
در ضمن من تاحالا تو هیچ سایتی تو قسمت نظرات سوال نپرسیده بودم چون اصلا امید به این نداشتم که جواب داده بشه یا اگر هم جواب داده بشه امید به این ندارم که جواب به درد بخوری باشه. اما تو این سایت هم سریع جواب داده میشه هم کامل.
ممنون از شما به خاطر زحماتی که میکشید.
مهمان
ممنون جناب دمرچیلو عالی بود
مهمان
یعنی الان من بخوام یک صدای ساده مثل یک بیپ درست کنم که با پیزو پخش بشه راهی نیست؟الان شما همین کدهای مربوط به همین صدای اژیر که توی فیلم هست رو چطوری پیدا کردین؟
مهمان
سلام آقا مهدی خیلی خیلی ممنون بابت این همه آموزش های کاربردی که قرار میدید من که بدجور وابسته سایتتون شدم دوتا سوال دارم
یک سوال فرق بیزر با پیزر (پیزو) و فرق این دوتا با بلندگو چیه؟
دوم اینکه اگر بخوام یک صدای دلخوه مثلا مثل یک بیپ درست کنم چطوری باید مقدار دهی دارم . فرض کنید یک فایل دارم 2 ثانیه که میخوام صدای این پخش بشه راهی هست که بشه اون فایل رو تبدیل به کدهای متتاظر یا فرکانس های قابل استفاده توی آردوینو کرد؟
نویسنده این مطلب
سلام
نمیدونم
نویسنده سایت
بیزر داخلش نوسا ساز داره و ولتاژ بدی بهش برات صدا تولید میکنه
پیزو هم ی جور بلندگو با ابعاد کوچیک و توان کمه
بلند گو هم که توی همه رنج توان و قیمت داریم برای فرکانس های پایین و فرکانس های بالا و ….
برای پخش کردن صدای فایل هم میتونید فرمت فایل رو بدست بیارید و ی برنامه بنویسید که برا اسا اون فرمت صدا رو بخونه و عدد متناظر رو روی خروجی به شما بده حالا چجوری رو اردونیو میشه رو نمیدونم چون که الا باهاش کار نکردم
مهمان
سلام خیلی ممنون از مطالب مفید
چند تا سوال داشتم
مقدار خروجی که pulseIn میده بر حسب میکرو ثانیه است؟ مثلا داده 901238 یعنی 0.9 ثانیه؟
و timeout هم بر حسب میکرو ثانیه است؟ نهایتش چقدره؟
نویسنده این مطلب
سلام
microseconds
برا timeout هم همون طور که تو مطلب گفتم، پروژه SRF05 با آردوینو رو بخون
مهمان
سلام.خیلی خوب بود.ممنون
مهمان
تشکر…….تشکر….تشکر……..
مهمان
سلام مهدی جان خدا قوت!
اقا تا حالا بازر SMD راه انداختی ؟ 4تا پایه داره من هرکار میکنم هیچ صدایی ازش در نمیاد. مشکل کجاست ؟؟؟
نویسنده این مطلب
سلام
نه والا داش، یه لینک بده ازش تا ببینم چطوری هستش کارش
مهمان
خیلی هم عالی
مهمان
سلام آقا مهدی یه پیشنهاد داشتم البته پیشنهاد نه یه خواهش لطفأ اگه خودتونو دوست دارین به مبحث زندگی بهتر استاد پناهیان گوش دل بسپارید و سپس عمل کنید یعنی گوش کردن و عمل با هم باشه.شرمنده خیلی دوستون دارم خدا عاقبت به خیرتان کند.یا علی
نویسنده این مطلب
سلام

مهمان
مرسی اوکی شدم
فقط ما باید اون شیش تا حرف رو دقیقا ۱ساعت ۵ دقیقه (مثلا) ,۱ساعت ۵ دقیقه ای وارد کنیم؟
یعنی منظورم اینه که ما اگه تو این فاصله ۱۰۰ تا چیز دیگه وارد کنیم اون ۱۰۰ تارو قبول میکنه یا نه؟
یعنی فقط سر اون ۱ساعت ۵ دقیقه دیتا قبول میکنه؟
نویسنده این مطلب
تا قیامت دیتا قبول میکنه….کایر با این نداریم
ولی ما ۶ تا عدد مثلا میخوایم و بین هر دو عدد حداکثر ۱ساعت و ۵ دقیقه وقت هستش….بعد از این زمان وارد بشه عدد به عنوان ادامه دیتای قبلی تلقی نمیشه.
ما میتویم کد ۶ تا دیتا رو تو ۱۰ ثانیه وارد کنیم و میتونید تو ۳۰ دقیقه و میتونیم بین هر دیتا ۱ ساعت فاصله بندایزم که در مجموع میشه ۶ ساعت و…
تو حالت دیفالت مقدار برابر ۱ ثانیه هستش که ما مثلا میزاریمش رو ۵ ثانیه(که بسته به نیازمون میتونه تغییر کنه.)
جان خودم تا تست نکنی ok نمیشی….چیز خاصی نداره؛ الکی خودت رو اذیت نکن….الکی گیر نده…..
جدی میگم…این نظر منه…اگه بخوای سر هر چیز این قدر گیر بدی خودت رو اذیت میکنی فقط
البته این نظر منه…شاید درست باش شاید غلط
البته امری باشه بنده دربست درخدمتم……..
ok?
مهمان
سلام
بی زحمت میشه یکم بیشتر راجع به timeout توضیح بدی؟
نویسنده این مطلب
سلام
تو کدوم مطلب اینو گفتم من؟
مهمان
فکر میکنم تو جلسه قبل این جلسه
نویسنده این مطلب
گرفتم
فک میکنه که ما ۶ تا اسم مجزا وارد کردیم….چون زمان بین هر چیزی که دریافت میکنه به طور پیش فرض ۱ ثانیه هستش…..حالا به کمک این تابع میایم و میگیم زمان بین وارد شدن هر حرف رو ۱ ساعت و ۵ دقیقه(مثلا)در نظر بگیر تا تمام این ۶ تا حرف به عنوان یه اسم دریافت بشه و نه ۶ تا اسم
ببین همون جا هم گفتم بازم میگم…
ببین مثلا طرف داره اسمش رو وارد میکنه(تو یه جعبه ای)، اگه الان حرف اول اسمش رو وارد کنه و ساعت بعد بیاد حرف دوم اسمش رو وارد کنه و…(فرض کنید اسمش ۶ تا حرف داره) “اون جعبه هه”
ok???
مهمان
سلام
انجمن لازم هست
نویسنده این مطلب
سلام
پول ندارم
ساختنش کاری نداره و قبلا ساختم
مهمان
OK
مرسی
مهمان
سلام داداش
ممنون از زحمتات
دادا یه سوال؟
fritzing میتونه آردوینو رو شبیه سازی کنه؟
نویسنده این مطلب
والا چرا دروغ بگم ….من خودم زیاد با این نرم افزاره کار نکردم…..بیشتر پروتئوس کار میکنم و در عمل تست میکنم.
مهمان
ممنون
داداش براسایتت یه انجمن هم بزنی خوبه ها
نویسنده این مطلب
پیله میله یوخدی داش
مهمان
مثل قسمت های قبلی عالی بود یاشا
یه چیزی تو مایه های فیلما نشون میدن اونجوری 
من یه سوال دارم میشه این قسمت از برنامه رو جوری برای اون قسمت از برنامه پروژه RFID نوشت که فرضا کارت X بیاد کارت بزنه آژیر بزنه سیستم
نویسنده این مطلب
خوب کاکو برنامه که کارت رو تشخیص میده، فقط باس یه if بزاری و بگی اگه این کارت سنس شد لامپ رو فلان کن بسال کن عین فیلم ها…
ok???