به نام خدا

آموزش   مثال ها | اطلاعات پایه | فوت و فن | پیوندها

نمونه ها

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

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

در اینجا یک راهنمای سبک وجود دارد که با نوشتن مثال هایی، به مبتدیان کمک می کند.

توابع اصلی

برنامه های ساده ای که فرمانهای پایه ای آردوینو را نشان می دهد. این مثالها در محیط آردوینو قرار گرفته اند. جهت باز کردن آنها، در نوار ابزار روی دکمه Open کلیک کرده و نگاهی اجمالی به پوشه examples بیندازید.

1- مثال های ساده

  • BareMinimum: حداقل کدی که جهت آغاز یک برنامه آردوینو مورد نیاز است.
  • Blink: یک LED را روشن و خاموش کنید.
  • DigitalReadSerial: یک سوییچ را خوانده و وضعیت آن را به عنوان خروجی، در محیط Serial Monitor نرم افزار آردوینو چاپ کنید.
  • AnalogReadSerial: مقدار یک پتانسیومتر را خوانده و وضعیت آن را به عنوان خروجی در Serial Monitor نرم افزار چاپ کنید.
  • Fade:استفاده از خروجی آنالوگ را برای کم نور کردن یک LED نشان می دهد.
  • ReadAnalogVoltage : مقدار یک ورودی آنالوگ را خوانده و ولتاژ را در Serial Monitor چاپ می کند.

2- دیجیتال

  • Blink Without Delay: چشمک زدن یک چراغ بدون استفاده از تابع delay() .
  • Button: استفاده از یک دکمه فشاری جهت کنترل یک چراغ.
  • Debounce: وضعیت یک دکمه فشاری که نویزگیری شده را بخوانید.
  • Button State Change: شمارش تعداد فشرده شدن یک دکمه.
  • Input Pullup Serial: استفاده از INPUT_PULLUP را در فرمان pinMode() نشان می دهد.
  • Tone: یک موسیقی را با بلندگوی Piezo پخش کنید.
  • Pitch follower: یک صدا را روی بلندگوی piezo و براساس مقدار ورودی آنالوگ، پخش کنید.
  • Simple Keyboard: یک صفحه کلید موزیکال 3 کلیده با استفاده از سنسورهای Force و یک بلندگوی Piezo.
  • Tone4: آهنگها را روی چند بلندگو با استفاده مکرر از فرمان tone() پخش کنید.

3- آنالوگ

  • AnalogInOutSerial: مقدار یک پین ورودی آنالوگ را خوانده، نتیجه را نگاشت نموده، و سپس داده های آن را جهت کم نور یا پرنور کردن یک LED به کار ببندید.
  • Analog Input: از یک پتانسیومتر جهت کنترل چشمک زدن یک LED استفاده کنید.
  • AnalogWriteMega: تعداد 12 LED را با استفاده از برد آردوینو مگا یکی یکی به حالت Fade on و Fade off در آورید.
  • Calibration: یک مقدار حداقل و حداکثری را جهت مقادیر مورد انتظار سنسور آنالوگ مشخص کنید.
  • Fading: از یک خروجی آنالوگ (پین PWM) جهت Fade کردن یک LED استفاده کنید.
  • Smoothing: خواندن چندگانه ی یک ورودی آنالوگ به صورت نرم و ساده (smooth)

4- ارتباطات

