آموزش آردوینو UNO ( سنسور فوتوسل LDR )

به آموزش آردوینو ( قسمت بیست و هفتم – فوتوسل LDR ) خوش اومدید.

بازبینی اول : در تاریخ ۱۴۰۰/۰۵/۲۹ انجام شد!

فوتوسل LDR

فتوسل یک مقاومت می باشد. این مقاومت مشابه مقاومت های متغیر با استفاده از تابش نور مقدارش تغییر می کند. نحوه کارکرد LDR به این صورت است که اگر نوری که به آن می تابد کم شود مقاومت آن زیاد مى شود و اگر نوری که به آن می تابد زیاد شود مقاومت آن کم مى شود.

نکته : سعی کنید هر وقت خواستید از فتوسل استفاده کنید سطح بیرونی آن را تمیز کنید تا بطور کامل در معرض نور قرار بگیرد .

در تصویر نمودار تغییرات دوسر فتوسل را برحسب شدت نور تابش شده ملاحضه میکنید:

سرور موتور

سرو موتور نوعی از موتورهای الکتریکی است که با هدف بکارگیری در سیستم‌های کنترل فیدبک طراحی می‌شود. لختی در موتور سرو Servo Motor پایین بوده و در نتیجه تغییر سرعت در این موتورها بسیار سریع است. برای مدیریت سرو موتور نیاز به موج مربعی یا PWM است.

آرایش پایه های ماژول SG90

VCC : ما توی این پروژه از ولتاژ برد آردوینو که V5 است استفاده میکنیم.

GND : این پایه ماژول به زمین مشترک مدار متصل میکنیم.

Signal : این پایه داده ها را به برد منتقل میکند.

پیاده سازی عملی پروژه

مانند شکل زیر قطعات را به یکدیگر متصل کنید.

پایه سیگنال سرور موتور را به پین شماره ۳ آردوینو و پایه آند LDR را با یک سیم مستقیما به پین A0 آردوینو و با یک مقاومت ۱۰K اهم به ۳V آردوینو متصل کنید.

نصب کتابخانه های ضروری

برای نصب کتابخانه Servo مراحل زیر رو طی میکنیم:

از منوی Sketck  گزینه Include Library و سپس روی Manage Library کلیک میکنیم .

در کادر عبارت Servo رو تایپ میکنیم و Enter میزنیم تا لیست کتابخانه ها ظاهر بشه و آخرین ورژن کتابخانه مورد نظر را نصب میکنیم.

کد های دستوری

چون توی این پروژه از سروو موتور استفاده میکنیم پس:

ابتدا با دستور <#include <Servo.h کتابخانه کار با سروو موتور رو فراخوانی میکنیم.

سپس یک شی از کلاس سروو بنام  servoMotor ایجاد میکنیم.

#include <Servo.h>
Servo servoMotor;

const int LDR = A0;
int servoPin = 3;
int input_val = 0;

در تابع setup با دستور Serial.begin تنظیمات سریال مانیتور برد اردوینو را برای مشاهده خروجی سنسور فعال کردیم.

servoMotor.attach پایه شماره ۳ از برد اردوینو رو برای اتصال به سروو موتور فعال میکنیم.

void setup()
{
  Serial.begin(9600);
  servoMotor.attach(servoPin); 
}

در تابع setup  ابتدا مقدار سنسور LDR را با استفاده از پین A0 برد آردوینو میخونیم.

با دستور if……else چک میکنیم که ایا مقدار خروجی سنسور از ۴۰۰ کمتر شده یا نه اگر خروجی از ۴۰۰ کمتر بود یعنی نور کمتر شده یا سنسور در سایه قرار گرفته پس سروو موتور به اندازه ۱۸۰ درجه چرخش بکند.

در غیر اینصورت اگه مقدار خروجی بالاتر از ۴۰۰ است که هیچ عملی انجام نشود.

دست آخر هم مقادیر خروجی را برای خطایابی همزمان توی سریال مانیتور مانیتور برد آردوینو نمایش میدهیم.

void loop()
{
  input_val = analogRead(LDR);
  if(input_val>400)
  {
  servoMotor.write(0); 
  }
  else
  {
  servoMotor.write(180); 
  }
  Serial.print("LDR Value is: ");
  Serial.println(input_val);
  delay(1000);
}

کد کامل پروژه

#include <Servo.h>
Servo servoMotor; 

const int LDR = A0;
int servoPin = 3;
int input_val = 0;

void setup()
{
  Serial.begin(9600);
  servoMotor.attach(servoPin); 
}

void loop()
{
  input_val = analogRead(LDR);
  if(input_val>400)
  {
  servoMotor.write(0); 
  }
  else
  {
  servoMotor.write(180); 
  }
  Serial.print("LDR Value is: ");
  Serial.println(input_val);
  delay(1000);
}

پایان آموزش آردوینو   ( قسمت بیست و هفتم – فوتوسل LDR )

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

قبلا حساب کاربری ایجاد کرده اید؟
گذرواژه خود را فراموش کرده اید؟
Loading...