ماژول اینتراپتر Photo Interrupter Module
ماژول اینتراپتر Photo Interrupter Module
ماژول اینتراپتر فوتو (Photo Interrupter Module) یک سنسور نوری است که برای تشخیص موقعیت و حرکت اشیاء در سیستمها و دستگاههای الکترونیکی استفاده میشود. این ماژول از دو قسمت اصلی تشکیل شده است: یک فتوترانزیستور (Phototransistor) و یک LED.فتوترانزیستور در این ماژول عملکردی مشابه با ترانزیستور دارد، با این تفاوت که به جای جریان بر اساس ولتاژ، ولتاژ خروجی بر اساس نور دریافتی توسط آن تغییر میکند. این فتوترانزیستور به عنوان سنسور مورد استفاده قرار میگیرد و تغییرات نوری که به آن وارد میشود را تشخیص میدهد.LED نیز در این ماژول برای تولید نور استفاده میشود. این نور توسط فتوترانزیستور دریافت میشود و وقوع قطع و وصل مواد یا اشیاء در مسیر بین LED و فتوترانزیستور را تشخیص میدهد. وقتی که یک شیء در مسیر نور قرار میگیرد، نور LED به فتوترانزیستور نمیرسد و ولتاژ خروجی آن تغییر میکند که میتوان از آن برای تشخیص وقوع اینتراپت (Interrupt) استفاده کرد.ماژول اینتراپتر فوتو (Photo Interrupter Module) در انواع مختلفی موجود است و دارای سه پین است که شامل پایههای ولتاژ تغذیه، خروجی و زمین (GND) میشود. با اتصال این ماژول به میکروکنترلر یا سیستمهای الکترونیکی دیگر، میتوانید حرکت، موقعیت یا قطع و وصل اشیاء را تشخیص دهید و در برنامهها و کنترلهای خود استفاده کنید.
مشخصات فنی ماژول اینتراپتر Photo Interrupter Module
- ولتاژ 3.3 تا 5 ولت DC
- دارای سه پایه
- شامل یک فرستنده/تشخیصدهنده نور در قسمت جلو و دو مقاومت (1 کیلو اهم و 33 اهم) در قسمت پشت است.
- این حسگر از یک پرتو نوری بین فرستنده و تشخیصدهنده استفاده میکند تا بررسی کند آیا مسیر بین دو تکه موجود توسط یک جسم مات قطع شده است یا خیر.
بررسی پایه های ماژول اینتراپتر Photo Interrupter Module
- VCC: پایه VCC به منبع تغذیه ماژول وصل میشود. با ولتاژ عملیاتی مشخص شده برای ماژول (3.3 ولت یا 5 ولت) سازگار است.
- GND: پایه GND به مرجع منفی تغذیه وصل میشود تا اتصال زمین ماژول فراهم شود.
- OUT: پایه OUT نمایشگر خروجی ماژول است. وضعیت خروجی (منطقی HIGH یا LOW) بستگی به وضعیت بیندازنده نور (مانند فتوترانزیستور) و قطع یا وصل بودن پرتو نوری دارد.
به همراه سنسور اینتراپتر Photo Interrupter Module چه اقلامی باید خریداری شود؟
- برد آردوینو
- کابل فلت
- برد بورد
راه اندازی سنسور اینتراپتر Photo Interrupter Module با آردوینو
این کد آردوینو برای ارتباط با ماژول Photo Interrupter توضیح داده شده است.در این کد از دو پین استفاده میشود.پین interruptPin که برای اتصال به پین وقفه ماژول Photo Interrupter استفاده میشود.پین ledPin که برای اتصال به یک LED برای نمایش وضعیت وقفهها (اختیاری) استفاده میشود.در بخش setup()،ارتباط سریال برای ارتباط با کامپیوتر تنظیم میشود.پین interruptPin به عنوان ورودی تعیین میشود.روتین وقفه به پین وقفه اتصال داده میشود.پین ledPin به عنوان خروجی تنظیم میشود (اختیاری).تعداد وقفهها روی مانیتور سریال چاپ میشود.وضعیت LED بر اساس تعداد وقفهها تغییر میکند (اختیاری)دستور delay(1000) باعث تاخیر یک ثانیه میشود.
// تعریف پینها
const int interruptPin = 2; // این پین را به پین مناسبی که به ماژول وصل شده است تغییر دهید
const int ledPin = 13; // این پین را به پین مناسبی که به یک LED وصل شده است (اختیاری) تغییر دهید
// متغیری برای ردیابی تعداد وقفهها
volatile int interruptCount = 0;
// روتین سرویس وقفه
void handleInterrupt() {
interruptCount++;
}
void setup() {
// مقداردهی اولیه ارتباط سریال
Serial.begin(9600);
// تنظیم پین وقفه به عنوان ورودی
pinMode(interruptPin, INPUT_PULLUP);
// اتصال وقفه به پین وقفه
attachInterrupt(digitalPinToInterrupt(interruptPin), handleInterrupt, FALLING);
// تنظیم پین LED به عنوان خروجی (اختیاری)
pinMode(ledPin, OUTPUT);
}
void loop() {
// چاپ تعداد فعلی وقفهها
Serial.println(interruptCount);
// روشن/خاموش کردن LED بر اساس تعداد وقفهها (اختیاری)
if (interruptCount > 0) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
// تاخیر برای استقرار
delay(1000);
}
راه اندازی سنسور اینتراپتر Photo Interrupter Module با میکروپایتون
در این کد، ابتدا پینها را تعریف میکنیم. پین interrupt_pin به پینی که به ماژول Photo Interrupter متصل شده است اشاره دارد و پین led_pin به پینی که به یک LED وصل شده است (اختیاری) اشاره دارد.سپس متغیر interrupt_count برای ذخیره تعداد وقفهها تعریف شده است.در تابع handle_interrupt، هر بار که وقفهای رخ دهد، متغیر interrupt_count افزایش مییابد و تعداد وقفهها را نگه میدارد.سپس با استفاده از تابع irq()، وقفه روی پین interrupt_pin تنظیم میشود. وقتی وقفه رخ داده، تابع handle_interrupt فراخوانی میشود.در حلقه اصلی، تعداد وقفهها چاپ میشود. همچنین، اگر تعداد وقفهها بیشتر از صفر باشد، LED روشن میشود و در غیر این صورت خاموش میشود (اختیاری).در انتها، با استفاده از تابع sleep()، برنامه به صورت تاخیری به مدت یک ثانیه منتظر میماند تا استقرار داشته باشد. سپس حلقه را از ابتدا تکرار میکند.
from machine import Pin
import time
# تعریف پینها
interrupt_pin = Pin(2, Pin.IN) # این پین را به پین مناسبی که به ماژول وصل شده است تغییر دهید
led_pin = Pin(13, Pin.OUT) # این پین را به پین مناسبی که به یک LED وصل شده است (اختیاری) تغییر دهید
# متغیری برای ردیابی تعداد وقفهها
interrupt_count = 0
# روتین وقفه
def handle_interrupt(pin):
global interrupt_count
interrupt_count += 1
# تنظیم وقفه
interrupt_pin.irq(trigger=Pin.IRQ_FALLING, handler=handle_interrupt)
# حلقه اصلی
while True:
# چاپ تعداد فعلی وقفهها
print(interrupt_count)
# روشن/خاموش کردن LED بر اساس تعداد وقفهها (اختیاری)
if interrupt_count > 0:
led_pin.on()
else:
led_pin.off()
# تاخیر برای استقرار
time.sleep(1)
امکان راه اندازی چند سنسور DHT با ESP8266 با استفاده از MicroPython وجود دارد. سنسورهای DHT با پروتکل دیجیتال و از طریق پایههای GPIO قابل اتصال به میکروکنترلرها هستند.
برای ساخت یک سیستم کنترل دما با برد میکروکنترلر ESP32، به موارد زیر نیاز دارید:
یک برد میکروکنترلر ESP32
یک سنسور دما مثل DHT DS18B20
یک المان سرد کننده
با استفاده از کتابخانه DHT.h، میتوانید از سنسور دما برای خواندن دمای محیط استفاده کنید. سپس، میتوانید از این دما برای کنترل المان گرمایشی یا سرمایشی استفاده کنید.
در خصوص برنامه نویسی از کتابخانه DHT و در صورت نیاز کتابخانه وای فای برای ارسال دادهها به پلتفرم IoT باید استفاده کنید.