اطلاعیه

Collapse
No announcement yet.

ترازوی دیجیتال

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

    #16
    پاسخ : ترازوی دیجیتال

    بابا ، مهندس جان ، من فکر میکردم شما هدف مشخصی داری که از این درایور استفاده کنی و ....
    یه مبدل a/d 24 بیتی بگیرید و لودسل رو مستقیم وصل کنید بهش و برنامه نویسی و تموم
    ad7780
    ad7190
    cs5532
    که من دومی رو پیشنهاد میکنم
    دیتاشیت این دوتا رو هم دانلود کنید ؛ توش اشاراتی کرده

    دیدگاه


      #17
      پاسخ : ترازوی دیجیتال

      نوشته اصلی توسط aryanaar
      بابا ، مهندس جان ، من فکر میکردم شما هدف مشخصی داری که از این درایور استفاده کنی و ....
      یه مبدل a/d 24 بیتی بگیرید و لودسل رو مستقیم وصل کنید بهش و برنامه نویسی و تموم
      ad7780
      ad7190
      cs5532
      که من دومی رو پیشنهاد میکنم
      دیتاشیت این دوتا رو هم دانلود کنید ؛ توش اشاراتی کرده
      صمیمانه از پاسخ شما سپاسگزارم
      به من گفتن تغییرات خروجی لودسل در حد میکرو ولته و نمیشه با A/D میکرو تشخیص داد به همین دلیل گفتن باید خروجی لودسل رو تقویت کنم.که برای این کار درایورINA125 را پیشنهاد دادن.که من هم 15000تومان برای خرید این درایور هزینه کردم!
      AD77190 قیمتش چنده؟ یعنی نمیشه از A/D میکرو استفاده کرد؟ (با این هزینه ای که تا حالا من کردم میتونستم 10 تا ترازوی چینی بخرم :surprised:!)

      دیدگاه


        #18
        پاسخ : ترازوی دیجیتال

        درست گفتن که نمیشه (تغییرات خروجی لودسل در حد میکرو ولته و نمیشه با A/D میکرو تشخیص داد) :agree:
        راهش هم همیمن مبدل های 24-bit هستش
        تاپیک های همین سایت رو میخوندی به این نتیجه میرسیدین !
        کاش یه مشورتی میکردین با چند نفر یا با بچه ها وبعد این رو میخریدین
        منم که پیغام خصوصی دادم ، گفتم تا جایی که بتونم کمکتون میکنم !
        این هم روش بستن لودسل به مبدل هست

        دیدگاه


          #19
          پاسخ : ترازوی دیجیتال

          ساتن ترازوی زیادواسه فروش کار اشتباهی است
          کاری که چینی ها توش دست دارن وارد نشین

          دیدگاه


            #20
            پاسخ : ترازوی دیجیتال

            نوشته اصلی توسط علی محمدی
            ساتن ترازوی زیادواسه فروش کار اشتباهی است
            کاری که چینی ها توش دست دارن وارد نشین
            مگه من میخوام تعداد زیاد بسازم؟! من یه دونه میخوام بسازم که باهاش کار دارم. باید یه کیبرد هم بهش متصل کنم.

            دیدگاه


              #21
              پاسخ : ترازوی دیجیتال

              به نظر شما این برنامه جواب میده؟ البته من با زبان C برنامه نویسی میکنم و به بیسیک مسلط نیستم (البته تا حدودی آشنایی دارم).
              این برنامه را هم از وب سایت فکور کپی کردم.

              کد:
              [left]دستور معرفی میکروکنترلر مگا 16 و فرکانس کاری 4 مگا هرتز 
              
              $regfile = "m16def.dat" : $crystal = 4000000 
              
              
              دستور تولید کارکترهای و - ز - ن 
              
              Deflcdchar 0 , 32 , 6 , 9 , 15 , 1 , 2 , 12 , 32 ' replace ? with number (v) 
              Deflcdchar 1 , 32 , 2 , 32 , 1 , 1 , 2 , 12 , 32 ' replace ? with number (z) 
              Deflcdchar 2 , 32 , 4 , 32 , 17 , 17 , 17 , 14 , 32 ' replace ? with number (n) 
              
              
              دستور معرفی ال سی دی 2 در 16 و پین های متصل به پورت میکروکنترلر 
              
              
              Config Lcd = 16 * 2 
              Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.4 , Db6 = Portd.3 , Db7 = Portd.2 , E = Portd.6 , Rs = Portd.7 
              
              
              
              خاموش کردن مکان نمای ال سی دی و پاک کردنال سی دی
               
              Cursor = Off : Cls 
              
              دستور راه اندازی مبدل آنالوگ به دیجیتال و شروع به کار آن 
              Config Adc = Single , Prescaler = Auto : Start Adc 
              
              دستور نمایش اعداد ممیزی تا یک رقم اعشار 
              Config Single = Scientific , Digits = 1 
              
              تعیین پورت های ورودی مورد نیاز مدار 
              Config Portb.1 = Output : Config Portb.3 = Input 
              Config Portb.4 = Input : Config Portb.5 = Input 
              
              دستور اعمال ولتاژ 5 ولت به پین های ورودی کلید ها برای نگهداشتن آنها در حالت یک منطقی 
              Set Portb.3 : Set Portb.4 : Set Portb.5 
              
              تعریف متغییرهای مورد نیاز برنامه با نام های دلخواه 
              Dim A As Integer , B As Integer , C As Integer , D1 As Integer , D2 As Integer 
              Dim E1 As Byte , E2 As Byte , V As Integer 
              Dim F1 As Single , F2 As Single , G As Integer , H1 As Integer , H2 As Integer 
              Dim Vazn As Single , Tagh As Single , T As Integer , I1 As Integer , I2 As Integer 
              
              دادن مقدار اولیه به متغییرهای نمایش حافظه داخلی 
              D1 = 0 : D2 = 15 
              
              هشدار صوتی آغازین 
              Set Portb.1 : Waitms 50 : Reset Portb.1 : Wait 1 
              
              زیر برنامه چک برای تعیین عدد مینا در حالت بی باری یعنی خالی بودن کفه در زمان روشن شدن تا نمایش عدد وزن صفر 
              Chek: 
              
              انتظار تا زمانیکه کلید بی 2 رها باشد 
              Bitwait Pinb.4 , Set 
              
              شروع حلقه تکرار شونده 
              Do 
              
              خواندن مقدار تبدیل شده آنالوگ ورودی به دیجیتال و قرار دادن آن در متغییر آ و 200 میلی ثانیه تاخیر و تکرار همین عمل 
              و قرار دادن نتیجه در متغییر بعدی 
              A = Getadc(3) : Waitms 200 : B = Getadc(3) 
              
              دستور خروج از حلقه با برقراری شرط برابری دو مقدار خوانده شده همراه با هشدار صوتی 
              If A = B Then : Set Portb.1 : Waitms 50 : Reset Portb.1 : Waitms 50 : Set Portb.1 
              Waitms 50 : Reset Portb.1 : Exit Do : End If 
              
              پایان حلقه 
              Loop 
              
              شروع زیر برنامه اصلی 
              Main: 
              
              پاک کردن ال سی دی و خوانده اعداد ذخیره شده در حافظه داخلی که همان وزن ذخیره شده است 
              Cls : Readeeprom E1 , D1 : Waitms 10 : Readeeprom E2 , D2 : Waitms 10 
              
              انجام عملیات زیر بخاطر آنست که در حافظه داخلی میکرو فقط تا 255 قابل ذخیره است و چون اعداد بدست آمده بزرگتر است 
              در قسمت های جلوتر عملیاتی برای کوچک کردن این اعداد آمده که در اینجا عکس آن انجام شده تا روی ال سی دی نمایش 
              داده شود 
              I1 = E2 / 10 : I2 = E2 Mod 10 : I2 = I2 : Vazn = 0 
              
              شروع حلقه تکرار شونده 
              Do 
              
              شروع دوباره نمونه گیری از لودسل و باتری 
              Waitms 200 : V = Getadc(1) : B = Getadc(3) 
              
              نمایش اخطار کم شدن باتری درصورت کم شدن ولتاژ با تشخیص نمونه گیری و رفتن به زیر برنامه 
              If V < 600 Then : Cls : Set Portb.1 : Upperline : Lcd " LOW BATTERY" 
              Waitms 100 : Reset Portb.1 : Wait 1 : Goto Batri : End If 
              
              نمایش وزن محاسبه شده و کارکترهای و – ز – ن و پسوند گرم در سطر اول 
              Upperline 
              Lcd Chr(2) ; Chr(1) ; Chr(0) ; ": " ; Vazn ; " gr " 
              
              نمایش مقدار خوانده شده از لودسل روبروی حرف ال و مقدار و شماره حافظه داخلی میکرو 
              Lowerline 
              Lcd "L:" ; B ; " M" ; D1 ; ": " ; E1 ; I1 ; "." ; I2 ; " " 
              
              تعیین شرط رفتن به زیر برنامه شو درصورت وجود جسم روی کفه درصورتیکه وزن آن بیشتر از 4 گرم باشدو در غیر اینصورت رفتن به ابتدای زیر برنامه اصلی 
              If B > A Then : C = B - A 
              If C = 1 Then : A = B : Goto Main : End If 
              If C > 1 Then : Incr D1 : If D1 > 10 Then : D1 = 0 : End If 
              Incr D2 : If D2 > 25 Then : D2 = 15 : End If : Goto Show : End If : End If 
              
              تشخیص فشرده شدن کلیدهای بی 3 و بی 2 که نتیجه شمارش به بالا حافظه خوانده شده است و خواندن حافظه بعدی با هشدار صوتی 
              If Pinb.4 = 0 And Pinb.5 = 0 And Pinb.3 = 1 Then : Incr D1 
              If D1 > 10 Then : D1 = 0 : End If 
              Incr D2 : If D2 > 25 Then : D2 = 15 : End If 
              Set Portb.1 : Waitms 50 : Reset Portb.1 
              Readeeprom E1 , D1 : Readeeprom E2 , D2 
              I1 = E2 / 10 : I2 = E2 Mod 10 
              End If 
              
              تشخیص فشرده شدن کلیدهای بی 1 و بی 2 که نتیجه شمارش به پایین حافظه خوانده شده است و خواندن حافظه قبلی با هشدار صوتی 
              If Pinb.3 = 0 And Pinb.4 = 0 And Pinb.5 = 1 Then : Decr D1 
              If D1 < 0 Then : D1 = 10 : End If 
              Decr D2 : If D2 < 15 Then : D2 = 25 : End If 
              Set Portb.1 : Waitms 50 : Reset Portb.1 
              Readeeprom E1 , D1 : Readeeprom E2 , D2 
              I1 = E2 / 10 : I2 = E2 Mod 10 
              End If 
              
              تشخیص فشرده شدن کلید بی 2 و رفتن به زیر برنامه باتری با هشدار صوتی 
              If Pinb.4 = 0 And Pinb.3 = 1 And Pinb.5 = 1 Then 
              Set Portb.1 : Waitms 50 : Reset Portb.1 : Goto Batri : End If 
              
              پایان حلقه تکرار 
              Loop 
              
              شروع زیر برنامه شو ( نام زیر برنامه ها دلخواه است ) 
              Show: 
              
              پاک کردن ال سی دی و هشدار صوتی 
              Cls : Set Portb.1 : Waitms 50 : Reset Portb.1 
              
              
              شروع حلقه تکرار شونده 
              Do 
              
              نمونه گیری از لودسل و انجام عملیات تبدیل آن به وزن واقعی 
              و صفر کردن وزن واقعی درصورت کم شدن مقدار نمونه گیری شده مرحله قبلی که آ است 
              این برای تشخیص برداشتن جسم از روی کفه است 
              B = Getadc(3) : Waitms 200 : G = Getadc(3) : C = B - A 
              If C < 0 Then : C = 0 : End If : Vazn = C * 1.5 
              
              نمایش وزن و کاراکترهای و - ز - ن و پسوند گرم روی سطر اول ال سی دی 
              Upperline 
              Lcd Chr(2) ; Chr(1) ; Chr(0) ; ": " ; Vazn ; " gr " 
              
              رفتن به زیر برنامه چک با برداشتن جسم از روی کفه 
              If C = 0 Then : Waitms 500 : Goto Chek : End If 
              
              خطای ایجاد شده در برنامه به صورت تک واحد افزایش در عدد نمونه گیری شده ظاهر می شود که خطا با دستور زیر حذف می شود 
              بدینصورت که درصوت یک واحد افزایش عدد جدید در زیر برنامه چک به عنوان عدد مبنا درنظر گرفته می شود 
              If C = 1 Then : Waitms 500 : Goto Chek : End If 
              
              تشخیص ثابت شدن جسم روی کفه و ذخیره آن در حافظه داخلی و نمایش پیام ذخیره شد در سطر دوم 
              If G = B Then : H1 = Vazn * 10 : H2 = H1 Mod 100 : H1 = H1 / 100 : E1 = H1 
              Writeeeprom E1 , D1 : Waitms 10 : E2 = H2 : Writeeeprom E2 , D2 : Waitms 100 
              Lowerline 
              Lcd " ZAKHIRE SHOD" 
              End If 
              
              پایان حلقه تکرار شونده 
              Loop 
              
              شروع زیر برنامه باتری 
              Batri: 
              
              پاک کردن ال سی دی و انتظار تا رها شدن کلید بی 2 ( کلید ست ) 
              Cls : Bitwait Pinb.4 , Set 
              
              شروع حلقه تکرار شونده 
              Do 
              
              نمونه گیری و انجام عملیات مورد نظر و نمایش ولتاژ باتری بصورت درصد 
              V = Getadc(1) : V = V - 600 : If V < 0 Then : V = 0 : End If 
              V = V * 1.5 : If V > 100 Then : V = 100 : End If 
              
              نمایش کلمه باتری روی سطر اول ال سی دی و ولتاژ باتری با علامت درصد روی سطر دوم ال سی دی 
              Upperline : Lcd " BATTERY:" 
              Lowerline : Lcd " " ; V ; " % " 
              
              تشخیص فشرده شدن کلید بی 2 و رفتن به زیر برنامه چک با هشدار صوتی 
              If Pinb.4 = 0 Then : Cls : Set Portb.1 : Waitms 50 : Reset Portb.1 
              Goto Chek : End If 
              
              پایان حلقه تکرار شونده و پایان کلی برنامه 
              Loop 
              End 'end program
              [/left]

              دیدگاه

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