ماژول فتوسل Arduino KY-018 ، برای اندازه گیری شدت نور استفاده می شود و وجود یا عدم وجود نور را مشخص می کند.
این ماژول متشکل از یک مقاومت نوری و یک مقاومت 10kΩ است. مقاومت این مقاومت نوری در صورت وجود نور کاهش می یابد و در صورت عدم وجود آن افزایش می یابد. خروجی آنالوگ است و شدت نور را تعیین می کند.
مشخصات در جدول زیر امده است :
اتصال پایه های ماژول در برد Arduino و Raspberry Pi در جدول های زیر آورده شده است:
پایه های مختلف ماژول را مطابق جدول بالا و به صورت آنچه در تصویر زیر مشاهده میشود به برد آردوینو متصل کنید.
درکد زیر، ولتاژ سنسورهای فعلی اندازه گیری می شود و مقاومت سنسور فعلی را محاسبه می کند.
int sensorPin = 2; //define analog pin 2
int value = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
value = analogRead(sensorPin);
Serial.println(value, DEC); // light intensity
// high values for bright environment
// low values for dark environment
delay(100);
}
Raspberry Pi برخلاف آردوینو، مبدل آنالوگ به دیجیتال (ADC) را در تراشه خود ارائه نمی دهد. بنابراین اگر از سنسور غیر دیجیتال استفاده کنید، Raspbery Pi محدود می شود. برای اجتناب از این موضوع از ماژول هایی که یک ADC 16 بیتی را ایجاد می کنند مانند ماژول KY-53 استفاده می کنیم تا آن را با 4 پین ورودی آنالوگ اضافی ارتقا دهیم. ماژول KY-035 از طریق I2C به Raspberry Pi متصل می شود. داده های آنالوگ را اندازه گیری کرده و آن را به یک سیگنال دیجیتال مناسب برای Raspberry Pi تبدیل می کند. بنابراین اگر می خواهید از سنسورهای آنالوگ به همراه Raspberry Pi استفاده کنید، از KY-053 ADC استفاده کنید.
# This code is using the ADS1115 and the I2C Python Library for Raspberry Pi
# This was published on the following link under the BSD license
# [https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code]
from Adafruit_ADS1x15 import ADS1x15
from time import sleep
# import needed modules
import time, signal, sys, os
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
# initialise variables
delayTime = 0.5 # in Sekunden
# assigning the ADS1x15 ADC
ADS1015 = 0x00 # 12-bit ADC
ADS1115 = 0x01 # 16-bit
# choosing the amplifing gain
gain = 4096 # +/- 4.096V
# gain = 2048 # +/- 2.048V
# gain = 1024 # +/- 1.024V
# gain = 512 # +/- 0.512V
# gain = 256 # +/- 0.256V
# choosing the sampling rate
# sps = 8 # 8 Samples per second
# sps = 16 # 16 Samples per second
# sps = 32 # 32 Samples per second
sps = 64 # 64 Samples per second
# sps = 128 # 128 Samples per second
# sps = 250 # 250 Samples per second
# sps = 475 # 475 Samples per second
# sps = 860 # 860 Samples per second
# assigning the ADC-Channel (1-4)
adc_channel_0 = 0 # Channel 0
adc_channel_1 = 1 # Channel 1
adc_channel_2 = 2 # Channel 2
adc_channel_3 = 3 # Channel 3
# initialise ADC (ADS1115)
adc = ADS1x15(ic=ADS1115)
#############################################################################################################
# ########
# Main Loop
# ########
# Reading the values from the input pins and print to console
try:
while True:
#read values
adc0 = adc.readADCSingleEnded(adc_channel_0, gain, sps)
adc1 = adc.readADCSingleEnded(adc_channel_1, gain, sps)
adc2 = adc.readADCSingleEnded(adc_channel_2, gain, sps)
adc3 = adc.readADCSingleEnded(adc_channel_3, gain, sps)
# print to console
print "Channel 0:", adc0, "mV "
print "Channel 1:", adc1, "mV "
print "Channel 2:", adc2, "mV "
print "Channel 3:", adc3, "mV "
print "---------------------------------------"
time.sleep(delayTime)
except KeyboardInterrupt:
GPIO.cleanup()
کارشناسان ما در کمترین زمان ممکن با شما تماس خواهند گرفت و آماده پاسخگویی به سوالات شما میباشند.
تلفن پشتیبانی: ۵۸۱۴۹۹۹۹ ۰۲۱