به نام خدا |
||||
|
||||
|
<p><strong>آموزش</strong> <a class="wikilink" href="http://arduino.ir/Tutorial"> مثال ها</a> | <a class="wikilink" href="http://arduino.ir/Tutorial/Foundations"> اطلاعات پایه</a> | <a class="wikilink" href="http://arduino.ir/Hacking">فوت وفن ها</a> | <a class="wikilink" href="http://arduino.ir/Tutorial/Links">پیوندها</a> </p> <p class="vspace"></p> <p><em>Examples > Digital</em> </p> <p class="vspace"></p> <h3>Input Pullup Serial</h3> <p>این مثال استفاده از پارامتر INPUT_PULLUP را با دستور <span dir="ltr"> pinMode() </span>شرح می دهد. این پارامتر با برقرار کردن یک <a class="wikilink" href="http://arduino.ir/Reference/Serial">ارتباط سریال</a> بین آردوینو و کامپیوتر شما از طریق USB وضعیت یک سوییچ را بررسی می کند. </p> <p class="vspace"></p> <p>به علاوه، زمانی که ورودی HIGH است، LED متصل به پین 13 که بر روی برد موجود است، روشن خواهد شد؛ وقتی ورودی LOW است، LED خاموش خواهد شد.</p> <p class="vspace"></p> <div class="BOM">
<h3>سخت افزار مورد نیاز</h3> <ul> <li>برد آردوینو </li> <li>سوییچ دو وضعیتی، کلید یا سوییچ چند وضعیتی </li> <li>بردبورد </li> <li>سیم بردبوردی </li> </ul> <p class="vspace"></p>
</div> <p class="vspace"></p> <h3>مدار</h3> <div class="circuit">
<div> <a class="urllink" href="nofollow"> <img height="300px" src="
" title /></a></div>
</div> <p class="vspace"></p> <p><span style="font-size:83%">این تصویر با استفاده از نرم افزار <a class="urllink" href="http://www.fritzing.org" rel="nofollow">Fritzing</a> ایجاد شده است. برای مثال های بیشتر مدار به صفحه <a class="urllink" href="http://fritzing.org/projects/" rel="nofollow">پروژه های Fritzing </a>مراجعه نمایید. </span></p> <p class="vspace"></p> <p> دو عدد سیم را به برد آردوینو متصل کنید. سیم مشکی زمین را به یکی از پایه های کلید فشاری متصل می کند. سیم دوم از پین دیجیتال 2 به پایه دیگر کلید فشاری می رود.</p> <p class="vspace"></p> <p> کلیدهای فشاری یا سوییچ ها، زمانی که آنها را می فشارید، دو نقطه را در مدار به یکدیگر وصل می کنند. زمانی که کلید فشاری باز(فشرده نشده) است، هیچ اتصالی بین دو پایه کلید فشاری وجود ندارد. چون pull-up داخلی روی پین 2 فعال است و به 5 ولت متصل است، زمانی که کلید باز است، ورودی HIGH را می خوانیم. وقتی کلید بسته شد، آردوینو LOW را می خواند، چون اتصال کامل به زمین برقرار است.
</p>
<p class="vspace"></p> <p class="vspace"></p> <h3>شماتیک</h3> <div class="circuit">
<div> <a class="urllink" href="nofollow"> <img height="300px" src="
" title /></a></div>
</div> <p class="vspace"></p> <h3>کد</h3> <p> در برنامه زیر، اولین کاری که باید انجام دهید، شروع یک ارتباط سریال بین آردوینو و کامپیوترتان، با سرعت 9600 بیت در ثانیه، در تابع Setup خواهد بود. این عمل با دستور زیر انجام می پذیرد: </p> <p class="vspace"></p> <p align="left"><code><span dir="ltr">Serial.begin(9600);</span></code> </p> <p class="vspace"></p> <p> سپس پین 2 را به عنوان ورودی همراه با مقاومت pull-up داخلی تعریف می کنید.
</p>
<p class="vspace"></p> <p align="left"><code><span dir="ltr">pinMode(2,INPUT_PULLUP);</span> </code> </p> <p class="vspace"></p> <p> خط زیر، پین 13 را که به LED موجود روی برد متصل است، به عنوان خروجی تعریف می کند.
</p>
<p class="vspace"></p> <p align="left"><code><span dir="ltr">pinMode(13, OUTPUT);</span></code> </p> <p class="vspace"></p> <p> اکنون که تابع Setup شما کامل شد، به تابع Loop برنامه بروید. زمانی که کلید شما فشرده نیست، مقاومت pull-up داخلی، به 5 ولت متصل می گردد. این موجب می شود که آردوینو "1" یا HIGH را گزارش کند. زمانی که کلید فشرده شده است، پین آردوینو به زمین متصل می شود و این مسئله موجب می شود که آردوینو یک "0" یا LOW را گزارش کند.</p> <p class="vspace"></p> <p> اولین کاری که باید در تابع Loop برنامه خود انجام دهید، تعریف یک متغیر جهت نگهداری اطلاعاتی است که از سوییچ می آید.
زمانی که اطلاعات سوییچ "1" یا "0" باشد، می توانید از نوع داده ای
<a class="wikilink" href="http://arduino.ir/Reference/Int"><code>int </code> </a> استفاده کنید. این متغیر را <code>sensorValue</code> بنامید و آن را برابر آنچه که از پین 2 دیجیتال می خوانید قرار دهید. شما می توانید کلی این عملیات را تنها با یک خط کد زیر انجام دهید.
</p> <p class="vspace"></p> <p align="left"><code><span dir="ltr">int sensorValue = digitalRead(2);</span></code> </p> <p class="vspace"></p> <p> زمانی که آردوینو ورودی را می خواند، آن را به عنوان یک مقدار دهدهی در کامپیوتر چاپ می کند. شما می توانید این کار را در خط آخر کد، با دستور <a class="wikilink" href="http://arduino.ir/Serial/Println"><span dir="ltr">Serial.println()</span></a> انجام دهید: </p> <p class="vspace"></p> <p align="left"><code><span dir="ltr">Serial.println(sensorValue, DEC);</span></code> </p> <p class="vspace"></p> <p> حال، زمانی که در محیط برنامه نویسی آردوینو، Serial Monitor را باز می کنید، رشته ای از "0" ها را در زمان بسته بود سوییچ، و یا رشته ای از "1" ها را در زمان باز بودن سوییچ خواهید دید.</p> <p class="vspace"></p> <p> LED متصل به پین 13 زمانی که سوییچ HIGH است روشن و زمانی که سوییچ LOW است، خاموش می شود.
</p>
<p class="vspace"></p> <div class="code">
<p></p> <div class="sourceblock " id="sourceblock1"> <div class="sourceblocktext"> <div class="arduino" align="left" dir="ltr"> <span class="coMULTI">/*<br />
Input Pullup Serial<br /> <br /> This example demonstrates the use of pinMode(INPUT_PULLUP). It reads a
<br />
digital input on pin 2 and prints the results to the serial monitor.<br /> <br /> The circuit: <br /> * Momentary switch attached from pin 2 to ground <br /> * Built-in LED on pin 13<br /> <br /> Unlike pinMode(INPUT), there is no pull-down resistor necessary. An internal
<br />
20K-ohm resistor is pulled to 5V. This configuration causes the input to
<br />
read HIGH when the switch is open, and LOW when it is closed. <br /> <br /> created 14 March 2012<br /> by Scott Fitzgerald<br /> <br /> http://www.arduino.ir/Tutorial/InputPullupSerial<br /> <br /> This example code is in the public domain<br /> <br /> */</span><br />
<br /> <span class="kw1">void</span> <span class="kw3">setup</span><span class="br0">(){</span><br />
<span class="co1">//start serial connection</span><br /> <span class="kw1">Serial</span>.<span class="kw1">begin</span><span class="br0">(</span><span class="nu0">9600</span><span class="br0">)</span><span class="sy0">;</span><br /> <span class="co1">//configure pin2 as an input and enable the internal pull-up
resistor</span><br />
<span class="kw1">pinMode</span><span class="br0">(</span><span class="nu0">2</span><span class="sy0">,</span>
INPUT_PULLUP<span class="br0">)</span><span class="sy0">;</span><br />
<span class="kw1">pinMode</span><span class="br0">(</span><span class="nu0">13</span><span class="sy0">,</span>
<span class="kw2">OUTPUT</span><span class="br0">)</span><span class="sy0">;</span> <br /> <br /> <span class="br0">}</span><br /> <br /> <span class="kw1">void</span> <span class="kw3">loop</span><span class="br0">(){</span><br />
<span class="co1">//read the pushbutton value into a variable</span><br /> <span class="kw1">int</span> sensorVal <span class="sy0">=</span>
<span class="kw1">digitalRead</span><span class="br0">(</span><span class="nu0">2</span><span class="br0">)</span><span class="sy0">;</span><br />
<span class="co1">//print out the value of the pushbutton</span><br /> <span class="kw1">Serial</span>.<span class="kw1">println</span><span class="br0">(</span>sensorVal<span class="br0">)</span><span class="sy0">;</span><br /> <br /> <span class="co1">// Keep in mind the pullup means the pushbutton's</span><br /> <span class="co1">// logic is inverted. It goes HIGH when it's open,</span><br /> <span class="co1">// and LOW when it's pressed. Turn on pin 13 when the
</span><br />
<span class="co1">// button's pressed, and off when it's not:</span><br /> <span class="kw1">if</span> <span class="br0">(</span>sensorVal
<span class="sy0">==</span> <span class="kw2">HIGH</span><span class="br0">)</span> <span class="br0">{</span><br />
<span class="kw1">digitalWrite</span><span class="br0">(</span><span class="nu0">13</span><span class="sy0">,</span>
<span class="kw2">LOW</span><span class="br0">)</span><span class="sy0">;</span><br />
<span class="br0">}</span> <br /> <span class="kw1">else</span> <span class="br0">{</span><br /> <span class="kw1">digitalWrite</span><span class="br0">(</span><span class="nu0">13</span><span class="sy0">,</span>
<span class="kw2">HIGH</span><span class="br0">)</span><span class="sy0">;</span><br />
<span class="br0">}</span><br />
<span class="br0">}</span></div> </div> <br> <br> <div class="sourceblocklink" align="left" dir="ltr"> <a href="http://arduino.cc/en/Tutorial/InputPullupSerial?action=sourceblock&num=1" type="text/plain"> [دریافت کد]</a></div> </div> <p></p>
</div> <p class="vspace"></p> <h3>به لینک های زیر مراجعه کنید:</h3> <ul>
<li><a class="wikilink" href="http://arduino.ir/Reference/Setup"><span dir="ltr">setup()</span></a> </li> <li><a class="wikilink" href="http://arduino.ir/Reference/Loop"><span dir="ltr">loop()</span></a> </li> <li><a class="wikilink" href="http://arduino.ir/Reference/PinMode"><span dir="ltr">pinMode()</span></a> </li> <li><a class="wikilink" href="http://arduino.ir/Reference/DigitalRead"><span dir="ltr">digitalRead()</span></a> </li> <li><a class="wikilink" href="http://arduino.ir/Reference/Delay"><span dir="ltr">delay()</span></a> </li> <li><a class="wikilink" href="http://arduino.ir/Reference/Int"><span dir="ltr">int()</span></a> </li> <li><a class="wikilink" href="http://arduino.ir/Reference/Serial"><span dir="ltr">serial()</span></a> </li> <li><a class="wikilink" href="http://arduino.ir/Tutorial/DigitalPins"><span dir="ltr">DigitalPins()</span></a> <p class="vspace"></p> </li> <li> <a class="wikilink" href="http://arduino.ir/Tutorial/BlinkWithoutDelay">Blink Without Delay</a>: چشمک زدن یک چراغ بدون استفاده از تابع <span dir ="ltr">delay()</span> . </li> <li><a class="wikilink" href="http://arduino.ir/Tutorial/Button">Button</a>: استفاده از یک دکمه فشاری جهت کنترل یک چراغ. </li> <li><a class="wikilink" href="http://arduino.ir/Tutorial/Debounce">Debounce</a>: وضعیت یک دکمه فشاری که نویزگیری شده را بخوانید. </li> <li> <a class="wikilink" href="http://arduino.ir/Tutorial/ButtonStateChange">Button State Change</a>: شمارش تعداد فشرده شدن یک دکمه.
</li>
<li> <a class="selflink" href="http://arduino.ir/Tutorial/InputPullupSerial">Input Pullup Serial</a>: استفاده از INPUT_PULLUP را در فرمان <span dir="ltr">pinMode()</span> نشان می دهد.
</li>
<li><a class="wikilink" href="http://arduino.ir/Tutorial/Tone">Tone</a>: یک موسیقی را با بلندگوی Piezo پخش کنید. </li> <li><a class="wikilink" href="http://arduino.ir/Tutorial/Tone2">Pitch follower</a>:
یک صدا را روی بلندگوی piezo و براساس مقدار ورودی آنالوگ، پخش کنید.
</li> <li><a class="wikilink" href="http://arduino.ir/Tutorial/Tone3">Simple Keyboard</a>: یک صفحه کلید موزیکال 3 کلیده با استفاده از سنسورهای Force و یک بلندگوی Piezo. </li> <li><a class="wikilink" href="http://arduino.ir/Tutorial/Tone4">Tone4</a>:
آهنگها را روی چند بلندگو با استفاده مکرر از فرمان <span dir="ltr">tone()</span> پخش کنید. </li> </ul> </div>