این مثالها شامل کدهایی ست که به آردوینو امکان می دهد تا با برنامه های Processing که روی سیستم کامپیوتری در حال اجراست، ارتباط برقرار کند. سایت  processing.org را مشاهده نمایید. در اینجا Patch های Max/MSP موجود است که می تواند با هر برنامه آردوینو به خوبی ارتباط برقرار کند. جهت کسب اطلاعات بیشتر در مورد Max/MSP صفحه Cycling 74را مشاهده نمایید. جهت آگاهی از patch های Pd که می توانند با این برنامه ها ارتباط برقرار کنند، مثال های Scott Fitzgeraldرا مشاهده کنید.

  • ReadASCIIString: یک رشته از مقادیر عددی را که با کاما از هم جدا شده اند، جهت Fade کردن یک LED تجزیه کنید.
  • ASCII Table: توابع پیشرفته خروجی سریال مربوط به آردوینو را شرح می دهد.
  • Dimmer: ماوس را حرکت دهید تا روشنایی یک LED را تغییر دهید.
  • Graph: داده هایی را به کامپیوتر ارسال کرده و نمودار آن را در Processing رسم کنید.
  • Physical Pixel: با ارسال داده به آردوینو خود از طریق Processing یا Max/MSP یک LED را روشن و خاموش کنید.
  • Virtual Color Mixer: چندین متغیر را از آردوینو به کامپیوتر خود ارسال کرده و آنها را در Processing یا Max/MSP بخوانید.
  • Serial Call Response: چندین متغیر را با استفاده از روش تماس و پاسخ (handshaking) ارسال کنید.
  • Serial Call Response ASCII: چندین متغیر را با استفاده از روش تماس و پاسخ (handshaking) ارسال کنید. مقادیر را پیش از ارسال، با کد اسکی رمزگذاری کنید.
  • SerialEvent: استفاده از تابعSerialEvent() را نشان می دهد.
  • Serial input (Switch (case) Statement): روش انجام اقدامات مختلف براساس کاراکترهایی که از طریق پورت سریال دریافت می شود.
  • MIDI: send MIDI note messages serially.
  • MultiSerialMega: از دو پورت سریالی که بر روی برد مگا موجود است استفاده کنید.

5- ساختارهای کنترلی

  • If Statement (Conditional): روش استفاده از دستور if جهت تغییر شرایط خروجی بر اساس تغییر شرایط ورودی.
  • For Loop: کنترل چندین LED با یک دستور for loop and.
  • Array: طیفی از نمونه های مختلف For Loop  که روش استفاده از یک آرایه را شرح می دهد.
  • While Loop: چگونه از یک حلقه While استفاده کنیم تا یک سنسور را تا زمانی که یک دکمه خوانده می شود، اندازه گیری کنیم.
  • Switch Case: روش انتخاب بین تعداد مجزایی از مقادیر. برابر با دستورات If چندگانه. این مثال نشان می دهد که چطور یک محدوده سنسور را به مجموعه ای 4 باندی تقسیم کنیم و 4 اقدام مختلف را بر اساس این که نتیجه در کدام باند است، انجام دهیم.
  • Switch Case 2: یک مثال دیگر از ساختار switch-case، که نشان می دهد چگونه اقدامات مختلفی را بر اساس کاراکترهای دریافتی از پورت سریال، انجام دهیم.

6- حسگرها

  • ADXL3xx: مقدار یک شتاب سنج ADXL3xx را بخوانید.
  • Knock: با یک المان piezo ضربه ها را شناسایی کنید.
  • Memsic2125 : شتاب سنج دو محوری.
  • Ping: شناسایی اشیا با یک مسافت یاب آلتراسونیک.

7- نمایش

مثالهایی از کنترل صفحه نمایش پایه ای

  • LED Bar Graph: چگونه یک نمودار میله ای چراغی بسازیم.
  • Row Column Scanning: چگونه یک ماتریس 8*8 از LED ها را کنترل کنیم.

8- رشته ها

  • StringAdditionOperator: عمل الحاق رشته ها را به روش های مختلف انجام دهید.
  • StringAppendOperator: داده ها را به رشته ها اضافه کنید.
  • StringCaseChanges: حالت رشته ها را تغییر دهید.
  • StringCharacters: مقدار یک کاراکتر خاص در یک رشته را بخوانید و یا تعیین کنید.
  • StringComparisonOperators: رشته ها را از لحاظ الفبایی مقایسه کنید.
  • StringConstructors: چگونه اشیای رشته ای را مقداردهی اولیه کنیم.
  • StringIndexOf: اولین یا آخرین نمونه از یک کاراکتر در یک رشته را جستجو کنید.
  • StringLength & StringLengthTrim:طول یک رشته را گرفته و آن را Trim کنید.
  • StringReplace: یک کاراکتر تکی را در یک رشته جایگزین کنید.
  • StringStartsWithEndsWith: بررسی کنید که یک رشته داده شده، با کدام کاراکترها یا زیر رشته ها شروع شده و پایان می یابد.
  • StringSubstring: عبارات را در رشته داده شده جستجو کنید.

9.USB (مثال های ویژه Leonardo ، Micro و Due)

مثالهای ماوس و صفحه کلید برای بردهای Leonardo، Micro و Due منحصر به فرد هستند. این مثال ها استفاده از کتابخانه های ویژه این بردها را نشان می دهند.

  • KeyboardAndMouseControl: فرمان های ماوس و صفحه کلید را در یک برنامه نشان می دهد.

