ايران ويج

نسخه‌ی کامل: گیرنده فرستنده hmt-hmr
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3 4 5
(۱۸-فروردین-۱۳۹۲, ۱۹:۳۵:۵۰)live_1389 نوشته است: [ -> ]اگه میگین با سیم درست کار می کنه خب مشکل از ماژولاست، یا درست بسته نشدن و یا اینکه سالم نیستن...
با سه تا ماؤول امتحان کردم
کار نمیکند
اگر شما لطف کنید همون برنامه کمک من کنید که لازم دارم با سیم کار کنه دوباره ماؤول میخرم
مطمئنید که فرکانس کاری ماژولهاتون یکی هستش؟

همچنین مقدار باوود های برنامه ...

برای میکرو که فرکانسهای داخلیشو دستکاری نکردین (از قسمت فیوز بیتها) ؟
(۱۹-فروردین-۱۳۹۲, ۱۷:۱۴:۴۷)رسول نوشته است: [ -> ]مطمئنید که فرکانس کاری ماژولهاتون یکی هستش؟

همچنین مقدار باوود های برنامه ...

برای میکرو که فرکانسهای داخلیشو دستکاری نکردین (از قسمت فیوز بیتها) ؟
ممنون
فیوز بیت ها تنظیم بوده برای کریستال خارجی
درست شد
حالا نیاز به همت برای برنامه کنترل دارم
ولا بیکار بودم گفتم یه چیزی بنویسم شاید به کارتون اومدBiggrin
فرستنده:
کد php:
$regfile "m16def.dat"
$crystal 8000000
$baud 
9600
Config Portb 
Input
Main
:
Dim A As Byte Ch As Byte
Dim S 
As Byte
For 1 To 25
Print &H55
Next A
Do
If 
Pinb.0 1 Then
Ch 
1
      
Elseif Pinb.1 1 Then
      Ch 
2
      
Elseif Pinb.2 1 Then
      Ch 
3
Elseif Pinb.3 1 Then
Ch 
4
Else
Ch 0
End 
If
Select Case Ch
   
Case 1
   S 
1
   
For 1 To 15
   Printbin S
   Next A
      
Case 2
      S 
2
      
For 1 To 15
      Printbin S
      Next A
         
Case 3
         
For 1 To 15
         S 
3
         Printbin S
         Next A
         
Print S
            
Case 4
            s
=4
            
For 1 To 15
            Printbin S
            Next A
End Select
Loop
End                                                         
'end program 
گیرنده:
کد php:
$regfile "m16def.dat"
$crystal 8000000
$baud 
9600
Config Portb 
Output
Dim S 
As Byte
Main
:
Do
Inputbin S
Select 
Case S
Case 1:
Set Pinb.0
Inputbin S
Case 2:
Set Pinb.1
Inputbin S
Case 3:
Set Pinb.2
Inputbin S
Case 4:
Set Pinb.3
Inputbin S
End Select

Loop
End 
تو پروتئوس که جواب داد احتمالا باید با ماژولام جواب بده
البته اگه از اینتراپت استفاده کنید سرعتش یه نمور بیشتر میشه این یکم لگش برطرف میشه
داداشی بیا اینم برنامه تست شده.
امیدوارم بتونه کمکت کنه.

برنامه فرستنده :
کد:
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600

Config Portb = Input


Do

If Pinb.0 = 1 Then
Bitwait Pinb.0 , Reset
Printbin 15
Waitms 50
End If

If Pinb.2 = 1 Then
Bitwait Pinb.2 , Reset
Printbin 25
Waitms 50
End If

If Pinb.4 = 1 Then
Bitwait Pinb.4 , Reset
Printbin 35
Waitms 50
End If

If Pinb.1 = 1 Then
Bitwait Pinb.1 , Reset
Printbin 45
Waitms 50
End If

If Pinb.3 = 1 Then
Bitwait Pinb.3 , Reset
Printbin 55
Waitms 50
End If

If Pinb.5 = 1 Then
Bitwait Pinb.5 , Reset
Printbin 65
Waitms 50
End If

Loop

برنامه گیرنده :
کد:
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600

Config Portb = Output

