مانوع الاسبيد كنترولر الزى تستخدمة ؟؟
مانوع المايكروكنترولر الذى تجيد التعامل معة ؟
هل عندما صممت الدائرة كانت السيرفوهات ثابتة فى الحركة ام مهتزة ؟
لان معظم الاسبيد كنترولر ماتقبل الاشارة الغير ثابتة وماتشتغل اذا كانت اشارة التحكم لها عرض نبضة اكبر من 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 بالنسبة للرسم الأول الذي يمثل السرعة الدنيا والثاني الذي يمثل السرعة القصوى
الف شكر مرة أخرى