اذهب الي المحتوي
أوفيسنا

نجوم المشاركات

  1. ابو ياسين المشولي

    • نقاط

      5

    • Posts

      1,752


  2. سليم حاصبيا

    سليم حاصبيا

    أوفيسنا


    • نقاط

      4

    • Posts

      8,723


  3. Elsayed Bn Gemy

    Elsayed Bn Gemy

    الخبراء


    • نقاط

      4

    • Posts

      1,162


  4. Ali Mohamed Ali

    Ali Mohamed Ali

    المشرفين السابقين


    • نقاط

      4

    • Posts

      11,630


Popular Content

Showing content with the highest reputation on 27 ينا, 2019 in all areas

  1. السلام عليكم اخواني واحبائى فى الله . اليوم اتيت لكم بمشروع جديد وحصري وهو التحكم فى العالم الحقيقي باستخدام الاكسس ، كالتحكم فى ( فتح البوبات - تشغيل الاناره - تسجيل قرائات حساسات - العد من العالم الحقيقى وتسجيل البيانات - الخ.....) وهذا فيديو للتحفيز : وللبداية والانطلاق فى هذا المشروع يجب من ان تتوفر لديكم بعض من العتاد الاساسية كـ : 1- برنامج اكسس اصدار 2010 او اعلى . 2- كارت اردوينو وهى كارت مفتوحة المصدر و سهلة البرمجة والاستخدام وسوف اقوم بشرحها بالتفصيل على حلقات والتأكد من تنصيب برنامج البرمجة الخاص بها ممكن تحميله من هنا . ويفضل قراءه هذا المقال الذي يعطي نبذة جيده لهذا الكارت للبدء فى استخدامها يمكنك قراءته من هنا . 3- موديل ريلاى واحد خط او اكثر على حسب الرغبة فى عدد الخطوط المرغوب فى التحكم بها او البوابات . وبرجاء قراءه هذا المقال الذي سوف يوضح ما هذا المفتاح وطريقة استخدامه من هنا . 4- اسلاك توصيل بين الموديل و الاردوينو وهى اسلاك جاهزة كما هو موضح . <-----------------------------------------------------------------------------------------------------------------------------------------> كيف سيتم الاتصال : من اسهل طرق التوصيل واكثرها فاعلية وسرعة واتصال فى الجهاتين اى ( ارسال بيانات - واستقبال بيانات ) هو المنفذ التسلسلي Serial Port او RS232 ولمعلومات عنه بالتفصيل بامكانك قراءه هذا المقال من هنا . برجاء قراءه المقالات الموضحه بعاليه قبل البدء فى اى شئ وللحديث بقيه .
    1 point
  2. السلام عليكم اساتذتى واخواتى الكرام -أقدم لكم برنامج يهم كل العاملين بالتربية والتعليم وهو برنامج مرتبات المعلمين من أعمال وتنفيذ الأستاذ المحترم شعبان عطية الصباغ البرنامج يستخرج جميع المرتبات ويقسم ويجمع ويطرح بدون تدخل منك . تعليمات العمل على الشيت نأتي لطريقة العمل على الشيت فى صفحة ( بيانات ) يتم ادخال اسم المدرسة وشهر تحرير الاستماره فى الخانات الخاصة بها فقط حسب السهم أعلى يسار الصفحة ولا يتم ادخال أى بيانات أخرى بهذه الصفحة أولا : شيت المعلمين التابعين للقانون 155 والعمال المتعاقدين والمدرسين المتعاقدين خانات يتم ملئها يدويا وبدونها لايعمل الشيت بشكل سليم أولا : - جانب الاستحقاقات الاسم وبمجرد ادخال الاسم يتم الترقيم تلقائيا فى خانة المسلسل الوظيفة ويتم اختيارها من سهم القائمة المنسدلة وهى درجة الموظف الحالية التى يتقاضى عليها الحوافز والبدلات مع ملاحظة ان عامل متعاقد تشير للعامل المتعاقد ( 150جنيه) بينما معلم متعاقد تشير للمعلم المتعاقد (200جنيه) الدرجة للأعباء ويتم اختيارها من سهم القائمة المنسدلة وهى درجة الموظف التى يتقاضى عليها علاوة الأعباء حيث لا تتغير قيمة العلاوة عند ترقية الموظف 33% للعمال نظرا لحصول بعض العمال المتعاقدين على حكم ال33% يتم كتابة رقم 1 فى الخانة ليتم اعطائهم قيمة الحكم تلقائيا غير ذلك تترك الخانه فارغة اساسى 6 /2015 ويتم احتساب الحوافز والبدلات على اساسه اساسى 7 /2017 ويتم على اساسه حساب المعاشات الأساسية والزماله وخلافه ال3 علاوات الخاصة التى لم تضم للأساسى كل فى العمود الخاص بها ( 2013 - 2014 - 2015 ) قيمة العلاوتين الاجتماعية والاضافية فى العمودين الخاص بها اى مستحقات أخرى فى حالة حصول المعلم على أى مستحقات أخرى مثل بدل تفرغ أو حافز ماجستير أو دكتوراه يتم كتابته بالخانات الخاصة بذلك ويمكن تعديل رأس العمود لتناسب المسمى المطلوب مجموع ال3 علاوات وتوضع نهاية الشيت العامود ( DG) وهى مجموع ال3 علاوات التى تم ضمها للأساسى (علاوة ال10 % لسنة 2016 و علاوة ال10 % لسنة 2017 م وكذا علاوة الغلاء بنسبة ال10% ومجموع العلاوات ضرورى فى حساب الضرائب طبقا لنموذج الضرائب لسنة 2017 م ملاحظات هامه 1 - فيما عدا ما سبق لايتم ادخال أى بيانات يدويا بباقى الأعمده لعدم العبث بالمعادلات بها وحتى تخرج النتائج بشكل سليم 3 - توجد بعض الحالات لمن لا يتقاضون بدل الاعتماد ويتم منحهم زيادة فى حافز الأداء أو نسبة ال 91% يتم تعديل قيمة البدل بالمعادلة امام مسمى المعلم بمعرفة مسئول التطوير أو احد ملم بكيفية عمل ذلك ثانيا : - جانب الاستقطاعات يتم ادخال أى استقطاعات خاصة بكل معلم ان وجدت مثل الرابطة - مهن اجتماعية - مهن تطبيقية الخ ويمكن تعديل عنوان العمود ليناسب كل مدرسة مع ملاحظة التعديل بمفردات المرتب بنفس التعديلات ملاحظات هامه 1 - لا يتم التعديل بعامود قسط الاعارة والمدة السابقة حيث تدخل فى حساب الضرائب 2 - فى حالة اشتراك الموظف بالبحث العلمى لايتم كتابة شىء بالعامود وبمجرد ادخال ال4 جنيه بخانة الخدمات العمالية يتم حساب البحث العلمى تلقائيا لذا يرجى عدم تغيير عنوان العامودين 3 - يرجى عدم التغيير بعناوين الأعمده الا فى حالة الضرورة وذلك لارتباطها بمفردات المرتب وكشف التظهير وتوجد اعمده كثير مخفية يمكن الكتابة بها 4 - يوجد بعد عامود اسم البنك فى نهاية الشيت اعمده خاصة بحساب الدمغة والضريبة لا يتم العبث بها نهائيا ليتم حسابهما بشكل سليم 5 - يتم كتابة اسم البنك بكشف البنك امام كل مدرس ثانيا : شيت الاداريين ومشرفى النشاط والتابعين للقانون 81 لسنة 2016 م خانات يتم ملئها يدويا وبدونها لايعمل الشيت بشكل سليم أولا : - جانب الاستحقاقات الاسم وبمجرد ادخال الاسم يتم الترقيم تلقائيا فى خانة المسلسل الوظيفة ويتم كتابتها ولا يؤثر المسمى على أى شىء ومهم لمفردات المرتب الدرجة ويتم كتابتها ولا يؤثر المسمى على أى شىء ومهم لمفردات المرتب نقابى + حكم ركز معايا شويه الشيت اسهل من شيت المدرسين لو اتنفذ العمود ده بشكل سليم عارف طبعا ان الاداريين بالنسبه للنقابه اما نقابى أو غير نقابى وبالنسبه للحاصلين على الحكم بال33% اما واخد حكم أو مش واخد متفقين من السهم الموجود بالعمود ده هاتختار الأرقام من صفر وحتى الرقم 3 على النحو التالى : - 0 ويوضع امام الادارى غير النقابى والذى لم يحصل على حكم بال 33% 1 ويوضع امام الادارى النقابى والذى لم يحصل على حكم بال 33% 2 ويوضع امام الادارى غير النقابى والذى حصل على حكم بال 33% 3 ويوضع امام الادارى النقابى والذى حصل على حكم بال 33% اساسى وهمى ويتم على اساسه حساب المعاشات الأساسية والزماله وخلافه اساسى 30 / 6 / 2015 ويتم على اساسه حساب الأجر المكمل كل حسب موقفه من الحكم والنقابه اجر وظيفى + 7% ويتم على اساسه حساب الأجر والمتغير والمعاشات وكل شىء العلاوة التعويضية وحسابها من جملة المكمل والمتغير بدلات أخرى إن وجد ملاحظات هامه 1 - احيانا ونظرا لجبر الأرقام طبقا لتعليمات الماهيات تجد رقم 1 موجود فى خانة ال33% للناس اللى مش واخده حكم معلش امسحه وضيفه يدويا على خانة ال50 % ثانيا : - جانب الاستقطاعات يتم ادخال أى استقطاعات خاصة بكل إدارى ان وجدت مثل الرابطة - مهن تطبيقية الخ ويمكن تعديل عنوان العمود ليناسب كل مدرسة مع ملاحظة التعديل بمفردات المرتب بنفس التعديلات ملاحظات هامه 1 - لا يتم التعديل بعامود قسط الاعارة والمدة السابقة حيث تدخل فى حساب الضرائب 2 - فى حالة اشتراك الموظف بالبحث العلمى لايتم كتابة شىء بالعامود وبمجرد ادخال ال4 جنيه بخانة الخدمات العمالية يتم حساب البحث العلمى تلقائيا لذا يرجى عدم تغيير عنوان العامودين 3 - يرجى عدم التغيير بعناوين الأعمده الا فى حالة الضرورة وذلك لارتباطها بمفردات المرتب وكشف التظهير وتوجد اعمده كثير مخفية يمكن الكتابة بها 4 - يتم كتابة اسم البنك بكشف البنك امام كل إدارى ملاحظات هامة على البرنامج ككل 1 - يتم ترحيل البيانات تلقائيا لكشف التظهير للكل أو للبنك وكذا اقساط الزماله وكشف 2 تأمين ومعاش ويرجى المراجعة بعد التنفيذ 2 - يتم كتابة بيانات القصاصات يدويا او بعمل ارتباط فى الخانات الخاصة بها بمعرفة مسئول التطوير 3 - قبل الطباعة يتم اخفاء جميع الأعمده الخالية من البيانات والتعديل على تخطيط الصفحه حتى تظهر الأرقام بحجم ملائم للعين 4 - قبل الطباعة يتم جعل تنسيق الشيت بدون لون ( ابيض ) للتكلفة ولوضوح الأرقام ثم حفظ الصفحه بتنسيق pdf لتلائم الصفحة فى الطباعة 5 - اذا تم العمل بالبرنامج بشكل سليم عند عمل تسوية ضريبية سنويه فى نهاية العام لن توجد على الموظف أى مبالغ حيث تم احتسابها شهريا وبشكل سليم بعد مراجعة الضرائب بشبين الكوم 6 - عند حساب مكافأة الامتحانات لا يتم خصم أى مبالغ لحساب الضرائب حيث تم تسويتها شهريا ودفع ضرائبها مع المرتب على 12 شهر بدلا من خصمها مرة واحده مما يؤثر على قيمتها وذلك لجميع العاملين بالتربية والتعليم سواء الخاضعين للقانون 155 ( الكادر ) أو التابعين لقانون 81 لسنة 2016 ( الخدمة المدنية ) وهذا هو البرنامج-أتمنى ان ينال اعجابكم وعليكم بالدعاذ لصاحب هذ البرنامج بارك الله فيه وجزاه الله كل خير وجعل الله هذا العمل فى ميزان أعماله برنامج عمل مرتبات المعلمين الجديدة 2019.xlsx
    1 point
  3. السلام عليكم ورحمة الله وبركاته كثيرا منا يحتاج الى عرض الصور فى مجلد محدد عن طريق الاكسس بحث عن طرق عدة وكل الطرق كانت مثل الصورة التالية والتى كانت لا تروقنى فقلت ارخم عليكم واعمل انا طريقة تانية لانى دى احد عيوبها نى لو عندى الف صورة هفضل اعمل اسكرول لحد ما اصل الى الف سجل وهو عدد المسارات الخاصة بالصور فقلت اعمل طريقة خاصة بينا احنا اوفيسنا مش عارف موجودة ولا لا اهو بالبركة وزيادة الخير خيرين زى طريقة عرض الصور فى الويندوز الية العمل كلها تكمن فى مصدر عنصر تحكم كل كائن من كائنات الصور -------------- بعد الضغط على زر تحديد المجلد ثم الضغط عزر الذهاب الى المجلد سيقوم البرنامج تلقائيا بجلب جميع مسارات الصور داخل البرنامج مع اعطاء كل مسار رقم وعن طريق هذا الرقم ساقوم باستدعاء كل صورة حيث عن المعادلة ( رقم السجل * 8 - 7 ) = 1 ( رقم السجل * 8 - 6 ) = 2 ( رقم السجل * 8 - 5 ) = 3 ةهكذا حيث رقم السجل هو الترقيم التلقائى لكل سجل الذى يعطيه البرنامج تلقائيا عند جلب المسارات فيديو للشرح المرفق Gallary.rar
    1 point
  4. 1 point
  5. بارك الله فيك وارذقك وعافيك
    1 point
  6. بارك الله فيك استاذى الكريم وجزاك الله كل خير بالتأكيد دائما نتعلم طالما اننا عايشين فلا يوجد من هو كبير على التعلم وطبعا من الأفضل الا تبخل بعلم تعلمته فلابد من نشر العلم
    1 point
  7. عليك باستخدام خاصية البحث فى المنتدى فهناك العديد من الموضوعات المتشابهة لطلبك ومنها https://www.officena.net/ib/topic/88231-برنامج-السيارات/?tab=comments#comment-556897 https://www.officena.net/ib/topic/87264-برنامج-سيارات/?tab=comments#comment-552166 كما ان هناك ما هو بمقابل على هذا الرابط https://www.officena.net/ib/topic/76248-برنامج-شركة-ايجار-سيارات/?tab=comments#comment-488293
    1 point
  8. باشا ربنا يكرمك ويوفقك ويسعدك وربنا ينفع بعلمك ويجزيك عنا خير
    1 point
  9. بارك الله فيك أخي @Elsayed Bn Gemy ما شاء الله تبارك الله هذه ليست ارهاصات .... بل ابداعات
    1 point
  10. نعم اخى الكريم انا زكرت فى بداية الامر انه عارض للصور فقط ولكن بفضل الله اعمل على تحديثه ليعرض كل الملفات طالما سيحتاجه الاخوة ان شاء الله
    1 point
  11. نفترض الرقم طلع في تكست2 عند ضغط تثبيت يصير الرقم ثابت في تكست1 Prog125.rar
    1 point
  12. اخي حربي العنزي جرب انت عمل حقل غير منظم وبعدها اعمل هذا الكود ان شاء الله يفي بالغرض Me.مكان الرقم.SetFocus DoCmd.RunCommand acCmdCopy Me.مكان التثبيت.SetFocus DoCmd.RunCommand acCmdPaste
    1 point
  13. جرب هذا الملف أوقات.xlsx
    1 point
  14. السلام عليكم الرابط لا يعمل ممكن الرابط الصحيح لو سمحت
    1 point
  15. جزاك الله خيرا لكن الملف لايفتح ممكن بعد اذنك اعرف اصدار الاوفيس انا استخدم 2010
    1 point
  16. بارك الله فيك اخي علي و للمزيد أيصاُ هذا الملف ( انا أحببت من خلال الكود ان تطبق الطباعة كاملة ختى اخر صف مهما كان جحم الجدول) Sum Of N Rows.xlsx
    1 point
  17. احسنت استاذ سليم كود ممتاز ولإثراء الموضوع هذا حل اخر بالمعادلات جمع قائمة بعدد (10) صفوف.xlsx
    1 point
  18. جرب هذا الملف من ملفاتي القديمة Smart_Printing.xlsm
    1 point
  19. اسف انا فى العمل الان اصل الى البيت باذن الله واكتب لك الكود عمتا اكتبه لك وان وجدت مشاكل ارسل بها هنا Dim FirstDayInWeek, LastDayInWeek As Variant Dim dtmDate As Date dtmDate = Me.strdate FirstDayInWeek = dtmDate - Weekday(dtmDate, vbUseSystem) + 1 Me.weekfir = FirstDayInWeek LastDayInWeek = dtmDate - Weekday(dtmDate, vbUseSystem) + 7 Me.weekend = LastDayInWeek مربع نص بحقل التاريخ Me.strdate Me.weekfir مربع نص بداية الاسبوع مربع نص نهاية الاسبوع Me.weekend يعمل على الميلادى فقط انت قم بتحويل الميلادى الى هجرى اعتزر منك انا فى العمل عند الذهاب الى البيت ساوافيك بالمزيد ان شاء الله
    1 point
  20. السلام عليكم ورحمة الله الملف بعد اضافة الاكواد شيت درجات.xlsm
    1 point
  21. السلام عليكم ورحمة الله وهذا حل أخي الكريم سليم بعد إذنه وبعد تعديل طفيف على كوده الأول... بن علية حاجي Salim_Abscent.xlsm
    1 point
  22. لك هذا الكود Option Explicit Sub find_abscent() Application.ScreenUpdating = False Dim Sh1 As Worksheet: Set Sh1 = Sheets("الشيت") Dim Sh2 As Worksheet: Set Sh2 = Sheets("abscent") Dim my_rg As Range: Set my_rg = Sh1.Range("c5").CurrentRegion Sh2.Range("TETE_RG").ClearContents Dim i%, k%: k = 1 Dim m%: m = 2 Dim arr(1 To 9) For i = 2 To 18 Step 2 arr(k) = Sh2.Cells(3, i) k = k + 1 Next k = 3 For i = LBound(arr) To UBound(arr) my_rg.AutoFilter k, "غ" k = k + 1 my_rg.Columns(1).SpecialCells(12).Copy _ Sh2.Cells(4, m) m = m + 1 my_rg.Columns(2).SpecialCells(12).Copy _ Sh2.Cells(4, m) m = m + 1 my_rg.AutoFilter Next Erase arr: Set my_rg = Nothing Application.ScreenUpdating = True End Sub الملف مرفق Abscet_Salim.xlsm
    1 point
  23. السلام عليكم ورحمة الله حل بالمعادلات في الملف المرفق... بن علية حاجي استدعاء الغياب.xls
    1 point
  24. السلام عليكم ورحمة الله تعالى وبركاته اخى الكريم قمت ببعض التعديلات على جدول الاصناف فقط قمت بالغاء حقل مسار الصورة وغيرته الى امتداد الصورة الية العمل الجديدة للبرنامج ستكون كالتالى اولا يجب تحديد مسار مجلد الصور الموجود على جوجل درايف لكل مستخدم للبرنامج قمت بتسهيل الموضوع عليك فقط مرة واحدة اختر المسار عن طريق هذا الزر وعند اختيارك المجلد يقوم البرنامج باخذ المسار واسم الكمبيوتر الخاص بك وادراجهم داخل جدول قمت بانشائه عند اختيارك صورة يقوم البرنامج جلب نوع الصورة وادراجها فى جدول الاصناف ثم نقلها الى مجلد الصور برقم الصنف اى انه يتم تسمية الصورة برقم الصنف الاكواد المستخدمة دالة جلب نوع الصورة عند اختيارها Function GetFileTypeFromPath(ByVal strPath As String) As String If Right$(strPath, 1) <> "." And Len(strPath) > 0 Then GetFileTypeFromPath = GetFileTypeFromPath(Left$(strPath, Len(strPath) - 1)) + Right$(strPath, 1) End If End Function داالة جلب اسم الكمبيوتر الحالى للمستخدم Declare Function apiGetUserName Lib "advapi32" Alias "GetUserNameA" (ByVal buffer As String, BufferSize As Long) As Long Declare Function apiGetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal buffer As String, BufferSize As Long) As Long Function GetUserName() As String Dim strName As String Dim lngSize As Long Dim lngRetVal As Long strName = Space(15) lngSize = 15 lngRetVal = apiGetUserName(strName, lngSize) GetUserName = Left$(strName, lngSize - 1) End Function Function GetComputerName() As String Dim strName As String Dim lngSize As Long strName = Space(16) lngSize = 16 If apiGetComputerName(strName, lngSize) Then GetComputerName = Left$(strName, lngSize) Else GetComputerName = vbNullString End If End Function دالة نقل الملفات 'Network Security - Network does not allow reference to the Scripting runtime library (COM Object) ' Using Window 32 API (Kernel 132) to Move file Private Declare Function CopyFileA Lib "kernel32" (ByVal ExistingFileName As String, _ ByVal NewFileName As String, ByVal FailIfExists As Long) As Long Public Function Copy(FileSrc As String, FileDst As String, Optional NoOverWrite As Boolean = True) As Boolean Dim Flag As Long Dim Name As String Name = Right(FileSrc, Len(FileSrc) - InStrRev(FileSrc, "\")) If CopyFileA(FileSrc, FileDst & Name, NoOverWrite) Then Copy = True Else Copy = False End If End Function ويتم تنفيذها بهذا الشكل Dim sedo As Object Dim des, fileto As String Set sedo = CreateObject("Scripting.FileSystemObject") sedo.CopyFile fileto, des, True حيث ان fileto هو الملف المراد نقله يتم تحديد المسار كاملا بما فى ذلك نوع الملف حيث ان des هو المسار المراد نقل الملف اليه ويتم تحديد المسار كاملا ايضا بما فى ذلك نوع الملف هكذا "des = "C:\Users\xmen5\Desktop\New Microsoft Word Document (2).docx و "fileto = "C:\Users\xmen5\Desktop\New Microsoft Word Document (2).docx ويمكن تغير اسم الملف فقط فى متغير des ليتم نقل الملف باسم جديد تم تغيير مصدر بيانات عنصر تحكم الصورة ليتمكن من قراءة مسار الصورة هكذا وهذا كود انشاء مجلد جديد فى مسار محدد لاخونا السائل If Len(Dir(des, vbDirectory)) = 0 Then MkDir Path:=des end if حيث ان des هى مسار المجلد تذكر يا اخى يجب تحديد مسار مجلد الصور اولا ولمرة واحدة لكل مستخدم للبرنامج والان مع المرفق http://www.mediafire.com/file/t6pv4pg7iz9feg6/ACC.rar/file
    1 point
  25. فى البداية نقوم بفتح برنامج الاردوينو ومسح المحتوي الذى بداخلة كله ولصق هذا الكود : // Example_1_Computer MSACCESS_Interfacing // Design By : Karim Adel El-Hosseny // Mobile : 01277877151 int Door=7; // تهيئه متغير يقوم يتعويض رقم المنفذ 7 الى اسم لسهولة البرمجة int value; // تهيئة متغير لتخزين قيمة القراءه من المنفذ التسلسلي void setup () // دالة عامه لتهيئة المنفذ التسلسلي { Serial.begin(9600); // ضبط معدل النقل ويجب ان تتوافق هذه القيمة مع القيمة المضبوطبه بالبرنامج بالاكسس pinMode(Door,OUTPUT); // تهيئة الطرف الخاص بالخرج digitalWrite(Door,LOW); // جعل قيمة الجهد المسلط على الطرف الخاص بالخرج مساوى لصفر فولت } void loop () { // دالة تكرار لا نهائية value = Serial.read(); // تخزين قيمة البيانات المستلمة من المنفذ التسلسلي والمرسلة من الاكسس بالمتغير المحجوز مسبقاً if (value == '1') // يقوم هذا الامر من مراجعة قيمة البيانات المرسلة اذا كانت مساوية للواحد ويتحقق الشرط يقوم بتنفيذ الاوامر التالية { digitalWrite(Door,HIGH); // جعل الالجهد المسلط على الطرف مساوية لاعلى فولت ممكن delay(3000); // الانتظار لمده ثلاث ثواني digitalWrite(Door,LOW); // جعل الجهد المسلط على الطرف مساوية لاقل فولت ممكن } else if (value == '0') {digitalWrite(Door,LOW);} // وفى حالة عدم تحقق الشرط يجعل الجهد المسلط على الطرف لاقل فولت ممكن } ولفهم الكود بشكل اكبر سنقو بشرحة خطوه خطوه فى البداية تعريف للكود والمصمم له : // Example_1_Computer MSACCESS_Interfacing // Design By : Karim Adel El-Hosseny // Mobile : 01277877151 -------------------------------------------------------------------------------------------------------------------------------- int Door=7; int value; وفى هذا الجزء قمنا بحجز سجل ( متغير رقمي ) فى الذاكره المؤقته بالميكروكونترول باسم Door و جعلنا قيمتها 7 و 7 هى رقم الطرف الذى سيوصل عليه البوابة او لمبة الاناره ويكون الرقم مكتوب بجوار الطرف كما بالصورة : وحجز خانة اخري بالمسمي Value لتسجيل بها البيانات المستقبله من طريق السيريال بورد . void setup (){ } وهى دالة محجوزة بالميكروكونترول ويكتب بها اوامر النهيئة الخاصة بالاطراف او الموديلات الداخلية المدمجة معه . Serial.begin(9600); ويقوم هذا الامر بتفعيل وتهئية موديل السيريال بورد المدمج مع الميكروكونترول ويخبره بان معدل نقل البيانات المستخدم هو 9600 كيلو بايت ويجب ان يكون جهاز الكمبيوتر متوافق مع هذا الرقم وايضا البيانات المرسلة من الاكسس كما سنوضحها لاحقاً . pinMode(Door,OUTPUT); طبيعة الطرف ان الاردوينو لكل طرف بها وظيفتين اساسيتان والبعض اكثر من وظيفة فالوظيفه الاولى هى استعمالة كخرج بمعني ان يقوم بتوصيل كهرباء لهذا الطرف او قطع الكهرباء عنه وهذا مفهوم بسيط لتسهيل استيعابه والوظيفة الشانية ان يستخدم كدخل اى ان يقوم بفحصه هل يوجد عليه كهرباء ام لا . اذا فالوظيفة الاولى كخرج والثانية كدخل . ونحن هنا نستخدمة كخرج فنامره عند ارسال قيمة معينه من الاكسس يقوم بالتوصيل واذا انقطعت يتوقف . digitalWrite(Door,LOW); وكما وضحنا فى الامر السابق اننا نستخدمه كخرج فيتحكم هذا الامر فى طبيعة الخرج وقمنا بامره ان يجعل الكهرباء المسطله اقل قيمة كهربيه اى صفر فولت لا لا يقوم بالتوصيل او التشغيل . void loop () { } وهى دالة البرنامج الرئيسى التى اول ما يعمل الميكرو ويقوم بالتهيئة يدخل اليها لتنفيذ التعليمات المرغوبة . ملحوظة هامه : ان الميكروكونترول ليس مرن كالاكسس بمعنى انه يقوم بتنفيذ التعليمات بالترتيب ولا يستطيع ان يقفز الى امر اخر دون المرور على البقية . value = Serial.read(); وهنا نامر الميكرو بتسجيل البيانات المستقبلة فى المتغير المحجوز سلفاً فى الكود . if (value == '1') { وكالمعتاد والمتوقع عن ايجاد دالة الشرط IF كما تعودنا استخدامها فى الاكسس وتختلف فقط بطريقة كتابها كما موضح . وتقوم بفحص حالة المتغير فاذا كانت قميته تساوى واحد صحيح يقوم بتنفيذ الاوامر واذا لم تكن يقوم بتنفيذ التالى وكذلك يمكن استخدام Elseif ونرسل قيمة مثلا 2 فيقوم بفتح بوابة اخري وهكذا . digitalWrite(Door,HIGH); فاذا تحقق الشرط يقوم بجعل قيمة الخرج المسلط على الطرف المحدد سلفاً باعلى قيمة فولت لتشغيل الريلاى لفتح البوابة . delay(3000); وهذه داله تمنيت وجودها فى الاكسس وهى دالة تأخير زمني والرقم 3000 بمعني 3 ثواني فالميكروكونترول لديه قدره لتقسيم الثانية الواحده الى 1000 جزء ويتعامل معها كجزء من الـ1000 digitalWrite(Door,LOW); بعد الانتظار لمدة ثلالث ثواني يقوم بتخفيض الفولت الى صفر لغلق البوابة واذا احببتم زياده الوقت نقوم بزياده ال 3000 else if (value == '0') {digitalWrite(Door,LOW);} وفى حالة عدم تحقق الشرط او عدم وجود قيمة يقوم بابقاء الفولت منخفض للحفاظ على غلق البوابة . وبعد الانتهاء من ادخل الكود نقوم بالضغط على علامه الصح بالاعلى للتأكد من صحه الكود وفى حالة الخطأ سيقوم البرنامج بالتوضيح فى الجزء الذى بالاسف بالاخطاء الموجوده ويجب ان تظهر هذه العبارات التى توضح المساحة المستخدمة من الذاكره الخاصة بالميكرو والرام فاذا ظهرت هذه الرسالة يكون الكود خالى من الاخطا وبامكانك شحن الاردوينو بالبرنامج من هذه العلامة : وهكذا نكون اتممنا برمجه الاردوينو بنجاح . والله الموفق . ونلتقي قريباً .
    1 point
×
×
  • اضف...

Important Information