ايران ويج

نسخه‌ی کامل: کمک فوری درباره HM-T و HM-R
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3 4 5
(۰۱-شهریور-۱۳۹۱, ۲۱:۳۱:۳۶)h.unique نوشته است: [ -> ]یک باتری 12ولت 4.5آمپر بگیر.و واسه تغذیه رباتت هم باتریت رو جدا بگیر که در هنگامی که موتور ها کار میکنن مدارتو نویز نگیره.و واسه سروو هات هم یک مدار تغذیه جدا درست کن چون نویز وحشتناکی رو مدار میندازه.

با تشکر تصمیم داشتم تغذیه سرو موتور ها و چرخ ها رو یکی بدم حساب کردم جریانی که مدار میکشه حدوده 800 mA البته در بیشترین حالت... (خیلی جریان ها رو دسته بالا زدم) و تصمیم داشتم باطری های 2400 بذارم که حجم کمترباشه و جای زیادی نگیره... حج=م باطری 4500 خیلی زیاد نیست برای ربات من!!؟

اینم برنامه کامل پروژه من:
فرستده
کد:
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 4800
$sim
'---------------------------------------------
Config Portc = Input
Config Portb = Output


Dim Cr As String * 1
Dim Cl As String * 1
Dim Cw As String * 1
Dim C(3) As String * 1
Dim Y As String * 3
Dim A As Byte , D As Word , E As Byte
Dim R As Byte , L As Byte , P As Byte
Dim B(3) As Byte
'---------------------------------------------
Set Portb.1
Reset Portb.2
'---------------------------------------------
Main:
Do
'---------------------------------------------
R = Pinc And &B00000011
L = Pinc And &B00001100
P = Pinc And &B00110000
Shift L , Right , 2
Shift P , Right , 4

If R = 1 Then Cr = "U"
If R = 2 Then Cr = "D"
If R = 3 Or R = 0 Then Cr = "X"

If L = 1 Then Cl = "U"
If L = 2 Then Cl = "D"
If L = 3 Or L = 0 Then Cl = "X"

If P = 1 Then Cw = "U"
If P = 2 Then Cw = "D"
If P = 3 Or P = 0 Then Cw = "X"

'---------------------------------------------
B(1) = Pinb And &B00000011
B(2) = Pinb And &B00001100
B(3) = Pinb And &B00110000
Shift B(2) , Right , 2
Shift B(3) , Right , 4

If B(1) = 1 Then C(1) = "U"
If B(1) = 2 Then C(1) = "D"
If B(1) = 3 Or B(1) = 0 Then C(1) = "X"

If B(2) = 1 Then C(2) = "U"
If B(2) = 2 Then C(2) = "D"
If B(2) = 3 Or B(2) = 0 Then C(2) = "X"

If B(3) = 1 Then C(3) = "U"
If B(3) = 2 Then C(3) = "D"
If B(3) = 3 Or B(3) = 0 Then C(3) = "X"

'---------------------------------------------
For A = 0 To 2
   Print "H" ; Cr ; Cl ; Cw ; Spc(5) ; Chr(10)
   Waitms 20
Next A

For A = 0 To 2
   Print "B" ; C(1) ; C(2) ; C(3) ; Spc(5) ; Chr(10)
   Waitms 20
Next A
                                '
Loop
End
گیرنده:
کد:
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 4800
'$sim

Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 _
       , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
Config Lcd = 16 * 2
Cursor Off

Config Servos = 2 , Servo1 = Portb.6 , Servo2 = Portb.7 , Reload = 15

Config Timer1 = Pwm , Prescale = 8 , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down

On Urxc Rec_isr
Enable Urxc

Enable Interrupts
Enable Timer1
Start Timer1

'---------------------------------------------
Config Pind.7 = Output , Pind.6 = Output , Pind.5 = Output
Config Portb = Output

Dim S As String * 7
Dim Sr As String * 1
Dim Sl As String * 1
Dim Spw As String * 1
Dim Ss(3) As String * 1
Dim A As Byte , B As Bit , D As Byte , P As Word
Dim Serv(2) As Byte , N(3) As Byte , M(3) As Byte
P = 23
'---------------------------------------------
Main:
'Home : Lcd "SMHHA" : Wait 3 : Cls
Do
If B = 1 Then
   Disable Urxc

