الجمعة، 27 مارس 2015

حساس الالوان TCS230

color sensor (TCS230)




مقالتنا اليوم  ستكون عن كيفية  استشعار بعض الألوان وتمييزها باستخدام حساس الألوان واضاءة RGB LED وفقا للون المستشعر , وطباعة النتائج على الشاشة 




فحساس الالون هو حساس يستطيع التمييز بين الالوان المختلفة , فان هذا الحساس يستطيع ان يحول شده  الالوان الى ترددات (frequencies)  مختلفة تعبر عن شده و نوعية اللون 




لهذا الحساس ثمانية منافذ موضحة بالصورة :



سنقوم الان بشرح مختصر عن المنافذ : 

Vcc & GND :  فهذه لمصدر التغذية 

S0,S1 :  فهذه المنافذ لنتحكم ب دقه حساب الترددات المناسبة للالوان التي سنتحسسها 

S2,S3 : و ايضا لتحديد نوعية الالوان

OE (output enable): للسماح باخد قيم التي ستنتج من الحساس ام لا 

OUT : مخرج لنأخذ منه قيم الترددات للون الذي سنتحسسه 



القطع التي نحتاجها في هذه التجربة : 

1. بطاقة اردوينو UNO
2. حساس ألالوان
3. ثلاثي الألوان RGB
4. ثلاث مقاومات 300 اوم
5. اسلاك توصيل 
6. Bread board


 هذا الحساس يفتقر الى الدقه في الاستشعار ..... حيث انه مصمم لاستشعار 3 الوان و هم الاخضر , الازرق,الاحمر اما باقي الالوان لتحديدها , نحتاج لدارسة الترددات المنبعثة منها و تحديد طريقة استشعار مثل هذه الالوان.
 المميز بهذا الحساس انه لا يحتاج الى الكثير من الطاقه لتشغيله  (low power consumption)

والان بعدما تعرفنا على منافذ الحساس و وصف موجز لطريقة عمله سنتعلم الان طريقة توصيل هذه القطعه .

التوصيل:




بعد ان تعرفنا على طريقة توصيل الحساس , الان سنتعرف على البرنامج  الذي سنستخدمه في تجربتنا 

البرنامج :




  


في النهاية سنريكم مجموعة من التجارب على الوان استطاع برنامجنا استشعارها :









وهذا فيديو عملي لاختبار الحساس :

الكاتبة : رزان برهم - لينه عامر الأردن 


الجمعة، 20 مارس 2015

قياس درجة الحرارة والتحكم بعرضها بواسطة #C

قياس درجة الحرارة والتحكم بعرضها  بواسطة #C




تتضمن هذه المقال عرض تجربة عملية لقياس درجة حرارة الجو و من ثم طباعة حاله الطقس على الشاشة الكريستالية .

سيتم استخدام برمجية C# " تقرأ سي شارب " لتحديد نوع البيانات التي ستعرض على الشاشة الكريستاليه .

سيقسم الشرح للمشروع لجزئين : الأردوينو و ال #C

أ) الأردوينو  : 

سنحتاج لهذه التجربة : 

1- بطاقة اردوينو
2- أسلاك توصيل
3- الشاشة الكريستالية LCD 16*2
4- LM35 حساس للحرارة
5- Potentiometer
6- Bread board




خطوات المشروع: 

اولا : نقوم بالتحقق من حساس الحرارة و يمكنك الاستعانه بمقاله (حساس الحرارة lm35 )  .
ثانياً : التحقق من الشاشة الكريستالية و يمكنك الاستعانة بمقاله (الشاشة الكريستالية 1602 liquid Crystal ) .


ثالثاً :نقوم بتوصيل الشاشة و حساس الحرارة مع الاردوينو  كالتالي :










ثم قم بتحميل الكود على بطاقة الاردوينو و ابق الوصلة USB موصوله بالجهاز .

ب) برمجية #C 

الان سننتقل الي العمل في بيئة Visual studio 2010  
في البداية نقوم  باختيار عمل مشروع جديد
ثم نختار اللغه Visual C#
بعد ذلك نختار  Windows form application 
في النهاية نختار اسم للمشروع و مكان حفظه .

الان حان وقت رسم Form
 لنحصل على هذا الشكل :tool box سنرسمه من خلال


ملاحظة : كل مربع يجب علينا تغيير اسمه الى الاسماء التي اخترتها بالكود  و ذلك من خلال الضغط بالزر اليمين على احد (button) و اختيار proparties,سيظهر مربع على اليمين 
قم باختيار (name) ثم غير الاسم , وهكذا لكل الازرار(button) و صناديق الكتابة(textbox).هذه الاسماء:

Show temperature à show
Write to LCD à lcd
Exitàex
Text box above show temperatureàsh
Text box above write à lc

للانتقال الى الكود فقط قم بالضغط مرتين متتاليتين  على احد الازرار  لينتقل مباشرة الى الكود , في النهاية نضع هذا الكود

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;

