اطلاعیه

Collapse
No announcement yet.

تنظیم فیوز بیت ها

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #16
    پاسخ : تنظیم فیوز بیت ها

    شاید ولتاز مرجعش"رفرنس" چیز دیگه ای بوده چرا رفرنس را offزدید نقشه چیز دیگه ای رو می گه شایدم من اشتباه می کنم من بیسیک کار نکردم

    دیدگاه


      #17
      پاسخ : تنظیم فیوز بیت ها

      نوشته اصلی توسط se.va
      مشکل lcd حل شد خیلی خیلی از کمکتون ممنونم
      ولی الان یه مشکل دیگه دارم که فکر نکنم دیگه به این تاپیک مربوط باشه
      مقدار گاز سنس شده توسط سنسور به یک عدد بین 0 تا 100 نسبت داده میشه و این عدد در lcd نمایش داده میشه ولی lcd همش عدد 100 رو نشون میده و LED ای هم که قرار بود وقتی مقدار گاز از 50 بیشتر شد روشن بشه همش روشنه بنظرتون سنسورم مشکل پیدا کرده
      ببینید این سنسورMQ د45دقیقه تا یک ساعت طول میکشه تا آماده به کار بشه
      چون که یه سیم پیچ برای گرم کردن سنسور در درون پکیج mq قرار داره که 45 دقیقه تا یک ساعت طول میکشه تا سنسور رو گرم کنه!
      اول که مدار رو روشن میکنید خروجی سنسور درست رو 5 ولته! اما کم کم که زمان میگذره و سنسور گرم میشه مثلا میشه 4.5 ولت... ،3ولت... ، 2 ولت.... و نهایتا باید روی یک و نیم ولت ثابت بمونه!
      اون اولش که شما مدار رو روشن میکنید و خروجی 5 ولت مشه در واقع ADC عدد 1023 رو میخونه که توی یه متغییر(توبرنامه شما A) ریخته میشه و بعد شما تو برنامه میای مقدار متغییر(A) که 1023 است رو میای تقسیم بر 10 میکنی که حاصل میشه 102.3(که البته ما روند میکنیم میگیم 102 )
      بعد شما عدد حاصل (102) رو میریزی تو یدونه متغییر( با نامB)
      حالا یه شرط تعریف کردی که اگر B بیشتر از 100 بود ، Bرو مساوی با 100 بکنه !
      بعد یه شرط دیگه دادی که میگه اگه B از 50 بزرگتر بود ال ایدی روشن شه !حالا تو این مدت کم کم از ولتاژ خروجی سنسور کاسته میشه که در نتیجه مقدار متغییر Aکه مقدار ADCتوشه کاسته میشه و اگه A کم بشه Bهم کم میشه مثلا B میشه 90 ... ،80 ... ، 60 و...بعد از مثلا یک ساعت مقدار B از 50 کم تر میشه و مدار آماده به کاره :nice:
      درضمن چرا Bرو از نوع LONGزدی؟ BYTE بزن!
      در ضمن من نفهمیدم که شما چرا مقدار ADCروکه تقسیم بر10 کردی رو توی دو تا متغییر (BوC)ریختی!!؟؟ متغییر Cفقط تو حافظه جا تنگ میکنه!پس متغییر C رو از برنامه حذف کن و بعد هرجا از برنامه از متغییر C استفاده کردی حذف کن و بجاش B بزار.
      اینطوری:
      کد:
      $regfile = "m8def.dat"
      $crystal = 2000000
      '$baud = 9600'
      Config Portc.1 = Output
      Config Adc = Single , Prescaler = Auto , Reference = Off
      Config Portb = Output
      Config Portd = Output
      Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , _
      Rs = Portb.2 , E = Portb.3
      Config Lcd = 16 * 2
      Dim A As Word
      Dim B As Byte
      Enable Adc
      Start Adc
      Do
      A = Getadc(0)
      B = A / 10
      cls
      If B > 100 Then B = 100
      If B > 50 Then Portc.1 = 1
      If B < 50 Then Portc.1 = 0
      'Printbin B'
      Home : Lcd B : Waitms 10
      Loop
      End
      در ضمن چرا از دستور Printbin و دستور$baud = 9600 استفاده کردی ؟ آخه مگه سیستم سنسور گاز، کامپیوتر هم میخواد؟!(در ضمن اگه کامپیوتر هم بخواد چرا از دستورPrintbin استفاده کردی ؟ اینطوری مقادیر بصورت باینری به کامپیوتر ارسال میشه! باید از دستور Print استفاده کنی تا بصورت دسیمال ارسال شه! :NO
      ------------------------------------------------
      اگه دوست داشتی میتونی یه زمان سنج درست کنی که یک ساعت صبر کنه تا سنسور گرم بشه بعد بایه بوق صدات کنه که سنسور آماده به کاره!
      :bye
      1 در دنیا 100 در آخرت (درس و مشق فعالیتمو تو انجمن کم کرده)
      من آنچه شرط بلاغست با تو میآ‌گویم. تو خواه از سخنم پند گیر و خواه ملال. سعدی
      !Electronic On! Programming On
      هوشمندانه سوال بپرسیم!
      http://ir02x6.persiangig.com/logo/eca/tanks_01.png

      دیدگاه

      لطفا صبر کنید...
      X