Dim A As Byte

Enable Interrupts
Enable Urxc

On Urxc Uart

Do

Select Case A:

Case 15:
A = 0
Portb.0 = 1

Case 25:
A = 0
Portb.2 = 1

Case 35:
A = 0
Portb.4 = 1

Case 45:
A = 0
Portb.0 = 0

Case 55:
A = 0
Portb.2 = 0

Case 65:
A = 0
Portb.4 = 0
End Select

Loop

Uart:
A = Waitkey()
Return

شبیه ساز و سورس ها پیوست شده اند.
سلام

ای وای دوستان به دادم برسید،‌قبلاً با یه همچین کدی خوب جواب گرفته بودم، اما الان...

گیرنده همینطور برا خودش کد میگیره و ال ای دی رو روشن میکنه حتی اگه کدی براش نفرستم، انگار که دارم میفرستم. مشکلش چیه بنظرتون؟
یک فرستنده گیرنده دو کانال می خوام درست کنم.
فرستنده:
کد:
$regfile = "m8def.dat"
$crystal = 1000000
$baud = 9600
Dim C1 As Byte
Dim A As Integer
Config Portb.0 = Output
Config Portb.2 = Input
Config Portb.1 = Input

Main:
Do
  If Pinb.1 = 1 Then Goto Chan1
   If Pinb.2 = 1 Then Goto Chan2
Loop
Chan1:
C1 = 123
For A = 1 To 5
  Printbin C1
  Waitms 20
Next A
Set Portb.0
Waitms 100
Reset Portb.0
Waitms 100
Goto Main

Chan2:
C1 = 213
For A = 1 To 5
  Printbin C1
  Waitms 20
Next A
Set Portb.0
Waitms 100
Reset Portb.0
Waitms 100
Goto Main
End
                                                 'end program
گیرنده:
کد:
$regfile = "m8def.dat"
$crystal = 1000000
$baud = 9600
Dim C1 As Byte
Config Portb.3 = Output
Config Portb.2 = Output
Config Portb.0 = Output
Config Portd.7 = Output

On Urxc In1
Enable Urxc
Enable Interrupts
Main:
Do
  If C1 = 123 Then Goto Chan1

  If C1 = 213 Then Goto Chan2

Loop
Chan1:
Set Portb.0
Set Portb.2
Waitms 200
Reset Portb.0
Reset Portb.2
Waitms 200
C1 = 0
Goto Main
Chan2:
Set Portd.7
Set Portb.3
Waitms 200
Reset Portd.7
Reset Portb.3
Waitms 200
C1 = 0
Goto Main

End
In1:
Inputbin C1

Return

                                        'end program

اون کد حسین جان هم تست کردم اما باز با اینکه با فرستنده چیزی براش نفرستادم گیرنده یه کد گرفت و ال ای دی روشن شد! 3 ساعتی هست درگیرشم، دیگه دارم Confused
ممنون.
این کلیپ کوتاه نشون میده که ...
[attachment=9830]

یه چیزی یادم رفت بگم، داخل کلیپ فقط یکی از گیرنده هاست، اون یکی هم همینطوره، یعنی برا خودش کد میگیره و روشن خاموش میشه.
سلام

دوستان کسی نظری نداره که چرا مدار گیرنده با اینکه فرستنده ایی وجود نداره اما این قسمت از کد رو انجام میده، گفتم درصورتی بیاد تواین قسمت که کد درست رو بگیره اما فرستنده ای نیست که کد رو بفرسته پس چرا ... ؟

مگه نویز چقدر میتونه تاثیر بزاره؟ فکر نکنم که نویزی وجود داشته باشه!
کد:
Chan1:
Set Portb.0
Set Portb.2
Waitms 200
Reset Portb.0
Reset Portb.2
Waitms 200
C1 = 0
Goto Main
سلام
خب کچل شدم و هنوز به نتیجه نرسیدم :-)

در حال حاضر مشکل من فقط با گیرندهاس که دارن الکی برا خودشون کد می گیرن و اون ال ای دی و رله رو فعال میکنن. البته شبیه سازی درسته اما در عمل...

[attachment=9899]

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