'---------------------------------------------
   If Left(s , 1) = "H" Then
      Sr = Mid(s , 3 )
      Sl = Mid(s , 4)
      Spw = Mid(s , 5)
      Home : Lcd Sr ; Sl ; Spw ; "   " ; S
      If Sr = "X" Then : Reset Portb.5 : Reset Portb.0 : End If
      If Sr = "D" Then : Reset Portb.5 : Set Portb.0 : End If
      If Sr = "U" Then : Set Portb.5 : Reset Portb.0 : End If

      If Sl = "X" Then : Reset Portb.3 : Reset Portb.4 : End If
      If Sl = "D" Then : Reset Portb.3 : Set Portb.4 : End If
      If Sl = "U" Then : Set Portb.3 : Reset Portb.4 : End If

      If Spw = "D" Then : P = P - 200 : If P > 1023 Then P = 23 : End If
      If Spw = "U" Then : P = P + 200 : If P > 1023 Then P = 1023 : End If
      Pwm1a = P : Pwm1b = P
   End If

'---------------------------------------------
   If Left(s , 1) = "B" Then
      Ss(1) = Mid(s , 3 )
      Ss(2) = Mid(s , 4)
      Ss(3) = Mid(s , 5)
      Home : Lcd Ss(1) ; Ss(2) ; Ss(3) ; "   " ; S

      If Ss(1) = "X" Then : M(1) = 0 : N(1) = 0 : End If
      If Ss(1) = "D" Then
         Incr N(1)
         If N(1) > 3 Then
            Decr Serv(1)
            If Serv(1) > 100 Then Serv(1) = 0
         End If
      End If
      If Ss(1) = "U" Then
         Incr M(1)
         If M(1) > 3 Then
            Incr Serv(1)
            If Serv(1) > 100 Then Serv(1) = 100
         End If
      End If

      If Ss(2) = "X" Then : M(2) = 0 : N(2) = 0 : End If
      If Ss(2) = "D" Then
         Incr N(2)
         If N(2) > 3 Then
            Decr Serv(2)
            If Serv(2) > 100 Then Serv(2) = 0
         End If
      End If
      If Ss(2) = "U" Then
         Incr M(2)
         If M(2) > 3 Then
            Decr Serv(2)
            If Serv(2) > 100 Then Serv(2) = 100
         End If
      End If
   End If

   Servo(1) = Serv(1)
   Servo(2) = Serv(2)

'---------------------------------------------
   Home L : Lcd P ; "  " ; B
   Reset B
   S = ""
   Enable Urxc
End If
Servo(1) = Serv(1)
Servo(2) = Serv(2)
Loop
End

Rec_isr:
Disable Urxc
D = Udr
If Chr(d) = "H" Or Chr(d) = "B" Then:
Mid(s , 1) = Chr(d)
For A = 2 To 5
   D = Udr
   Mid(s , A) = Chr(d)
   Locate 2 , 10 : Lcd A
Next A
Locate 2 , 12 : Lcd Len(s)
If Len(s) = 5 Then Set B
Set B
End If
Enable Urxc
Return
البته هنوز تست نهایی نشده امکان داره اشکالات ریزی درش باشه... Wink
اگر اشکالی بود که بگو
ولی اینی که به سورت مداوم مقدار هارو میفرستی خیلی از سرعت میکرو کم میکنه و شاید گیرنده اصلا به قسمت های بعد دیگه نرسه حالا حتما چیز های دیگه ای هم بهش اضافه می کنی دیگه
(۰۲-شهریور-۱۳۹۱, ۱۹:۴۶:۲۰)behzady نوشته است: [ -> ]اگر اشکالی بود که بگو
ولی اینی که به سورت مداوم مقدار هارو میفرستی خیلی از سرعت میکرو کم میکنه و شاید گیرنده اصلا به قسمت های بعد دیگه نرسه حالا حتما چیز های دیگه ای هم بهش اضافه می کنی دیگه

