عرض مشاركة واحدة
قديم 22-10-2009, 09:14 AM  
  مشاركة [ 14 ]
sskk77 sskk77 غير متواجد حالياً
درجة الضيافة
 
تاريخ التسجيل: 01 - 12 - 2005
المشاركات: 63
شكر غيره: 0
تم شكره 0 مرة في 0 مشاركة
معدل تقييم المستوى: 233
sskk77 له تواجد مميز في خط الطيران
sskk77 sskk77 غير متواجد حالياً
درجة الضيافة



مشاهدة ملفه الشخصي
تاريخ التسجيل: 01 - 12 - 2005
المشاركات: 63
شكر غيره: 0
تم شكره 0 مرة في 0 مشاركة
معدل تقييم المستوى: 233
sskk77 له تواجد مميز في خط الطيران
افتراضي رد: مشروع تصميم جهاز تحكم عن بعد للانظمة غير المأهولة

مانوع الاسبيد كنترولر الزى تستخدمة ؟؟

مانوع المايكروكنترولر الذى تجيد التعامل معة ؟

هل عندما صممت الدائرة كانت السيرفوهات ثابتة فى الحركة ام مهتزة ؟
لان معظم الاسبيد كنترولر ماتقبل الاشارة الغير ثابتة وماتشتغل اذا كانت اشارة التحكم لها عرض نبضة اكبر من 1 ملى ثانية عند بداء التشغيل باعتبار ان عصى الثروتيل مرفوعة

الكود التالى هو كود لقيادة 8 سيرفوهات عن طريق المعالج pic16f77a
يستم استقبال القيم عن طريق منفز ار اس 232 للمايكرو
الكود مكتوب بلغة البيك بيزك برو
دا تقريبا اول كود اكتبه متعلق بقيادة السيرفوهات
كود:
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [eng . Mohammad Alamin Ali]                    *
'*  Notice  : Copyright (c) 2008 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 1/23/2008                                         *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************

  define osc 12
  
  include "modedefs.bas"
  
    value var byte
    angle var byte
    d  var byte [16] 
        trisd = $00
  ' INTCON = %00100001
  ' OPTION_REG = %11100000
  
   
  ' TMR0 = 0
   
   '    on interrupt goto ISR
    '   INTCON = %11000000
 main:
     
 serin2 portc.1 , 84 , [WAIT($A6 ,$41), str d\16 ]
    
   
' if d[0] = $C6 then
 
   

  
  portd =  d[9]  

 
 

 'servo1:
 
    
 
if d[1] > 127 then
        angle = d[1] - 128
    high portb.0
     pauseus 1500 + angle*4
    low portb.0
               
    endif
    if d[1] < 128 then
        angle = 127 - d[1]
    high portb.0
     pauseus 1500 - angle * 4
    low portb.0
               
    endif
                   
                   
''''''''''''''''servo2

'servo2:
 if d[2] > 127 then
            angle = d[2] - 128
        high portb.1
         pauseus 1500 + angle*4
        low portb.1
                   
        endif
    if d[2] < 128 then
            angle = 127 - d[2]
        high portb.1
         pauseus 1500 - angle * 4
        low portb.1
    
        endif
''''''''''''''''servo3

'servo3:
  if d[3] > 127 then
            angle = d[3] - 128
        high portb.2
         pauseus 1500 + angle*4
        low portb.2
                   
        endif
    if d[3] < 128 then
            angle = 127 - d[3]
        high portb.2
         pauseus 1500 - angle * 4
        low portb.2
        
        endif
        
''''''''''''''''servo4

'servo4:
  if d[4] > 127 then
            angle = d[4] - 128
        high portb.3
         pauseus 1500 + angle*4
        low portb.3
                   
        endif
    if d[4] < 128 then
            angle = 127 - d[4]
        high portb.3
         pauseus 1500 - angle * 4
        low portb.3
                   
        endif
        
''''''''''''''''servo5
               
'servo5:
 
    
 
    if d[5] > 127 then
            angle = d[5] - 128
        high portb.4
         pauseus 1500 + angle*4
        low portb.4
        
        endif
    if d[5] < 128 then
            angle = 127 - d[5]
        high portb.4
         pauseus 1500 - angle * 4
        low portb.4
    
        endif
 
  ''''''''''''''''servo6
               
'servo6:
 
    
 
    if d[6] > 127 then
            angle = d[6] - 128
        high portb.5
         pauseus 1500 + angle*4
        low portb.5
                   
        endif
    if d[6] < 128 then
            angle = 127 - d[6]
        high portb.5
         pauseus 1500 - angle * 4
        low portb.5
    
        endif
        
        
 
  ''''''''''''''''servo7
               
'servo7:
 
    
 
    if d[7] > 127 then
            angle = d[7] - 128
        high portb.6
         pauseus 1500 + angle*4
        low portb.6
        
        endif
    if d[7] < 128 then
            angle = 127 - d[7]
        high portb.6
         pauseus 1500 - angle * 4
        low portb.6
                   
        endif
        
  ''''''''''''''''servo8
               
'servo8:
 
    
 
    if d[8] > 127 then
            angle = d[8] - 128
        high portb.7
         pauseus 1500 + angle*4
        low portb.7
    
        endif
    if d[8] < 128 then
            angle = 127 - d[8]
        high portb.7
         pauseus 1500 - angle * 4
        low portb.7

        endif
        
        
         goto main
الدائرة الالكترونية موجودة فى مدونتى
هنا

https://ec23.blogspot.com/2009/01/blog-post.html


ممكن تقولوا لى ايه الحل فى مشكلة رفع الصور فى المنتدى

مشكور أخي الغالي
جزاك الله خيراً ووفقك لكل خير
افضل واجيد التعامل PIC عامة
لكن ممكن الكود بالاسمبلي ان سمحت
واذا سمحت ممكن شرح للاشارة الخاصة بذلك هل هي مجرد نبضات 1 ميكرو فقط دون تمهيد للاقلاع بالمحرك
والواحد ميكرو هل هو طول النبضة ON ام هو ON مع OFF
وهل يوجد نسبة خطأ مسموحة
من هذه الصورة ممكن توضح كم يجب ان يكون الزمن من A-B ومن A-C بالنسبة للرسم الأول الذي يمثل السرعة الدنيا والثاني الذي يمثل السرعة القصوى

الف شكر مرة أخرى
sskk77 غير متواجد حالياً