به نام خدا

<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 I/O</em> </p> <p class="vspace"></p> <h3>Blink Without Delay</h3> <p>گاهی نیاز دارید دو عمل را به صورت همزمان انجام دهید. بطور مثال ممکن است بخواهید همزمان با خواندن یک ورودی یا فشار یک دکمه، LED را چشمک زن کنید (یا یک عمل حساس به زمان دیگر). در این حالت نمی توانید از <span dir="ltr"><code>delay()</code></span> استفاده  کنید، یا سایر عملیات ها را در برنامه، تا زمانی که یک LED چشمک می زند، متوقف کنید. اگر در جریان <span dir="ltr">delay()</span>، دکمه ای فشرده شود، برنامه ممکن است فشرده شدن دکمه را نبیند و از دست بدهد. این اسکچ نشان می دهد که چطور یک LED بدون دستور<span dir="ltr"> delay() </span>چشمک می زند. این برنامه، آخرین عملی که آردوینو روی LED انجام داده است را نگه می دارد. سپس هر بار در حلقه <code> <span dir="ltr">loop()</span></code>، چک می شود که آیا زمان دلخواه ما را طی کرده است یا نه؟ اگر چنین بود، LED را به حالت مخالف وضعیت فعلی در می آورد. </p> <p class="vspace"></p> <h3>سخت افزار مورد نیاز</h3> <ul>

	<li>برد آردوینو </li>
	<li>یک LED </li>

</ul> <p class="vspace"></p> <h3>مدار</h3> <p class="vspace"></p> <div>

	<a class="urllink" href=" rel=nofollow">
	<img height="300px" src=" alt=" title /></a></div>