صفحه کلید

  • KeyboardMessage: زمانی که یک دکمه فشرده شده است، یک رشته متنی را ارسال می کند.
  • KeyboardLogout : توسط فرمانهای کلیدی، کاربر کنونی را Log Out می کند.
  • KeyboardSerial: یک بایت را از پورت سریال خوانده و یک keystroke را بر می گرداند.
  • KeyboardReprogram : یک پنجره جدید را در IDE آردوینو باز کرده و برد Leonardo را با یک برنامه ساده چشمک زدن، مجددا برنامه ریزی می کند.

ماوس

  • ButtonMouseControl: حرکت نشانگر ماوس را با 5 کلید فشاری کنترل کنید.
  • JoystickMouseControl: حرکت یک نشانگر کامپیوتر را با یک جوی استیک در زمان فشرده شدن یک دکمه کنترل می کند.

توابع کتابخانه ای

مثالهایی از کتابخانه هایی که در نرم افزار آردوینو موجود است.

کتابخانه EEPROM

  • EEPROM Clear: بایت ها را در EEPROM پاک کنید.
  • EEPROM Read: حافظه EEPROM را بخوانید و مقادیر آن را به کامپیوتر ارسال نمایید.
  • EEPROM Write: مقادیر را از ورودی آنالوگ درون EEPROM ذخیره می کند.

کتابخانه Esplora

مثالهای مبتدی Esplora

  • EsploraBlink : چراغهای RGB مربوط به  Esplora را به حالت چشمک زن درآورید.
  • EsploraAccelerometer : مقدار شتاب سنج را بخوانید.
  • EsploraJoystickMouse : از جوی استیک Esploraجهت کنترل نشانگر در کامپیوتر خود استفاده کنید.
  • EsploraLedShow : از جوی استیک و اسلایدر برای ایجاد رقص نور با LED استفاده کنید.
  • EsploraLedShow2 : از سنسور نور، پتانسیومتر خطی، و میکروفون  Esplora جهت تغییر رنگ چراغ موجود روی برد استفاده کنید.
  • EsploraLightCalibrator : مقادیر را از شتاب سنج بخوانید.
  • EsploraMusic : توسط Esplora یک موسیقی ایجاد کنید.
  • EsploraSoundSensor : مقادیر را از میکروفون Esplora بخوانید.
  • EsploraTemperatureSensor : مقدار سنسور دما را خوانده و دما را در مقیاس فارنهایت یا سلسیوس بگیرید.

مثالهای تخصصی Esplora

  • EsploraKart : از Esplora به عنوان یک کنترل کننده جهت اجرای یک بازی مسابقه ای کارت استفاده کنید.
  • EsploraTable : اطلاعات سنسور Esplora را در قالب یک جدول چاپ کنید.
  • EsploraRemote : برد Esplora را به Processing متصل کرده و خروجی ها را کنترل کنید.
  • EsploraPong : بازی Pong را با برد Esplora و با استفاده از Processing اجرا کنید.

کتابخانه Ethernet

  • ChatServer: یک چت سرور ساده را راه اندازی کنید.
  • WebClient: یک درخواست HTTP را ایجاد کنید.
  • WebClientRepeating: درخواست های HTTP تکرار شونده را ایجاد کنید.
  • WebServer: یک صفحه ساده HTML را میزبانی کنید که مقادیر سنسور آنالوگ را نمایش دهد.
  • PachubeClient: به سایت pachube.com متصل شوید. این سایت عملیات datalogging را به طور رایگان امکان پذیر می کند.
  • PachubeClientString: رشته ها را به pachube.com ارسال کنید.
  • BarometricPressureWebServer: مقادیر را از یک سنسور فشار بارومتری به صورت یک صفحه وب به خروجی ارسال می کند.
  • UDPSendReceiveString: رشته های متنی را از طریق UDP ارسال و دریافت کنید.
  • UdpNtpClient: Query a Network Time Protocol (NTP) server using UDP.
  • DnsWebClient: DNS and DHCP-based Web client.
  • DhcpChatServer: یک چت سرور ساده DHCP
  • DhcpAddressPrinter: یک آدرس IP را از طریق DHCP گرفته و در خروجی چاپ کنید.
  • TwitterClient: یک کلاینت Twitter با رشته ها
  • TelnetClient: یک کلاینت ساده Telnet

کتابخانه Firmata

