ايران ويج

نسخه‌ی کامل: ربات آتش نشان ÷
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام به تمام برو بکس گل ایرانویج
دوستان من مداری واسه روباتم طراحی کردم که از طریق یه ریموت کنترل هدایت میشه اما بعضی اوقات در حین اجرای یک عملکرد در همان حالت بماند به طور مثال زمانی که رله مربوط به پمپ آب رو فعال میکنم پس از فعال شدن در همان حالت باقی می ماند و به حالت قبلی خود باز نمی گردد.
و حتی در مورد موتور پله ای هم به همین صورت می باشد و سایر موتور ها روبات
اینم عکس مربوط به مدار فرستند و گیرنده (HMT-HMR-433MHZ)
برنامه گیرنده
کد php:
$regfile "m8def.dat"
$crystal 8000000
$baud 
9600
'----------------------------------------------------------------------------------------
Const On = 1
Const Off = 0
'
------------------------------------Stepper Motor------------------------------------
Config Portc.0 Output
Config Portc.1 
Output
Config Portc.2 
Output
Config Portc.3 
Output
A Alias Portc.3
B Alias Portc.2
C Alias Portc.0
D Alias Portc.1
'-------------------------------------Motors-------------------------------------------
Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.2 = Output
Config Portb.3 = Output
Config Portb.4 = Output
Config Portb.5 = Output
In1 Alias Portb.5
In2 Alias Portb.4
In3 Alias Portb.3
In4 Alias Portb.0
Ena Alias Portb.2
Enb Alias Portb.1
'
---------------------------------------Water------------------------------------------
Config Portd.2 Output
Water Alias Portd.2
'-------------------------------------Functions-----------------------------------------
Declare Sub Forward
Declare Sub Lefts
Declare Sub Rights
Declare Sub Backward
Declare Sub Stepper_cw
Declare Sub Stepper_ccw
Declare Sub Stops
'
---------------------------------------------------------------------------------------
Dim Inputs As String 5
Dim Code 
As String 5
Dim 
Final As String 5
Dim Inputs_out 
As Byte
Dim Result 
As Byte
'------------------------------------------Main-----------------------------------------
Lcd "Data="
Do
Input Inputs
Locate 1 , 1
Lcd Inputs
Code = Mid(inputs , 2 , 4)
Locate 2 , 1
Inputs_out = Val(code)
Select Case Inputs_out:
Case 103:
Call Forward
Case 104:
Call Rights
Case 105
Call Lefts
Case 106:
Call Backward
Case 107:
Call Stepper_cw
Case 108:
Waitms 100
Toggle Portd.2
Case 109:
Call Stepper_ccw
Case Else
Call Stops
End Select

Loop
'
----------------------------------------------------------------------------------------
Sub Forward
Ena 
On Enb On In1 On In2 Off In3 On In4 Off
End Sub

Sub Lefts
Ena 
Off Enb On In1 On In2 Off In3 Off In4 Off
End Sub

Sub Rights
Ena 
On Enb Off In1 Off In2 Off In3 On In4 Off
End Sub

Sub Backward
Ena 
On Enb On In1 Off In2 On In3 Off In4 On
End Sub

Sub Stepper_cw
Waitms 100
Waitms 100
Waitms 100
Waitms 100
End Sub

Sub Stepper_ccw
Waitms 100
Waitms 100
Waitms 100
Waitms 100
End Sub

Sub Stops
0
Ena 
Off Enb Off In1 Off In2 Off In3 Off In4 Off
End Sub
'---------------------------------------------------------------------------------------- 

برنامه فرستنده :
کد php:
$regfile "m8def.dat"
$crystal 8000000
$baud 
9600
'----------------------------------------------------------------------------------------
Config Pinb.0 = Input
Config Pinb.1 = Input
Config Pinb.2 = Input
Config Pinb.3 = Input
Config Pinb.4 = Input
Config Pinb.5 = Input
Config Pind.7 = Input
'
----------------------------------------------------------------------------------------
Forward Alias Pinb.3
Rights Alias Pinb.4
Lefts Alias Pinb.1
Backward Alias Pinb.2
Water Alias Pinb.0
Step_cw Alias Pinb.5
Step_ccw Alias Pind.7
'----------------------------------------------------------------------------------------
Enable Interrupts
'
----------------------------------------------------------------------------------------
Dim Order As String 5
'----------------------------------------------------------------------------------------
Cursor Off

Do
Locate 1 , 1
Lcd "POS : " ; "        "
Locate 2 , 1
Lcd "               "
Order = "   "
While Forward = 0
Order = "103"
Print Order
Locate 1 , 6
Lcd "Forward"
Wend
While Rights = 0
Order = "104"
Print Order
Locate 1 , 6
Lcd "Right"
Wend
While Lefts = 0
Order = "105"
Print Order
Locate 1 , 6
Lcd "Left"
Wend
While Backward = 0
Order = "106"
Print Order
Locate 1 , 6
Lcd "BackWard"
Wend
While Step_cw = 0
Order = "107"
Print Order
Locate 2 , 1
Lcd "Stepper CW"
Wend
While Water = 0
Order = "108"
Print Order
Locate 2 , 1
Lcd "Water Activated"
Wend
While Step_ccw = 0
Order = "109"
Print Order
Locate 2 , 1
Lcd "Stepper CCW"
Wend
Loop 
[attachment=8730]
[attachment=8729]
من زیاد به برنامه دقت نکردم ولی برای قطع و وصل پمپ آب باید در فرستنده دوتا متغیر رو در زمان های دلخواه ارسال کنی(یکی برای قطع پمپ و دیگری برای وصل)
و در گیرنده هر دوتا متغیر دریافت بشه و در ازای دریافت هر متغیر ، دستور مربوط به قطع یا وصل به خروجی میکرو و ورودی رله ارسال بشه.
الان مشکل اینه که مدار به شدت نویز میگیره و در همون حالت باقی می مونه ..
این میکرو ها خیلی حساسن
به رله یه دیود بزن و ورودی تغذیه رو هم خازن بزن 100 نانو با 330 میکرو فاراد یدونم خازن 100 نانو درست کنار ورودی تغذیه آیسی بزن

$baud چیه ؟
شرمنده اگه اینجا پرسیدم
(۰۴-مهر-۱۳۹۲, ۲۱:۲۱:۵۴)msjia نوشته است: [ -> ]$baud چیه ؟
شرمنده اگه اینجا پرسیدم

$baud یا باود ریت،
نرخ بیت ارسالی و دریافتی هستش

برای اینکه بتونید بین فرستنده و گیرنده ارتباط برقرار کنید
باید این نرخ باود رو پیکربندی کنید
و حتما باید این نرخ در فرستنده و گیرنده برابر باشن
تا بشه ارتباط برقرار کرد


خوش باشید.