<p class="vspace"></p> <p>برای ساخت مدار، یک LED بردارید و پایه بلند آن یعنی پایه مثبت(که آنود نامیده می شود) را به پین 13 و پایه کوتاه یعنی پایه منفی(که کاتود نامیده می شود) را به زمین وصل کنید. بعد برد آردوینو را به کامپیوتر متصل کرده، برنامه آردوینو را اجرا و کد زیر را وارد کنید. </p> <p class="vspace"></p> <p><strong>شماتیک</strong> </p> <p class="vspace"></p> <p><span style="font-size:83%">برای بزرگ شدن تصویر روی آن کلیک کنید.</span> </p> <p class="vspace"></p> <div>

	<a class="urllink" href=" rel=nofollow">
	<img height="300px" src=" alt=" title /></a></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> <h3>کد</h3> <p>کد زیر از تابع <a class="wikilink" href="http://arduino.ir/Reference/Millis"> <span dir="ltr"><code>millis()</code></a></span> استفاده می کند، دستوری که تعداد میلی ثانیه را از زمانی که برد آردوینو برنامه فعلی را برای چشمک زدن LED اجرا می کند، بر می گرداند. </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">/* Blink without Delay<br />

 <br />  Turns on and off a light emitting diode(LED) connected to a digital 

				<br />

 pin, without using the delay() function.  This means that other code<br />  can run at the same time without being interrupted by the LED code.<br />  <br />  The circuit:<br />  * LED attached from pin 13 to ground.<br />  * Note: on most Arduinos, there is already an LED on the board<br />  that's attached to pin 13, so no hardware is needed for this example.<br />  <br />  <br />  created 2005<br />  by David A. Mellis<br />  modified 8 Feb 2010<br />  by Paul Stoffregen<br />  <br />  This example code is in the public domain.<br />

				<br />

 <br />  http://www.arduino.ir/Tutorial/BlinkWithoutDelay<br />  */</span><br />

				<br />
				<span class="co1">// constants won't change. Used here to </span>
				<br />
				<span class="co1">// set pin numbers:</span><br />
				const <span class="kw1">int</span> ledPin <span class="sy0">=</span> 
				<span class="nu0">13</span><span class="sy0">;</span>     
				<span class="co1">// the number of the LED pin</span><br />
				<br />
				<span class="co1">// Variables will change:</span><br />
				<span class="kw1">int</span> ledState <span class="sy0">=</span>
				<span class="kw2">LOW</span><span class="sy0">;</span>            
				<span class="co1">// ledState used to set the LED</span><br />
				<span class="kw1">long</span> previousMillis <span class="sy0">=</span>
				<span class="nu0">0</span><span class="sy0">;</span>       
				<span class="co1">// will store last time LED was updated</span><br />
				<br />
				<span class="co1">// the follow variables is a long because the 
				time, measured in miliseconds,</span><br />
				<span class="co1">// will quickly become a bigger number than can 
				be stored in an int.</span><br />
				<span class="kw1">long</span> interval <span class="sy0">=</span>
				<span class="nu0">1000</span><span class="sy0">;</span>          
				<span class="co1">// interval at which to blink (milliseconds)</span><br />
				<br />
				<span class="kw1">void</span> <span class="kw3">setup</span><span class="br0">()</span>
				<span class="br0">{</span><br />

  <span class="co1">// set the digital pin as output:</span><br />   <span class="kw1">pinMode</span><span class="br0">(</span>ledPin<span class="sy0">,</span>

				<span class="kw2">OUTPUT</span><span class="br0">)</span><span class="sy0">;</span>     
				<br />
				<span class="br0">}</span><br />
				<br />
				<span class="kw1">void</span> <span class="kw3">loop</span><span class="br0">()</span><br />
				<span class="br0">{</span><br />

  <span class="co1">// here is where you'd put code that needs to be running

				all the time.</span><br />
				<br />

  <span class="co1">// check to see if it's time to blink the LED; that is,

				if the </span><br />

  <span class="co1">// difference between the current time and last time you

				blinked </span><br />

  <span class="co1">// the LED is bigger than the interval at which you want

				to </span><br />

  <span class="co1">// blink the LED.</span><br />   <span class="kw1">unsigned</span> <span class="kw1">long</span> currentMillis

				<span class="sy0">=</span> <span class="kw1">millis</span><span class="br0">()</span><span class="sy0">;</span><br />

 <br />   <span class="kw1">if</span><span class="br0">(</span>currentMillis

				<span class="sy0">-</span> previousMillis <span class="sy0">></span> 
				interval<span class="br0">)</span> <span class="br0">{</span><br />

    <span class="co1">// save the last time you blinked the LED

				</span><br />

    previousMillis <span class="sy0">=</span> currentMillis<span class="sy0">;</span>  

				<br />
				<br />

    <span class="co1">// if the LED is off turn it on and vice-versa:</span><br />     <span class="kw1">if</span> <span class="br0">(</span>ledState

				<span class="sy0">==</span> <span class="kw2">LOW</span><span class="br0">)</span><br />

      ledState <span class="sy0">=</span>

				<span class="kw2">HIGH</span><span class="sy0">;</span><br />

    <span class="kw1">else</span><br />       ledState <span class="sy0">=</span>

				<span class="kw2">LOW</span><span class="sy0">;</span><br />
				<br />

    <span class="co1">// set the LED with the ledState of the variable:</span><br />     <span class="kw1">digitalWrite</span><span class="br0">(</span>ledPin<span class="sy0">,</span>

				ledState<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">
			<a href="http://arduino.cc/en/Tutorial/BlinkWithoutDelay?action=sourceblock&num=1" type="text/plain">
			[دریافت کد]</a></div>
	</div>
	<p></p>
	<p class="vspace"></p>

</div> <p class="vspace"></p> <h3>به لینک های زیر مراجعه کنید:</h3> <ul>

	<li><a class="wikilink" href="http://arduino.ir/Reference/Setup">
	<span dir="ltr">setup()</a></span> </li>
	<li><a class="wikilink" href="http://arduino.ir/Reference/Loop">
	<span dir="ltr">loop()</a></span> </li>
	<li><a class="wikilink" href="http://arduino.ir/Reference/Millis">
	<span dir="ltr">millis()</a></span>
	<p class="vspace"></p>
	</li>
	<li><a class="wikilink" href="http://arduino.ir/Tutorial/BareMinimum">BareMinimum</a> 
	- حداقل کدی که جهت آغاز یک برنامه آردوینو مورد نیاز است. </li>
	<li><a class="wikilink" href="http://arduino.ir/Tutorial/Blink">Blink</a> -یک 
	LED را روشن و خاموش کنید. </li>
	<li><a class="wikilink" href="http://arduino.ir/Tutorial/DigitalReadSerial">
	DigitalReadSerial</a> -یک سوییچ را خوانده و وضعیت آن را به عنوان خروجی، در محیط 
	Serial Monitor نرم افزار آردوینو چاپ کنید. </li>

</ul>