
قطعات مورد نیاز:

سیم بندی مدار را طبق شکل زیر انجام دهید:

در مرحله بعد، کدهای زیر را روی آردوینو نصب کنید: دما از روی سنسور خوانده میشود و روی serial monitor نوشته میشود و LEDهای رنگی به نسبت گرمای هوا روشن میشوند:
// ابتدا معرفی ال ای دی ها در یک آرایه
int LED [5] = {2, 3, 4, 5, 6};
// پایه وسط سنسور به ورودی آنالوگ آردوینو وصل شود
int sensorPin = A0;
void setup() {
Serial.begin(9600);
for (int i = 0; i < 5; i++) {
pinMode(LED[i], OUTPUT);
}
}
void loop() {
// خواندن مقدار از سنسور
int val = analogRead(sensorPin);
Serial.println(val);
// تمام ال ای دی ها خاموش
for (int i = 0; i<5; i++) {
digitalWrite(LED[i], LOW);
}
// روشن شدن ال ای دی ها
// توضیح این قسمت در پایین همین صفحه
if (val > 40 && val < 45) { // 20 - 22 C
digitalWrite( LED[0], HIGH);
} else if (val > 45 && val < 49){ // 22 - 24 C
digitalWrite( LED[0], HIGH);
digitalWrite( LED[1], HIGH);
} else if (val > 49 && val < 53){ // 24 - 26 C
digitalWrite( LED[0], HIGH);
digitalWrite( LED[1], HIGH);
digitalWrite( LED[2], HIGH);
} else if (val > 53 && val < 57){ // 26 - 28 C
digitalWrite( LED[0], HIGH);
digitalWrite( LED[1], HIGH);
digitalWrite( LED[2], HIGH);
digitalWrite( LED[3], HIGH);
} else if (val > 57){ // بیش از 28 درجه
digitalWrite( LED[0], HIGH);
digitalWrite( LED[1], HIGH);
digitalWrite( LED[2], HIGH);
digitalWrite( LED[3], HIGH);
digitalWrite( LED[4], HIGH);
}
// توقف کوتاه برای ارسال اعداد به سریال ویندو
delay(100);
}
توضیح:
در این سنسور هر 1 درجه سانتیگراد برابر با 10 میلی ولت است.
پس مثلا: 20 درجه سانتیگراد= 200 میلی ولت = 0.2 ولت= 41 واحد آنالوگ:
0.2 V / 5 V * 1023 = 41
پس تقریبا: تغییر هر 1 درجه سانتیگراد = تغییر 2 واحد آنالوگ
(منبع: کتاب Arduino Development Cookbook)

نرم افزار محاسبات ولتاژ رگولاتور
برای: LM317, L200, TL431, M523778xx
از تابع map برای نگاشت بین اعضای دو مجموعه استفاده میشود.
مثال: اگر بخواهیم اعداد موجود در بازه 1 تا 9 را به بازه 3 تا 80 تبدیل کنیم از تابع map یا نگاشت استفاده میکنیم.
ساختار:
map(value, fromLOW, fromHIGH, toLOW, toHIGH)
مبنای محاسبات در تابع map اعداد صحیح است. اعداد کسری به دست آمده در فرایند map میانگین گیری و یا گرد نمی شوند بلکه تقطیع میشوند.
مثال:
مقادیر قابل قبول برای تابع analogRead بین 0 تا 1023 است
مقادیر قابل قبول برای تابع analogWrite بین 0 تا 255 است
اگر بخواهیم مقادیر خوانده شده توسط تابع analogRead را به تابع analogWrite بفرستیم باید محدوده 0 تا 1023 را به محدوده 0 تا 255 تبدیل کنیم. این تبدیل مقادیر را با کمک تابع map انجام میدهیم:
void setup() {
}
void loop() {
int M = analogRead(0);
M = map(M, 0, 1023, 0, 255);
analogWrite(9,M);
}
مقادیر 0 تا 1023 توسط analogRead از روی درگاه ورودی آنالوگ A0 خوانده میشوند و به متغیر M انتساب داده میشوند. سپس با استفاده از تابع map مقادیر متغیر M به محدوده 0 تا 255 تبدیل میشود تا توسط تابع analogWrite قابل خواندن باشند و روی درگاه خروجی آنالوگ 9~ نوشته شوند (منبع: کتاب کلید آردوینو).