چون ارتباط به صورت بیسیمه اگر هم به صورت مداوم ارسال نکنم گیرنده خودش یه سری داده دریافت می کنه... بعدشم زمانی که تو لوپ میره اینتراپت غیر فعال کردم دیگه... فک نکنم مشکلی تو دریافت باشه... بازم خیلی ممنون از کمکتون... اگه مشکلی داشتم مزاحمتون میشم...
من همه ی برنامه هایتو نخوندم ولی از همون اول یک مشکل بود.
تو فرستنده
کد:
$sim
رو رم نکردی.
ولی اگه میتونی همون باتری که گفتم رو بزار و مدار سرووتو هم هتما از مدار اصلی جدا کن.
(۰۳-شهریور-۱۳۹۱, ۱۳:۵۶:۱۲)h.unique نوشته است: [ -> ]من همه ی برنامه هایتو نخوندم ولی از همون اول یک مشکل بود.
تو فرستنده
کد:
$sim
رو رم نکردی.
ولی اگه میتونی همون باتری که گفتم رو بزار و مدار سرووتو هم هتما از مدار اصلی جدا کن.

$sim رو واسه سیمولیشن گذاشتم موقع پروگرام غیر فعال میکنم... چشم با تشکر...
سلام دوستان
در خواست راهنمایی برای دریافت اطلاعات توسط HM-TR
من 2 تا HM-TR دارم که از یکیش به عنوان فرستنده و از دیگری به عنوان گیرنده استفاده میکنم.

وقتی می فرستم اون HM-TR که سمت فرستندست چراغ قرمز رنگش چشمک میزنه(یعنی میفرسته)
ولی گیرنده که اونم یه HM-TR هستش چراغ سبزش روشن نمیشه...

نمیدونم مشکل از کجاست.

مدل ماژول: HM-TR REV:1.1
اتصالات هم کاملاً درسته
یعنی میتونه از فرکانسش باشه؟(با اینکه من فرکانس را تغییر ندادم.)
در ضمن بدون آنتن دارم استفاده میکنم ولی خوب فاصله فرستنده گیرنده زیر 30 سانتیمتره.
مشکل انتنت.
(۰۹-اسفند-۱۳۹۲, ۱۴:۰۴:۳۳)akbar8 نوشته است: [ -> ]مشکل انتنت.

akbar8 عزیز من قبلاً با همین شرایط آنتنی این رو راه انداختم ولی الان نمی‌دونم چرا جواب نمیده...
(۱۰-اسفند-۱۳۹۲, ۰۰:۰۴:۱۵)GoldenFishID نوشته است: [ -> ]
(۰۹-اسفند-۱۳۹۲, ۱۴:۰۴:۳۳)akbar8 نوشته است: [ -> ]مشکل انتنت.

akbar8 عزیز من قبلاً با همین شرایط آنتنی این رو راه انداختم ولی الان نمی‌دونم چرا جواب نمیده...

سلام
طبق تجربه حتماً باید بیشتر از یک متر فاصله بین دوتا باشه و حتماً از آنتن هم استفاده کنید.

با این حال باید بیشتر توضیح بدین اینکه کریستال خارجیتون چنده و همینطور کدتون رو بزارید تا بررسی بشه.
(۱۰-اسفند-۱۳۹۲, ۰۹:۳۲:۱۵)Ambassador نوشته است: [ -> ]
(۱۰-اسفند-۱۳۹۲, ۰۰:۰۴:۱۵)GoldenFishID نوشته است: [ -> ]
(۰۹-اسفند-۱۳۹۲, ۱۴:۰۴:۳۳)akbar8 نوشته است: [ -> ]مشکل انتنت.

akbar8 عزیز من قبلاً با همین شرایط آنتنی این رو راه انداختم ولی الان نمی‌دونم چرا جواب نمیده...

سلام
طبق تجربه حتماً باید بیشتر از یک متر فاصله بین دوتا باشه و حتماً از آنتن هم استفاده کنید.

با این حال باید بیشتر توضیح بدین اینکه کریستال خارجیتون چنده و همینطور کدتون رو بزارید تا بررسی بشه.

سلام
با تشکر از پاسختون
من فکر میکنم اصلاً به کریستال ربطی نداره چون چراغ قرمز چشمک میزنه(یعنی ارسال اطلاعات) ولی در سمت گیرنده به فرض اگر برنامه ای هم نوشته نباشیم باید چراغ سبز اون گیرنده روشن بشه دیگه که این اتفاق نمی افته....
من سه تا احتمال میدم.
1. آنتنت. انتن نداری یه تیکه سیم وصل کن نتیجه اش ببین. یام انگشت نزدیک انتن بچسبون شاید جواب داد.
2. فرکانس اما گفی عوض نکردی.
3. ماژولت یه وقتی rs232 نیس؟ ای سی max 232 روی ماژولت هس؟؟
صفحه‌ها: 1 2 3 4 5