ايران ويج

نسخه‌ی کامل: اگرورودی منفی شود...
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3
سلام
من برنامه ای بصورت زیردرکدویژن نوشتم که اگر D.0 یکباریک شود آنگاه D.1 یک شود واگردوباره D.0 یکشودآنگاه D.1 صفرشود:
کد php:
if((PIND.0==1)&(a==0)){
      
PORTD.1=1;
      
a=1;
      
delay_ms(70);
      }; 
       if((
PIND.0==1)&(a==1)){
      
PORTD.1=0;
      
a=0;
      
delay_ms(70);
      }; 
درضمن پورت D راهم بصورت زیرانتخاب کرده ام وهمچنین ورودیD.0 رابایک مقاومت پول آپ به منفی وصل کرده ام:
کد php:
// Port D initialization
// Func0=In Func1=Out Func2=In Func3=In Func4=In Func5=In Func6=In Func7=In 
// State0=T State1=0 State2=T State3=T State4=T State5=T State6=T State7=T 
PORTD=0x00;
DDRD=0x02
اما حالا می خواهم که باورودی صفراینکار راانجام دهم یعنی اینکه اگرD.0 مساوی صفر شودآنگاه دستورات قبلی رااجرا کند!!!
برنامه راچطورتغییردهم که اینکار رابکند؟
پورت دی صفر رو با مقاومت به vcc وصل کن این دفعه شرط بزار اگه پایه صفر شد بره ...
می تونی پووول آپ داخلی رو هم فعال کنی !!!
سلام
می خواهم D.0 رابایک شستی به منفی وصل کنم واگر دستم روی شستی هرقدرهم ماند فقط یکبارفرمان بگیرد(وخروجی یک شود وهمینطوربماند) واگردستم رابرداشتم ودوباره فشاردادم خروجی صفرشود.
حالا چه تغییری دربرنامه بدهم که اینکار راانجام دهد؟؟؟؟؟؟؟
اگه برنامت با بسکام بودش می گفتم با دستور DEBOUNCE بخون !!!!

شما باید پالس بالا رونده رو تست کنی !
بهتر بگم اگر دفعه قبلی وضعیت پایه مورد نظر صفر بود و حالا یک شده کار خواسته شده رو انجام بده !!!
در بقیه حالت ها کاری نکن !!!
میشه شما کاری که من می خواهم رابا یک برنامه ساده دربیسکام برام بنویسید!؟؟؟؟؟؟؟؟؟؟
خودمونیم چقدر برنامه ها تو بسکام خلاصه می شه :

کد php:
$regfile "M32DEF.dat" $crystal 1000000
Ddrd 
Portd 1

Do
   
Debounce Pind.0 Ant Gosub
Loop

Ant
:
   
Toggle Portd.1
Return 

فقط کافیه کلید رو بین پایه D.0 و زمین قرار بدی !

خروجی هم D.1 هستش !!!
ممنون
این برنامه رانوشتم وبامیکرو وصل کردم ودرست کارکرد(بازم ممنون).
اما درکل خواست من ازاین مدار وصل کردن یک مدارمادون قرمز به آن است که وقتی یکبارریموت رافشار دهم خروجی یک و اگر دوباره فشار دهم صفرشود.
مدارمیکرو به تنهایی خوب کارمی کند ومدارمادون قرمزهم همچنین.
خروجی که ازکلکتور مدارمادون قرمز می گیرم منفی است ومی خواهم که آن رابه جای شستی به میکرو وصل کنم اما بعد ازوصل بافشاردادن ریموت خروجی میکرو بطور مدام صفر ویک می شود ودریک حالت باقی نمی ماند!
می خواستم ببینم که مشکل ازکجاست؟
درضمن مدارمادون قرمزم مدارشماره201 ازکتاب 308مدار وصفحه 260 است که شکلش راهم درزیرقرارداده ام:
[تصویر:  4m7w6hp332skf7qa05i5.jpg]
یعنی من خروجی کلکتور ترانزیستور2 رابه جای لامپ به میکرو داده ام.
اصلا خاطرم نبود مشکلش راپیداکردم ریموت چون پالس صفر ویک می فرستد به همین خاطردرخروجی میکروهم مدام صفرویک می شود.
آیابرای حل این مشکل راهی وجوددارد؟
ببینید من دراصل مدار گیرنده مادون قرمز تک کاناله می خواهم درست کنم (دائم کار باشد نه لحظه ای)به نظر شما راه ساده تر باقطعات کمتر هم وجوددارد؟؟؟؟؟؟؟؟؟؟
مشکل اصلی راپیداکردم....
من درابتدابه جای خازن شماره یک درشکل خازنی باظرفیت کم گذاشته بودم یعنی یک میکرو فاراد/اما باقراردادن خازن 10میکروفاراد به جای آن مشکل خروجی ام حل شد ودرکل توانستم چیزی که می خواستم درست کنم(البته باکمک برنامه علی جون).
اما می خواستم بدونم که آیا راه های ساده دیگری هم وجوددارد(یعنی مدارساده گیرنده مادون قرمز تک کاناله باقطعات کم وبرد حدود 5 متری)؟؟؟؟؟؟
مهندس واسه تک کاناله واسه فرستنده می تونی یه 555 بذاری و گیرنده هم بعد مدار خودت یه آی سی 150 تومانی به شماره 4013 بذاری !!!!
آخه حیفه یه میکرو 1200 تومانی بذاری واسه اون !!!

واسه چند کاناله می تونی از آی سی های PT2262 -PT2272- استفاده کنی !

با میکرو هم میشه !
دستورات RC5 رو تو هلپ بسکام یا کتاب سعید یه نفر سرچ کن و بخون !
مطالبش تو فروم هم موجوده !!!

واسه افزایش برد هم می تونی چند تا دیود فرستنده مادون قرمز ( به همراه ترانزیستورشون ) اضافه کنی !!!
صفحه‌ها: 1 2 3