دانلود لیست فشرده نکات برنامه نویسی پراسسینگ Processing
(منبع: سایت https://sparkfuneducation.com/)

دانلود لیست نکات برنامه نویسی آردوینو
(منبع: سایت https://sparkfuneducation.com/)

سنسور رطوبت خاک میتواند مقدار رطوبت خاک را اندازه گیری کند تا در صورت نیاز، آبیاری خاک آغاز شود یا پایان یابد.

عملکرد سنسور ساده است:


نحوه سیم بندی مدار بصورت زیر است:
| سیم | سنسور | آردوینو | |
| زرد | AO | A0 | آنالوگ |
| سیاه | GND | GND | منفی |
| قرمز | VCC | 5V | مثبت |

کد آردوینو برای راه اندازی این سنسور به صورت زیر است:
const int hygrometer = A0; // اتصال پین آنالوگ سنسور به پین آنالوگ صفر آردوینو
int value;
void setup()
{
Serial.begin(9600);
}
void loop()
{
// مقدار چهارصد یعنی رطوبت خاک کافی است
// میتوانید هر مقداری را بجای چهارصد بگذارید
value = analogRead(hygrometer); // مقدار آنالوگ سنسور را میخواند
value = constrain(value,400,1023); // تعریف محدوده برای عدد سنسور
value = map(value,400,1023,100,0);
// مقدار آنالوگ خوانده شده را محدود میکند
// یعنی 400 میشود 100 و 1023میشود صفر
Serial.print("رطوبت خاک: ");
Serial.print(value);
Serial.println(%);
delay(1000); // هر یک ثانیه داده گیری انجام شود
}
در نرم افزار آردوینو روی Serial Monitor کلیک کنید تا اعداد خروجی رطوبت خاک نشان داده شوند:

(http://invent.module143.com/منبع: سایت)

(منبع: سایت https://sparkfuneducation.com/)
ساده ترین برنامه که میتوان در محیط آردوینو نوشت بصورت زیر است:
void setup()
{
//put your setup code here to run once
}
void loop()
{
//put your main code here to run repeatedly
}
هربرنامه ساده یا پیچیده آردوینو، باید دارای 2 تابع ویژه به نامهای setup و loop باشد:
دستوری که برایش تعریف می کنیم را «فقط یکبار انجام می دهد».
دستوری که برایش تعریف می کنیم را «آن قدر تکرار میکند تا بگوییم کافی است».

دو پرانتز که به صورت () بعد از کلمات setup و loop آمده است یعنی setup و loop کلمات عادی نیستند بلکه «تابع» هستند:
تابع یعنی چیزی که مانند یک دستگاه، کار مشخصی را که برایش تعریف کرده ایم انجام میدهد یعنی داده ای را از ما میگیرد وسپس عملیاتی را روی داده انجام میدهد و در آخر نتیجه را به ما برمیگرداند.
مجدداً به متن برنامه مراجعه کنید:
void setup()
{
//put your setup code here to run once
}
void loop()
{
//put your main code here to run repeatedly
}
یک علامت به شکل } بعد از کلمه setup قرارگرفته است. علامت } نشانه شروع محدوده ای است که هر دستوری داخل این محدوده نوشته شود، توسط تابع setup اجرا میشود. انتهای این محدوده را با علامتی برعکس، به شکل { نشان میدهیم. بطور خلاصه، دستوراتی که بین دو علامت } و { بیایند، به ترتیب و از بالا به پایین، «فقط یک بار» توسط تابع setup اجرا میشوند. به محدوده بین {} بدنه تابع می گوییم.
بعد از تابع loop نیز علایم } و { دیده میشوند: نقش آنها مثل قبل است و محدوده شروع و پایان دستوراتی را نشان میدهند که توسط تابع loop اجرا میشوند. دستوراتی که بین دو علامت } و { بیایند، به ترتیب و از بالا به پایین، «به دفعات نامحدود» توسط تابع loop اجرا میشوند.
بنابراین تفاوت اصلی تابع loop با تابع setup آن است که:
تابع setup دستورات داخل { } را فقط یک بار اجرا میکند ولی تابع loop دستورات داخل { } را نه فقط یک بار، بلکه آنقدر تکرار میکند که بگوییم کافی است.
(منبع: کتاب کلید آردوینو)


برنامه Blink سرعت چشمک زدن LED را کنترل میکند. مدار را مطابق شکل بالا ببندید. برای محافظت از LED در برابر جریان الکتریکی اضافی، یک عدد مقاومت را بصورت سری در مسیر اتصال LED به آردوینو قرار میدهیم. در شکل بالا:
(در شکل بالا، نقطه های سبز روی بردبورد یعنی: سوراخهای این مسیر، از زیر بردبورد به هم وصل هستند)
آردوینو را به کامپیوتر وصل کنید. برنامه Blink را در نرم افزار آردوینو بنویسید یا از آدرس زیر اجرا کنید:

برنامه به شکل زیر است:
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
فایل را به برد آردوینو بفرستید:

اکنون LED شروع به چشمک زدن میکند. مدت زمان روشن بودن آن 1 ثانیه و مدت زمان خاموش بودن آن نیز 1 ثانیه است. در برنامه بالا ابتدا توسط تابع ()pinMode درگاه دیجیتال شماره 13 را بعنوان درگاه خروجی تعریف میکنیم. سپس در بخش ()loop حلقه تکرارشونده برنامه را بصورت زیر تشکیل میدهیم:
- HIGHشدن درگاه 13 و روشن شدن LED متصل به این درگاه، توسط تابع ()digitalWrite
- توقف در حالت فوق، برای مدت 1000 میلی ثانیه یا 1 ثانیه توسط تابع ()delay
- LOWشدن درگاه 13 و خاموش شدن LED متصل به این درگاه، توسط تابع ()digitalWrite
- توقف درحالت فوق، برای مدت 1000 میلی ثانیه یا 1 ثانیه توسط تابع ()delay
حالا مقادیر تابع ()delay را تغییر دهید و برنامه را مجددا بارگذاری کنید تا تغییرات اعمال شده را بر مدت زمان روشن و خاموش شدن LED مشاهده نمایید.
(منبع: کتاب کلید آردوینو)
سوراخهای روی بردبورد را با سیم به هم وصل میکنند. به این سیمها، سیم جامپر میگویند.

سیم جامپر را میتوانید خودتان (با سیم تک رشته) آماده کنید:



