ماژول Metal Touch جهت تشخیص سطوح فلزی می‌باشد. با لمس سنسور تاچ Metal Touch ، در خروجی ۵ ال ای دی به صورتی آبشاری روشن خواهد شد. به این ترتیب که با لمس کردن سنسور تاچ، در ابتدا ال ای دی ها به ترتیب روشن و با جدا کردن آن خاموش خواهند شد. در صورتی که نیاز به مشاهده لیست کامل ماژول ها و یا تکملی سبد خرید دارید میتوانید با کلیک بر روی لینک خرید ماژول وارد دسته بندی ماژول ها شوید.

مشخصات فنی ماژول

ماژول KY-036 شامل یک سنسور لمسی فلزی ، یک مقایسه گر دیفرانسیل LM393 دوتایی ، پتانسیومتر 3296W-104 ، شش مقاومت و دو ال ای دی نشانگر است. این برد دارای یک خروجی  آنالوگ و یک خروجی دیجیتال است.

اگرسر فلزی سنسور لمس شود، سیگنال را صادر می کند. می توانید حسگر سنسور را با کنترل کننده تنظیم کنید.

خروجی دیجیتال: در لحظه تشخیص تماس، یک سیگنال تولید می شود.

خروجی آنالوگ: اندازه گیری مستقیم توسط واحد سنسور

LED1: نشان می دهد سنسور تغذیه را دریافت کرده است.

LED2: نشان می دهد که یک میدان مغناطیسی تشخیص داده شده است.

عملکرد ماژول سنسور سطوح فلزی

این سنسور در صفحه مدار خود دارای 3 مؤلفه اصلی است. ابتدا واحد سنسور در قسمت جلویی یک سیگنال آنالوگ را به واحد دوم، یعنی تقویت کننده می فرستد. آمپلی فایر با توجه به مقدار مقاومت پتانسیومتر، سیگنال را تقویت می کند و سیگنال را به خروجی آنالوگ ماژول می فرستد. مؤلفه سوم مقایسه گری است که اگر سیگنال تحت یک مقدار خاص قرار گیرد، خروجی دیجیتال و LED را خاموش می کند. (با تنظیم پتانسیومتر می توانید حساسیت را کنترل کنید).

توجه کنید که (سیگنال معکوس می شود) به این معنی است که اگر مقدار بالایی را اندازه بگیرید، به عنوان مقدار ولتاژ پایین در خروجی آنالوگ نشان داده می شود.

این سنسور مقادیر مطلق را نشان نمی دهد در واقع این اندازه گیری یک اندازه گیری نسبی است: برای مثال شما یک مقدار  را برای یک وضعیت محیطی عادی تعیین می کنید و اگر اندازه گیری بیش از مقدار مشخص شده باشد، سیگنال ارسال می شود.

هم چنین برای کنترل دما (KY-028) ، سوئیچ مجاورت (KY-024 ، KY-025 ، KY-036) ، ردیابی آلارم (KY-037 ، KY-038) یا رمزگذار دوار (KY-026) مناسب است.

پایه های ماژول

پایه های ماژول ky-036

اتصال پایه های ماژول در برد Arduino و Raspberry Pi در جدول های زیر آورده شده است:

اتاتصال-پایه-ها-در-ماژول-ky-036

دیاگرام اتصالات

پایه های مختلف ماژول را مطابق جدول بالا و به صورت آنچه در تصویر زیر مشاهده می‌شود به برد آردوینو متصل کنید.

picture-fritzing-ky-036

کدهای آردوینو

این برنامه مقدار ولتاژ فعلی را که در پین خروجی اندازه گیری می شود را می خواند و آن را از طریق رابط سریال نشان می دهد.

علاوه بر این، وضعیت پین دیجیتال در ترمینال نشان داده می شود.

// Declaration and initialization of the input pin
int Analog_Eingang = A0; // X-axis-signal
int Digital_Eingang = 3; // Button
  
void setup ()
{
  pinMode (Analog_Eingang, INPUT);
  pinMode (Digital_Eingang, INPUT);
       
  Serial.begin (9600); // Serial output with 9600 bps
}
  
// The program reads the current value of the input pins
// and outputs it via serial out 
void loop ()
{
  float Analog;
  int Digital;
    
  // Current value will be read and converted to the voltage
  Analog = analogRead (Analog_Eingang) * (5.0 / 1023.0); 
  Digital = digitalRead (Digital_Eingang);
    
  // and outputted here
  Serial.print ("Analog voltage value:"); Serial.print (Analog, 4);  Serial.print ("V, ");
  Serial.print ("Extreme value:");
  
  if(Digital==1)
  {
      Serial.println (" reached");
  }
  else
  {
      Serial.println (" not reached yet");
  }
  Serial.println ("----------------------------------------------------------------");
  delay (200);
}

کدهای Raspberry Pi

Raspberry PI برخلاف آردوینو، مبدل آنالوگ به دیجیتال (ADC) را در تراشه خود ارائه نمی دهد. بنابراین اگر از سنسور غیر دیجیتال استفاده کنید، Raspbery Pi محدود می شود. برای اجتناب از این موضوع  از ماژول هایی که یک ADC  16 بیتی را ایجاد می کنند مانند ماژول KY-53 استفاده می کنیم تا آن را با 4 پین ورودی آنالوگ اضافی ارتقا دهیم. ماژول  KY-053 از طریق I2C به Raspberry Pi متصل می شود. داده های آنالوگ را اندازه گیری کرده و آن را به یک سیگنال دیجیتال مناسب برای Raspberry Pi تبدیل می کند. بنابراین اگر می خواهید از سنسورهای آنالوگ به همراه Raspberry Pi استفاده کنید، از KY-053 ADC استفاده کنید.

اتصال پایه های ماژول در برد Raspberry Pi در جدول های زیر آورده شده است:

مبدل-انالوگ-رسپری-پای-ماژول-ky-036

#This code is using the ADS1115 and the I2C Python Library for Raspberry Pi
# import needed modules
import math, 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)
 
# Input pin for the digital signal will be picked here
Digital_PIN = 24
GPIO.setup(Digital_PIN, GPIO.IN, pull_up_down = GPIO.PUD_OFF)
  
# main program loop
# The program reads the current value of the input pin
# and shows it at the terminal
  
try:
        while True:
                #Current values will be recorded
                analog = adc.readADCSingleEnded(adc_channel_0, gain, sps)
  
                # Output at the terminal
                if GPIO.input(Digital_PIN) == False:
                        print "Analog voltage value:", analog,"mV, ","extreme value: not reached"
                else:
                        print "Analog voltage value:", analog, "mV, ", "extreme value: reached"
                print "---------------------------------------"
  
                sleep(delayTime)
  
  
  
except KeyboardInterrupt:
        GPIO.cleanup()