اتصال سنسور هال با رزبری پای

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

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

به همین دلیل، ما نحوه استفاده از سنسور هال را در یک پروژه مبتنی بر Raspberry Pi را با هم بررسی خواهیم کرد.

 


قطعات و لوازم مورد نیاز:

Raspberry pi ورژن ۲ یا ۳
کارت SD (حداقل ۸ گیگابایت)
سنسور اثر هال
کابل LAN


 

این آموزش مبتنی بر سیستم عامل Raspbian stretch خواهد بود، بنابراین برای ادامه کار من تصور می کنم که شما با تنظیم Raspberry Pi با سیستم عامل Raspbian stretch آشنایی دارید و می دانید که چگونه با استفاده از یک نرم افزار ترمینال مانند putty از طریق SSH به Raspberry pi متصل شوید. اگر با هر یک از این موارد مشکلی دارید، تعداد زیادی آموزش Raspberry Pi در این وب سایت وجود دارد که می تواند به شما کمک کند.

برای کسانی که برای اولین بار سیستم عامل Raspbian stretch را نصب می کنند، با این مورد روبرو شده اند که ورود به Raspberry Pi از طریق ssh در ابتدا در سیستم عامل غیرفعال است و شما برای فعال کردن آن یا به یک مانیتور احتیاج دارید یا باید برد  Raspberry pi خود را کانفیگ کنید.

با استفاده از ویندوز یا رایانه لینوکس خود یک فایل خالی به نام ssh ایجاد کرده و فایل خالی را در آن کپی کنید.

 

شماتیک مدار:

برای استفاده از سنسور اثر Hall با Raspberry Pi، قطعات را مطابق شماتیک زیر متصل کنید.

مدار

 

بردبرد

 

سنسور Hall استفاده شده برای این آموزش می تواند مقادیر آنالوگ و دیجیتال را در خروجی ارائه دهد. اما برای ساده کردن آموزش، تصمیم گرفتیم از مقدار دیجیتال استفاده کنیم زیرا استفاده از خروجی آنالوگ نیاز به اتصال ADC به Raspberry Pi دارد.

کد پایتون و توضیحات عملکرد:

کد پایتون برای این پروژه سنسور هال بسیار ساده است، تمام کاری که ما باید انجام دهیم این است که خروجی از سنسور هال را بخوانیم و بر این اساس LED را روشن یا خاموش کنیم. در صورت تشخیص آهنربا قرار است LED روشن شود و در غیر این صورت باید خاموش شود.

Raspberry Pi و SSH خود را با استفاده از putty روشن کنید. برای این پروژه، ما یک دایرکتوری به نام hall ایجاد خواهیم کرد.

mkdir hallsensor
دایرکتوری را به دایرکتوری جدید ایجاد شده تغییر دهید و یک ویرایشگر باز کنید تا اسکریپت پایتون را با استفاده از آن ایجاد کنید.
cd hallsensor
nano hallsensorcode.py

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

ما کد را با وارد کردن کتابخانه RPI.GPIO شروع می کنیم که به ما امکان می دهد اسکریپت های پایتون را برای تعامل با پین های  GPIO بنویسیم.

import RPi.GPIO as gpio

 

در مرحله بعدی پیکربندی شماره گذاری را برای GPIO Rpi تنظیم کرده ایم که می خواهیم از هشدارهای GPIO استفاده کرده و غیرفعال کنیم تا امکان اجرای آزاد کد وجود داشته باشد.

gpio.setmode(gpio.BCM)
gpio.setwarnings(False)

سپس پین های GPIO را که مطابق با شماره گذاری BCM انتخاب شده، LED و خروجی دیجیتال سنسور هال را به آنها متصل می کنیم، تنظیم می کنیم.

hallpin = 2
ledpin = 3

 پایه های GPIO را به عنوان ورودی یا خروجی تنظیم می کنیم. پینی که LED با آن متصل می شود به عنوان خروجی تنظیم می شود و پینی که سنسور هال به آن متصل است به عنوان ورودی تنظیم می شود.

gpio.setup( hallpin, gpio.IN)
gpio.setup(ledpin, gpio.OUT)

با این کار ، قسمت اصلی کد را می نویسیم، این یک حلقه while است که دائماً خروجی از سنسور هال را ارزیابی می کند و در صورت شناسایی آهنربا LED را روشن می کند و در صورت عدم شناسایی آهنربا ، LED را خاموش می کند.

while True:
    if(gpio.input(hallpin) == False):
        gpio.output(ledpin, True)
        print("magnet detected")
    else:
        gpio.output(ledpin, False)
        print("magnetic field not detected")

 

با اجرای اسکریپت، هر زمان که یک آهنربا یا هر نوع مغناطیسی به سنسور هال نزدیک می شود، LED مانند تصویر زیر روشن می شود.

هال

 

کد کامل برنامه به زبان پایتون

Code:

import RPi.GPIO as gpio

gpio.setmode(gpio.BCM)
gpio.setwarnings(False)

hallpin = 2
ledpin = 3

gpio.setup( hallpin, gpio.IN)
gpio.setup(ledpin, gpio.OUT)
gpio.output(ledpin, False)

while True:
    if(gpio.input(hallpin) == False):
        gpio.output(ledpin, True)
        print("magnet detected")
    else:
        gpio.output(ledpin, False)
        print("magnetic field not detected")


مطالب پیشنهادی برای شما


 

محمد صداقتی

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

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