namespace temp
{
   
    public partial class Form1 : Form
    {
         int temperature=0;
        string status="";
        private SerialPort myport;
        public Form1()
        {
            InitializeComponent();
            init();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

       

        private void lcd_Click(object sender, EventArgs e)
        {
            try
            {
           
                status = lc.Text;
                 myport.WriteLine(status);
            show.Enabled = true;
            lcd.Enabled = false;
            }
            catch(Exception )
            {
                MessageBox.Show("not work probably ");
            }
            }
     
        private void show_Click(object sender, EventArgs e)
        {
            try{

            if(myport.IsOpen)
            {
                 temperature = (int)(Math.Round(Convert.ToDecimal(
                          myport.ReadLine()), 0));
                sh.Text = temperature.ToString();
        show.Enabled = false;
            lcd.Enabled = true;
            }
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);

            }
        }

        private void init()
        {
            try
            {
                myport = new SerialPort();
                myport.BaudRate = 9600;
                myport.PortName = "COM3";
                myport.Open();
            }
            catch (Exception)
            {
                MessageBox.Show("error");
            }
            //
            show.Enabled = true;
           lcd.Enabled = false;
        }

        private void ex_Click(object sender, EventArgs e)
        {
            this.Hide();
        }

       
    }
    }


ملاحظه : في  Init function  قم بتغير رقم Com المناسب لبطاقة الاردوينو الخاصة بك .

في النهاية قم بعمل  Cntrl +F5 

ضمن الملحقات التالية يوجد البرنامج جاهزاً للتشغيل على نظام تشغيل ويندوز بصيغة exe  و تشغيل المشروع مباشرة .



الكاتبة : رزان برهم - الأردن  


الجمعة، 13 مارس 2015

مشروع جهاز قياس القدرة الكهربائية

Watt Meter using arduino



في كثير من التطبيقات العملية في الدوائر الكهربائية , نحتاج لمعرفة التيار الكهربائي والفولتية وحساب القدرة الكهربائية لهذه الدوائر .

سوف نتمكن من خلال هذه المقالة  قياس التيار والفولتية ومعرفة القدرة الكهربائية  سواء لنظام مستمر DC او متردد AC وعرض القيم على شاشة LCD حيث يتم التنقل بين النظامين عن طريق الضغط على  Push button .


القطع المستخدمة في هذا المشروع :



1- بطاقة اردوينو اونو 
2- حساس فولتية Voltage sensor
3- حساس تيار wcs2702 Current sensor
4- LCD 1602
5- لوح توصيل Breadboard
6- حمل (مقاومة   100 ohm) + بطارية 
7- اسلاك توصيل +Push  button +Potentiometer 



1- حساس تيار wcs2702 Current sensor




 ان التغير في التيار يظهر على الحساس على شكل تغير في الفولتية لذلك  سنحتاج الى معادلة حتى نربط بين قيمة فولتية الخرج للحساس وقيمة التيار الحقيقية ,وحتى نتمكن من معرفة المعادلة لا بد لنا من الاطلاع على النشرة الفنية للحساس حتى نتعرف الى الحساسية (Sensitivity) لهذا الحساس  
من خلال النشرة الفنية يتبين ان الحساسية هي 1 فولت لكل امبير وان فولتية الخرج في حالة عدم مرور تيار هي 2,5 فولت لذلك تصبح المعادلة كالتالي :



I =  (Vout - 2.5) /Sensitivity 
I=(Vout-2.5)/1



من الواضح ان هذا الحساس يتميز بحساسية عالية للتيار حيث تتغير قيمة الخرج  1 فولت لكل 1 امبير  ويجدر بنا ان نذكر ان التيار المار بالحساس معزول عن المتحكم لذلك فهو يقيس تيارات عالية نسبيا تصل الى 2 امبير يجب ان ننتبه ان توصيلة هذا الحساس يجب ان تكون على التوالي مع الحمل وتوصيل الخرج على المدخل التناظري

2- حساس فولتية Voltage sensor




يعمل هذا الحساس على مبداء مقسم الجهد Voltage divider  ويتم حيث ان قيمة الخرج لهذا الحساس هي عبارة عن مقدار ثابتة مضروب بالفولتية الحقيقية ويتم معرفتها من خلال تنفيذ جدول يربط بين فولتية معروفة وفولتية الخرج لهذا الحساس حيث يتم قياسها ب استخدام فولتميتر .

ومن خلال التجربة فان النسبة بين فولتية الخرج والفولتية المقاسة هي 1/5  وبالتالي فان المعادلة الازمة لهذا الحساس هي :


V=Vout*5


ولا ننسى توصيل هذا الحساس على التوازي مع الحمل وتوصيل الخرج على المدخل التناظري 

التوصيل : 





البرنامج : 



  








الكاتب : عبد الرحمن الكردي - الأردن 
 
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.