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


در طول آموزش، اجزای کلیدی این پروژه را بررسی خواهیم کرد، از جمله چگونگی سیمکشی صحیح آنها و نحوهٔ عملکرد شِفر (کود). برای مشاهدهٔ راهنمای گامبهگام دقیق، ویدیو را تماشا کنید (در ویدیو در 02:00).
توضیح سختافزار
اجزای اصلی این پروژه شامل یک فرستندهٔ لیزر، یک گیرندهٔ لیزر و یک بیزر هستند. فرستندهٔ لیزر یک پرتو نور ساطع میکند، در حالی که گیرنده این پرتو را تشخیص میدهد. زمانی که پرتو قطع میشود، گیرنده یک سیگنال به آردوینو میفرستد که سپس میتواند بیزر را فعال کند یا عمل دیگری انجام دهد.
ماجیول فرستنده با 5 ولت کار میکند و شامل یک مقاومت برای محدود کردن جریان است. ماجیول گیرنده میتواند به یک سیم خارجی متصل شود تا در محل قرارگیری انعطافپذیری داشته باشد. بیزر نیز با 5 ولت تغذیه میشود و دارای دو پایه است: یکی برای مثبت و یکی برای زمین.
جزئیات برگه مشخصات
| تولیدکننده | نامشخص |
|---|---|
| شماره قطعه | ماجیول فرستنده/گیرنده لیزری |
| ولتاژ عملیاتی | 5 ولت |
| جریان مصرفی | 5 mA معمولی. |
| نوع خروجی | سیگنال دیجیتال |
| برد تشخیص | بسته به محیط متفاوت است |
| اندازه | فرستنده: 14.8 mm x 18.8 mm، گیرنده: 15.4 mm x 23.4 mm |
- برای جلوگیری از آسیب، از تأمین ولتاژ مناسب اطمینان حاصل کنید.
- برای کاهش افت سیگنال از سیمهای کوتاه استفاده کنید.
- گیرنده را همراستا با فرستنده نگه دارید تا تشخیص قابلاطمینان باشد.
- راهاندازی را در شرایط نوری مختلف آزمایش کنید.
- نسبت به انعکاسهایی که ممکن است منجر به تشخیصهای نادرست شوند محتاط باشید.
دستورالعملهای سیمکشی

برای سیمکشی فرستنده لیزر، پایه زمین آن را به GND آردوینو و پایه مثبت آن را به 5V آردوینو وصل کنید. پایه میانی فرستنده استفاده نمیشود. برای گیرنده لیزر، پایه زمین آن را به GND، پایه مثبت را به 5V و پایه خروجی را به پایه آردوینو وصل کنید.2این پایه خروجی سیگنال را از گیرنده لیزر میخواند.
سپس بیزر را وصل کنید: پایه بلندتر آن (مثبت) باید به پایه آردوینو متصل شود8, در حالی که پایه کوتاهتر (زمین) به GND متصل میشود. اطمینان حاصل کنید که همه اتصالات محکم هستند تا از بروز مشکلات متناوب در حین عملکرد جلوگیری شود.
مثالهای شِفر (کود) و راهنمای گامبهگام
شِفر (کود) آردوینو با تعریف پایهها برای حساس(حس کننده) لیزری و عمل (بیزر) با استفاده از شناسهها آغاز میشودDETECTوACTION. شِفر (کود) ارتباط سریال را برای اشکالزدایی مقداردهی اولیه میکند و حالت پایهها را درsetup()تابع.
#define DETECT 2 // pin 2 for sensor
#define ACTION 8 // pin 8 for action to do something
void setup() {
Serial.begin(9600);
pinMode(DETECT, INPUT); // define detect input pin
pinMode(ACTION, OUTPUT); // define ACTION output pin
}این قطعه شِفر (کود) نشان میدهد چگونه پایهها باید برای ورودی و خروجی پیکربندی شوند، که برای عملکرد راهاندازی حیاتی است. اینSerial.begin(9600)این دستور امکان ارتباط با نمایشگر مسلسل را فراهم میکند و به ما اجازه میدهد پیامهای خطایابی را مشاهده کنیم.
درloop()در این تابع، شِفر (کود) بهطور پیوسته وضعیت حساس(حس کننده) لیزر را بررسی میکند. اگر پرتو لیزر شناسایی شود، بیزر را فعال میکند و عبارت شناسایی شد! را روی نمایشگر مسلسل چاپ میکند.
void loop() {
int detected = digitalRead(DETECT); // read Laser sensor
if(detected == HIGH) {
digitalWrite(ACTION, HIGH); // set the buzzer ON
Serial.println("Detected!");
} else {
digitalWrite(ACTION, LOW); // Set the buzzer OFF
Serial.println("No laser");
}
delay(200); // wait 200 milliseconds
}این گزیده منطق اصلی برنامه را نشان میدهد. متغیرdetectedخروجیِ ... را ذخیره میکندdigitalRead()تابعی که بررسی میکند آیا پرتو لیزر وجود دارد. بسته به وضعیت، زنگ هشدار روشن یا خاموش میشود.
نمایش / چه انتظاری داشته باشید
وقتی که سیمکشی بهدرستی انجام شده و شِفر (کود) آپلود شده باشد، سیستم باید طبق انتظار کار کند. نمایشگر مسلسل عبارت «شناسایی شد!» را زمانی نشان میدهد که پرتو لیزر به گیرنده برخورد کند و بیزر به صدا درمیآید. اگر پرتو قطع شود یا تشخیص داده نشود، عبارت «لیزر یافت نشد» نمایش داده میشود و بیزر خاموش میشود.
ضروری است اطمینان حاصل شود که پرتو لیزر بهدرستی با گیرنده همتراز شده باشد تا عملکرد قابلاطمینان فراهم شود. مراقب بازتابهای احتمالی باشید که ممکن است باعث نتایج مثبت کاذب شوند، همانطور که در ویدئو (در 08:00) توضیح داده شده است.
نشانهای زمانی ویدئو
- 00:00- مقدمه
- ساعت 02:00- توضیح سختافزار
- 04:30- دستورالعملهای سیمکشی
- 06:15- توضیح شِفر (کود)
- 08:00- نمایش
++
/*
* Laser Sensor module for Arduino
* Turns ON a buzzer or you can control a motor or servo or any other action.
* Watch the video https://youtu.be/h_y1y6eUvIY
* *
Laser Sensor module for Arduino
Written by Ahmad Shamshiri for Robojax.com
on Feb 02, 2018 at 18:24 in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: this code is "AS IS" and for educational purposes only.
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been downloaded from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
/*
/*
*/
// Laser Sensor code for Robojax.com
#define DETECT 2 // pin 2 for sensor
#define ACTION 8 // pin 8 for action to do something
void setup() {
Serial.begin(9600);
Serial.println("Robojax.com Laser Module Test");
pinMode(DETECT, INPUT);//define detect input pin
pinMode(ACTION, OUTPUT);//define ACTION output pin
// Laser sensor code for Robojax.com
}
void loop() {
// Laser Sensor code for Robojax.com
int detected = digitalRead(DETECT);// read Laser sensor
if( detected == HIGH)
{
digitalWrite(ACTION,HIGH);// set the buzzer ON
Serial.println("Detected!");
}else{
digitalWrite(ACTION,LOW); // Set the buzzer OFF
Serial.println("No laser");
// Laser Sensor code for Robojax.com
}
delay(200);
}
مواردی که ممکن است به آنها نیاز داشته باشید
-
آمازون
منابع و مراجع
هنوز هیچ منبعی موجود نیست.
فایلها📁
هیچ فایلی موجود نیست.