ايران ويج

نسخه‌ی کامل: کنترل مادون قرمز با PT2262
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3 4 5 6
آره ...
ممنون
اینم درست شد:
کد php:
$regfile "m8def.dat" $crystal 4000000

Ddrd 
255 Ddrc 255

Config Rc5 
Pinb.0 Enable Interrupts

Dim Address 
As Word Command As Word

Do

   
Getrc5(address Command)

   If 
Address 7 Then :

      If 
Command 0 Then :
         
Portd Portc 0
         Waitms 100
       Portd 
Portc 0

      
Elseif Command 1 Then :
         
Portd Portc 0
         Waitms 100
      Portd 
Portc 0

      
Elseif Command 2 Then :
         
Portd Portc 0
          Waitms 100
      Portd 
Portc 0

      
Elseif Command 3 Then :
         
Portd Portc 0
         Waitms 100
      Portd 
Portc 0

      
Elseif Command 4 Then :
         
Portd 16 Portc 0
         Waitms 100
      Portd 
Portc 0

      
Elseif Command 5 Then :
         
Portd 32 Portc 0
         Waitms 100
      Portd 
Portc 0

      
Elseif Command 6 Then :
         
Portd 64 Portc 0
         Waitms 100
      Portd 
Portc 0

      
Elseif Command 7 Then :
         
Portd 128 Portc 0
         Waitms 100
        Portd 
Portc 0

      
Elseif Command 8 Then :
         
Portd Portc 1
         Waitms 100
        Portd 
Portc 0

      
Elseif Command 9 Then :
         
Portd Portc 2
         Waitms 100
        Portd 
Portc 0

      End 
If

   
End If


Loop
End 

کلا مشکلاتم درباره فرستنده وگیرنده حل شد...
خدا اجرت بده داداش علی ClapClapClap



اون قضیه مصرف باطری هم راست میگی اول دیدم خیلی زیاد مصرف میکنه ویه باطری 9 ولتی رو خالی کرد بعدش یه کلید گذاشتم که فقط وقتی ازش کار میکشم باطریشو وصل میکنم Wink

درمورد power-down در حالت sleep هم اون مقاله را دیدم اما فرستندش اسمبلی بود وزیاد ازش سر در نیاوردم Amaze

فعلا مشکلاتم حل شده اما باید در یک موقع مناسب وقفه رو هم یاد بگیرم Smile

راستی واسه همین فرستنده بیسکام خودمون برنامه وقفه میشه گذاشت؟؟
خیلیه یا!!!!

بازم سپاسگذارم از لطفتان 015
مهندس خوب شما نمی خواد تو برنامه اسبملی اون پروژه کاری بکنی !
فقط فرستنده رو درست کن و ببین چی دیتایی دریافت می کنی !!!


آره میشه !
واسه همین هم میشه وقفه گذاشت ولی بازم به تغذیه 5 نیاز داره !!! ( آخه اون 1.8 بودش )
من برنامه گیرنده را به شکل زیر تغییر دادم:

کد php:
$regfile "m8def.dat" $crystal 4000000

Ddrd 
255 Ddrc 255

Config Rc5 
Pinb.0 Enable Interrupts

Dim Address 
As Word Command As Word

Do

   
Getrc5(address Command)

   If 
Address 7 Then :

      If 
Command 0 Then :
         
Portd Portc 0
         Waitms 100
       Portd 
Portc 0

      
Elseif Command 1 Then :
         
Portd Portc 0
         Waitms 100
      Portd 
Portc 0

      
Elseif Command 2 Then :
         
Portd Portc 0
          Waitms 100
      Portd 
Portc 0

      
Elseif Command 3 Then :
         
Portd Portc 0
         Waitms 100
      Portd 
Portc 0

      
Elseif Command 4 Then :
         
Toggle Portd.4

      
Elseif Command 5 Then :
         
Portd 32 Portc 0
         Waitms 100
      Portd 
Portc 0

      
Elseif Command 6 Then :
         
Portd 64 Portc 0
         Waitms 100
      Portd 
Portc 0

      
Elseif Command 7 Then :
         
Portd 128 Portc 0
         Waitms 100
        Portd 
Portc 0

      
Elseif Command 8 Then :
         
Portd Portc 1
         Waitms 100
        Portd 
Portc 0

      
Elseif Command 9 Then :
         
Portd Portc 2
         Waitms 100
          Portd 
Portc 0



      End 
If

   
End If


Loop
End 

یعنی اینو اضافه کردم :

کد php:
Elseif Command 4 Then :
         
Toggle Portd.4 

یعنی می خواهم که فقط یکی از پینها(d.4 ) بصورت تاگل(0 و1) کار کنه وبقیه همون حالت لحظه ای رو داشته باشن
این برنامه ارور هم نداد اجرا هم می کنه ولی وقتی یکی از لحظه ای هارو بکار میندازم او تاگله خاموش میشه یعنی می پره ...
اشکالش چیه؟؟؟؟؟؟؟
مهندس دقت کن !

وقتی یه کلید دیگه فشار داده میشه همه خروجی ها رو صفر می کنه !

اون پایه خروجی تاگل مورد نظرت رو یه پورت دیگه انتخاب کن !!
من یکمی قاطی کردم........
می خواستم پورت B را براش انتخاب کنم اما ...
برای مادون قرمز که b.0 رو انتخاب کردیم
چیکار کنم ارور میده؟؟؟؟؟
مهندس فکر کن !

کد php:
$regfile "m8def.dat" $crystal 4000000

Ddrd 
255 Ddrc 255 Ddrb 2

Config Rc5 
Pinb.0 Enable Interrupts

Dim Address 
As Word Command As Word

Do

   
Getrc5(address Command)

   If 
Address 7 Then :

      If 
Command 0 Then :
         
Portd Portc 0
         Waitms 100
       Portd 
Portc 0

      
Elseif Command 1 Then :
         
Portd Portc 0
         Waitms 100
      Portd 
Portc 0

      
Elseif Command 2 Then :
         
Portd Portc 0
          Waitms 100
      Portd 
Portc 0

      
Elseif Command 3 Then :
         
Portd Portc 0
         Waitms 100
      Portd 
Portc 0

      
Elseif Command 4 Then :
         
Toggle Portb.1

      
Elseif Command 5 Then :
         
Portd 32 Portc 0
         Waitms 100
      Portd 
Portc 0

      
Elseif Command 6 Then :
         
Portd 64 Portc 0
         Waitms 100
      Portd 
Portc 0

      
Elseif Command 7 Then :
         
Portd 128 Portc 0
         Waitms 100
        Portd 
Portc 0

      
Elseif Command 8 Then :
         
Portd Portc 1
         Waitms 100
        Portd 
Portc 0

      
Elseif Command 9 Then :
         
Portd Portc 2
         Waitms 100
          Portd 
Portc 0

      End 
If

   
End If

Loop
End 
من این برنامه رو روی یک تلویزیون بدون کنترل قدیمی اجرا کردم وبخوبی هم جواب گرفتم
اینم عکسهایی از تلویزیون:

[تصویر:  1273580748.jpg]

[تصویر:  1273560689.jpg]

[تصویر:  1273576995.jpg]

عکس کنترلشم قبلا گذاشته بودم ...


(۱۹-اردیبهشت-۱۳۸۹, ۱۸:۱۴:۵۷)t3r!p3000 نوشته است: [ -> ]آره میشه !
واسه همین هم میشه وقفه گذاشت ولی بازم به تغذیه 5 نیاز داره !!! ( آخه اون 1.8 بودش )
خب 5ولت اشکال نداره خوبه
برای این برنامه وقفه چطوری میشه گذاشت:

کد php:
$regfile "m8def.dat"
$crystal 4000000
Ddrd 
= &B11111100 Portd 7
Ddrd 
= &B11111100 Portc 3
Do
    
Debounce Pind.0 Gosub
    Debounce Pind.1 
Gosub
    Debounce Pind.2 
Gosub
    Debounce Pind.3 
Gosub
    Debounce Pind.4 
Gosub
    Debounce Pind.5 
Gosub
    Debounce Pind.6 
Gosub
    Debounce Pinc.0 
Gosub
    Debounce Pinc.1 
Gosub
    Debounce Pinc.2 
Gosub
Loop

Q
:
    
Rc5send 7 0
    Waitms 100
Return

W:
    
Rc5send 7 1
    Waitms 100
Return

A:
    
Rc5send 7 2
    Waitms 100
Return

B:
    
Rc5send 7 3
    Waitms 100
Return

C:
    
Rc5send 7 4
    Waitms 100
Return

D:
    
Rc5send 7 5
    Waitms 100
Return

E:
    
Rc5send 7 6
    Waitms 100
Return

F:
    
Rc5send 7 7
    Waitms 100
Return

G:
    
Rc5send 7 8
    Waitms 100
Return

H:
    
Rc5send 7 9
    Waitms 100
Return 

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

در ضمن علی جان لطفا در باره مچ کردن کنترلهای آماده با یک برنامه گیرنده مثل برنامه خودمونو یکمی توضیح می دی؟؟؟
مهندس بحث وقفه رو بخون !!

با چند تا دیود باید کاری کنی هر کلید فشار داده شد وقفه خارجی رو هم فعال کنه و تو تابع وقفه ببین کدوم کلید فشار داده شده و کارش رو انجام بده ( همون ارسال دیتا ) و بعدش برو تو مد کم مصرف مثل idle

کاری نداره به اون صورت !!


استاندارد RC6 رو بخون !
می فهمی چی مدلیاست !!
شاید یکم دنگ فنگ داشته باشه !!!
این تلویزیونی که عکسشو گذاشته بودم مال حدود 25 ساله پیش هستش Whistle
یدونه نقشه بزرگی داخلش داره که همه چیزو توضیح داده Wink
منظورم از گذاشتن این عکسها اینه که بدونید قدیمیا کارشون درست بود مخصوصا ژاپنی ها(البته ژاپنی ها الانم کارشون درسته) Clap

اما الان هیچکدام از لوازم برقی داخلشون نقشه مدارشو نمیذارن Angry

واما عکسها ...

[تصویر:  1271511318.jpg]

[تصویر:  1271523501.jpg]

نمونه ای از شماتیک مدار:
[تصویر:  1271431650.jpg]

نمونه ای از pcb :

[تصویر:  1271450038.jpg]

حتی شکل قطعاتشم گذاشته:

[تصویر:  1271470151.jpg]

اینم آدرس قطعات:

[تصویر:  1271501303.jpg]
ولی متاسفانه عکس هات باز نمیشه !
مثل اینکه واسه سایت آپلود مشکل پیش اومده ...
اگه چند لحظه دیگه درست نشد جای دیگه آپشون میکنم
ببخشید.
علی جون مثل اینکه مشکل حل شد.
صفحه‌ها: 1 2 3 4 5 6