کتابخانه GSM

مثال های GSM

  • Make Voice Call: شیلد خود را جهت ایجاد یک تماس تلفنی از Serial Monitor تهیه کنید.
  • Receive Voice Call: وضعیت مودم را تا زمانی که یک تماس تلفنی برقرار شود، چک کنید.
  • Send SMS: از Serial Monitor استفاده کنید تا در SMS پیام های خود را برای شماره تلفن های مختلف تایپ کنید.
  • Receive SMS: پیام های SMS را خوانده و آنها را به سمت Serial Monitor هدایت نمایید.
  • Web Client: محتویات یک وب سایت را از طریق GPRS به برد آردوینو خود دانلود کنید.
  • Web Server: یک وب سرور بی سیم را از طریق GPRS ایجاد نمایید.
  • Twitter Client: سایت Twitter را از هر جایی بخوانید.
  • Pachube Client: با بستر حسگر Pachube ارتباط برقرار کنید.
  • Pachube Client String: با بستر حسگر Pachube ارتباط برقرار کنید.

ابزارهای GSM

  • Test Modem: IMEI مودم خود را بخوانید.
  • Test GPRS: عاملیت مناسب شبکه GPRS را با استفاده از سیم کارت خود امتحان کنید.
  • GSM Scan Networks: شبکه های موجود را بررسی کنید.
  • Pin Management: پین کد سیم کارت خود را مدیریت کنید.
  • Band Management: باندی که شیلد GSM به آن متصل می شود را مدیریت کنید.
  • Test Web Server: با شیلد GSM خود یک وب سرور ایجاد کنید.

کتابخانه LiquidCrystal

  • Hello World: displays "hello world!" and the seconds since reset.
  • Blink: control of the block-style cursor.
  • Cursor: control of the underscore-style cursor.
  • Display: quickly blank the display without losing what's on it.
  • TextDirection: control which way text flows from the cursor.
  • Scroll: متن را به چپ یا راست اسکرول می کند.
  • Serial input: ورودی سریال را پذیرفته و آن را نمایش می دهد.
  • SetCursor: موقعیت نشانگر ماوس را تعیین کنید.
  • Autoscroll: مکان یک متن را به چپ یا راست تغییر دهید.

کتابخانه Robot

  • Logo -از طریق صفحه کلید روی برد، به ربات خود بگویید که کجا برود؟
  • Line Following - شیارهای یک مسابقه را رسم کرده و روبات خود را روی آن بدوانید.
  • Disco Bot - روبات خود را به یک جعبه گرامافون خودکار 8 بیتی تبدیل کنید و با آن آهنگ برقصید. 
  • Compass - یک بازی treasure hunt را با این قطب نمای دیجیتالی طراحی کنید.
  • Inputs - بیاموزید که چطور Knob و صفحه کلید را کنترل کنید. 
  • Wheel Calibration - چرخ ها را برای کارایی بهتر میزان کنید.
  • Runaway Robot - play tag with your robot using a distance sensor
  • Remote control - reuse that old tv-remote to command the bot on distance
  • Picture browser - آیا می خواهید از تصویر خود استفاده کنید؟ این مثال به شما چگونگی کار را نشان می دهد.
  • Rescue - به ربات خود آموزش دهید که به دنبال مرواریدهای مخفی در یک مارپیچ(Maze) بگردد.
  • Hello User - دموی خوشامد گویی ربات را هک کرده و دموی خود را بسازید.

کتابخانه SPI

  • BarometricPressureSensor: دما و فشار هوا را از یک سنسور با استفاده از پروتکل SPI بخوانید.
  • SPIDigitalPot: یک پتانسیومتر دیجیتال AD5206 را با استفاده از پروتکل SPI کنترل کنید.

کتابخانه Servo

  • Knob: شافت یک موتور سروو را به وسیله تغییر یک پتانسیومتر کنترل کنید.
  • Sweep: شافت یک موتور سروو را به سرعت به عقب و جلو حرکت دهید.

کتابخانه Software Serial

  • Software Serial Examples : چگونه از یک کتابخانه SoftwareSerial استفاده کنیم...چون گاهی تنها یک پورت سریال کافی نیست!
  • Two Port Receive: چگونه با چندین پورت سریال نرم افزاری کار کنیم؟

کتابخانه Stepper

  • Motor Knob: یک موتور استپر بسیار دقیق را با استفاده از یک پتانسیومتر کنترل کنید.

کتابخانه TFT

Esplora

  • Esplora TFT Bitmap Logo: یک فایل تصویری را از یک micro-SD card خوانده و آن را در موقعیتی تصادفی رسم کنید.
  • Esplora TFT Color Picker: با استفاده از جوی استیک و اسلایدر، رنگ صفحه TFT را تغییر دهید.
  • Esplora TFT Etch a Sketch: پیاده سازی یک Esplora از یک Etch-a-Sketch کلاسیک.
  • Esplora TFT Graph: مقادیر یک سنسور نور را در یک TFT به صورت نمودار رسم کنید.
  • Esplora TFT Horizon: یک خط افقی دستی را بر اساس سرعت(tilt) شتاب سنج رسم کنید.
  • Esplora TFT Pong: یک پیاده سازی پایه ای از بازی کلاسیک
  • Esplora TFT Temperature: دما را با سنسور موجود روی برد بررسی کرده و آن را روی صفحه نمایش نشان دهید.

آردوینو

  • TFT Bitmap Logo: یک فایل تصویری را از یک micro-SD card خوانده، و آن را در مکانی تصادفی رسم کنید.
  • TFT Display Text : مقدار یک سنسور را بخوانید و روی صفحه نمایش چاپ کنید.
  • TFT Pong: پیاده سازی یک بازی کلاسیک با آردوینو
  • Etch a Sketch: یک نسخه آردوینویی از بازی Etch-a-Sketch کلاسیک
  • Color Picker: با سه سنسور، رنگ صفحه TFT را تغییر دهید.
  • Graph: مقادیر یک مقاومت متغیر را روی TFT به صورت نمودار رسم کنید.

کتابخانه Wire

  • SFRRanger_reader: با استفاده از یک ارتباط I2C یک مسافت یاب آلتراسونیک Devantech SRFxx را بخوانید.
  • digital_potentiometer: یک پتانسیومتر دیجیتالی AD5171 را با استفاده از کتابخانه wire کنترل کنید.
  • master reader/slave sender: دو (یا تعداد بیشتری) برد آردوینو را جهت اشتراک اطلاعات از طریق پیکر بندی یک master reader/slave sender راه اندازی کنید.
  • master writer/slave reader: اشتراک اطلاعات را با استفاده از راه اندازی یک master writer/slave reader برای دو (یا تعداد بیشتری) برد آردوینو مقدور کنید.

کتابخانه WiFi

  • ConnectNoEncryption : شرح می دهد که چگونه به یک شبکه باز متصل شویم.
  • ConnectWithWEP : شرح می دهد که چگونه به شبکه ای که با WEP رمزگذاری شده، متصل شویم.
  • ConnectWithWPA : شرح می دهد که چگونه به شبکه ای که با WPA2 Personal رمزگذاری شده، متصل شویم.
  • ScanNetworks :همه شبکه های WiFi موجود در محدوده را نمایش می دهد.
  • WiFiChatServer : یک چت سرور ساده را راه اندازی کنید.
  • WiFiPachubeClient : به سایت pachube.com متصل شوید. این سایت عملیات datalogging را به طور رایگان امکان پذیر می کند.
  • WiFiPachubeClientString: رشته هایی را برای سایت pachube.com ارسال کنید.
  • WiFiTwitterClient : یک کلاینت Twitter با رشته ها.
  • WiFiWebClient : به یک وب سرور راه دور متصل شوید.
  • WiFiWebClientRepeating: به طور مکرر یک تماس HTTP را با یک سرور برقرار کنید.
  • WiFiWebServer : به یک صفحه وب از یک شیلد WiFi سرویس دهید.

آردوینو به عنوان پروگرمر ISP

ArduinoISP آردوینو شما را تبدیل به یک پروگرمر مجتمع می کند تا تراشه های Atmega را دوباره برنامه ریزی کنید. اگر شما از آردوینو به سمت Atmega روی یک بردبورد می روید، یا اگر شما مدار آردوینو خود را به صورت سازگار با یک برد بورد ساخته اید، زمانی که نیاز دارید bootloader را روی یک آردوینو مجدداً بارگزاری کنید، این عمل مفید است.

سایر

برای داشتن لیست عظیمی از مثالها از انجمن آردوینو، به صفحه ارتباط با سخت افزار روی playground wiki مراجعه نمایید. همچنین لیست مثالهای قدیمی را مشاهده نمایید.