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

kendab

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

kendab

عضو جدید
سلام
چرا کسی کمک نمی کنه
برنامه ترازو را به زبان avrمیخواستم
 

بهار امیدوار

عضو جدید
[h=1]کار با LCD کاراکتری یا متنی به زبان C[/h]
موقعیت شما:
خانه \ AVR \ آموزش AVR سی C \ کار با LCD کاراکتری یا متنی به زبان C


به نام خدا
در این قسمت ما به آموزش LCD های کاراکتری خواهیم پرداخت. و توضیح می دهیم که چگونه LCD را به میکرو کنترلر متصل کنیم و چگونه آن را در زبان C معرفی کنیم و با استفاده از دستورات به صورت نرم افزاری با آن ارتباط برقرار کنیم.
ابتدا پایه های LCD :

پایه نام عملکرد
1 VSS زمین
2 VCC 5V+
3 VEE کنترل درخشندگی (می توانید با یک مقاومت 1 کیلو آن را زمین کنید)
4 RS اگر این پایه 0 باشد اطلاعات روی DB0-DB7 به عنوان فرمان و اگر 1 باشد به عنوان کاراکتر پذیرفته می شود
5 R/W اگر این پایه 0 باشد LCD برای نوشتن آماده می شود و اگر 1 باشد برای خواندن آماده می شود
6 E فعال سازی LCD که با یک لبه پایین رونده می باشد
7 DB0 خطوط دیتا
8 DB1
9 DB2
10 DB3
11 DB4
12 DB5
13 DB6
14 DB7
15 A 5V+ از پایه 15 و 16 برای روشن کردن LED پس زمینه استفاده می شود
16 K زمین

پایه های LCD

از بخش سفارش طراحی همکنون درخواست خود را ثبت کنید
حل و تشریح کلیه تمرینات درس میکروکنترلر AVR
طراحی و ساخت مدارات دلخواه شما با میکروکنترلر AVR

کد های فرمان LCD:
کد HEX عملکرد فرمان
0X01 پاک کردن صفحه نمایش
0X02 بازگشت مکان نما به سطر و ستون 0و0 HOME
0X04 انتقال مکان نما به چپ
0X05 جابجایی صفحه نمایش به راست
0X06 انتقال مکان نما به راست
0X07 جابجایی صفحه نمایش به چپ
0X08 صفحه نمایش و مکان نما خاموش
0X0A صفحه نمایش خاموش و مکان نما روشن
0X0C صفحه نمایش روشن و مکان نما خاموش
0X0E صفحه نمایش روشن و مکان نما روشن
0X0F صفحه نمایش روشن و مکان نما در حالت چشمک زن
0X10 جابجایی مکان نما به چپ
0X14 جابجایی مکان نما به راست
0X18 حرکت کل صفحه نمایش به چپ
0X38 سازمان دهی 8 بیتی و ماتریس 5×7
0X28 سازمان دهی 4 بیتی و ماتریس 5×7
0X10 حرکت کل صفحه نمایش به راست
0XC0 مکان نما به آغاز خط دوم انتقال می یابد


//www.picpars.com #include <mega8.h> // معرفي ميکر #include <stdio.h> //فراخواني دستورات استاندارد ورودي خروجي #include <delay.h> // فراخواني تابع تاخيري #include <lcd.h> // فراخواني دستورات ال سي دي #define xtal 8000000 #asm // شروع دستورات اسمبلي .equ __lcd_port=0x18; PORTB //معرفي پورت ال سي دي #endasm // پايان دستورات اسمبلي unsigned char i; /*********www.picpars.com**********/ void main(void){ // تابع اصلي char buffer[10]; // در اين متغيير اطلاعات به صورت رشته قرار ميگيرند lcd_init(16); // ال سي دي با 16 ستون while(1){ i++; // lcd_clear(); // پاک کردن ال سي دي sprintf(buffer,"PICPARS.COM %d",i); //آماده کردن اطلاعات به صورت رشته lcd_puts (buffer); // ارسال اطلاعات به ال سي دي delay_ms(200); // تاخير 200 ميلي ثانيه } }
این برنامه یک نمونه ساده از برنامه هایی است که با ال سی دی کاراکتری ارتباط دارد. در این برنامه یک متغییر با اسم i تعریف شده که این متغیر در حلقه while قرار دارد و با یک تاخیر 200 میلی ثانیه یک واحد به این متغییر اضافه می شود و روی LCD نمایش داده می شود. توضیح دستوارت را در اینجا می دهیم و تا آخر هر جا از LCD استفاده کردیم اصول کلی آن به صورت زیر می باشد.
از دستور asm# برای نوشتن دستورات به زبان اسمبلی استفاده می شود که در اینجا ما از یک دستور اسمبلی برای معرفی کردن پورت B برای LCD به صورت بالا استفاده می کنیم که اگر شما از codewizard استفاده کنید این قسمت برای شما ایجاد خواهد شد و endasm# هم برای خاتمه دادن به دستورات اسمبلی می نویسیم.
lcd_init(16); از این دستور برای تعیین کردن تعداد ستون های LCD استفاده می شود. که در اینجا LCD را برای 16 ستون سازماندهی می کند.
char buffer: این متغییر که به صورت یک آرایه 10 تایی تعریف شده و حتما نوع آن باید از char باشد، برای ذخیره سازی موقت اطلاعات به صورت رشته می باشد به این صورت که ما اگر بخواهیم نوشته ای را همراه با یک متغییر روی LCD نمایش بدهیم چون محتوای متغییر ما (در اینجا عدد می باشد) عدد است باید این عدد را به صورت رشته درآوریم و همراه با آن text مان برای LCD بفرستیم که این تبدیل عدد به رشته را دستور sprintf انجام می دهد و بعد این رشته را در متغیر buffer قرار می دهد.
sprintf: فرم نوشتن این دستور به این صورت می باشد که ابتدا یک متغیر برای ذخیره سازی و بعد رشته (همان نوشته یا پیغام) و بعد هم متغیر i که حاوی یک عدد است. "PICPARS.COM %d" در اینجا d% یعنی اینکه متغیر i در مبنای دسیمال نمایش داده شود که در جدول زیر تمام این علایم را توضیح داده ایم. پس این دستور این رشته را در متغیر buffer به این صورت PICPARS.COM 1 ذخیره می کند.
lcd_puts(buffer): این دستور محتوای متغییر buffer را برای LCD ارسال می نماید.
lcd_clear(); این دستور کل صفحه نمایش را پاک می کنید و نویسه را در مختصات 0و0 قرار می دهد.
فرمت کاراکتر های ارسالی:
کاراکتر نوع اطلاعات ارسالی
c% یک تک کاراکتر
d% عدد صحیح علامت دار در مبنای 10
i% عدد صحیح علامت دار در مبنای 10
e% نمایش عدد ممیز شناور به صورت علمی
E% نمایش عدد ممیز شناور به صورت علمی
f% عدد اعشاری
s% عبارت رشته ای واقع در حافظه SRAM
u% عدد صحیح بدون علامت در مبنای 10
X% به فرم هگزا دسیمال با حروف بزرگ
x% به فرم هگزا دسیمال با حروف کوچک
P% عبارت رشته ای واقع در حافظه FLASH
%% نمایش علامت ٪

دستورات استفاده شده در LCD:
_lcd_ready()
این دستور منتظر می ماند تا LCD آماده دریافت اطلاعات شود. این دستور باید حتما قبل از دستور زیر اجرا شود.
_lcd_write_data()
به کمک این دستور می توان در رجیستر دستور العمل LCD فرمان هایی نوشت که در جدول کد های فرمان LCD این فرمان ها توضیح داده شده اند.
مثال:
//www.picpars.com
#include <mega8.h>
#include <stdio.h>
#include <delay.h>
#include <lcd.h>
#define xtal 8000000
#asm .equ __lcd_port=0x18; PORTB
#endasm
unsigned char i=20; /*********www.picpars.com**********/
void main(void){
char buffer[10];
lcd_init(16);
sprintf(buffer,"PICPARS.COM %d",i);
lcd_puts (buffer);
while(1){ delay_ms(200);
_lcd_ready(); //آماده دريافت دستور
_lcd_write_data(0x1c); // کل صفحه نمايش به چپ انتقال داده شود
}
}
در این مثال ابتدا عبارت PICPARS.COM 20 روی LCD نمایش داده می شود و سپس کل صفحه نمایش با تاخیر 200 میلی ثانیه به سمت چپ منتقل می شود.(مانند تابلو روان)
اصول کار LCD های ماتریسی به صورت می باشد و طرز استفاده از دستورات به همین صورت می باشد. امیدوارم که این توضیحات کافی باشد. در صورتی که سوالی در مورد این قسمت دارید می توانید در همین صفحه در قسمت نظرات آن را مطرح نماید.
منبع: www.picpars.com
 

بهار امیدوار

عضو جدید
انتقال از : دتالار فنی مهندسی مهندسی برق اخبار تازه ها و فناوری های دنیای برق ترازوی دیجیتال- محممد آقا

انتقال از : دتالار فنی مهندسی مهندسی برق اخبار تازه ها و فناوری های دنیای برق ترازوی دیجیتال- محممد آقا

[h=2]ترازوی دیجیتال[/h]

ترازوهای دیجیتال هسته اصلی شون هم یه loadcell که توش از 4 تا استرین گیج تشکیل شده است و به صورت پل وتستون هم بسته می شوند
کار کردن هم باهاشون زیاد سخت نیست کافیه یه ولتاژ ثابت بهش بدین و خروجی رو بصورت دیفرانسیلی بخونید ...


همون طور که می بینید یه ولتاژ ثابت تقویت شده به ورودی پل میدیم و خروجی رو (دو سر وسط ) هم به صورت تفاضلی می گیریم و تقویت می کنیم برای به دست آوردن دقت بیشتر توی خروجی بهتره از ad620 استقاده کنید که در واقع از 3 تا opamp تشکیل شده و دیریفت و حذف مد مسترک بهتری رو بهتون میده قواعد شیلد کردن رو هم رعایت کنید چون سیگنال ها بسیار ضعیفند و به راحتی نویزی می شن ولتاژ ورودی پل هم همون طور که م یبینید باید تقویت شده و از یه آی سی رفرنس ولتاژ استفاده شده باشه





تصويري از يک ترازوي ديجيتال - مدل Ohaus Compact Scale, 200g

منبع : ام الک​
 

بهار امیدوار

عضو جدید
  • [h=2]سلام
    من این مطالبو از تاپیکای دیگه گرداوری کردنم براتون[/h] [h=2]http://www.www.www.iran-eng.ir/images/icons/icon1.png کمک در مورد ترازوی دیجیتال[/h]
    سلام خسته نباشید
    من برای درس میکرو کنترلر باید ترازوی دیجیتال با AVR آماده کنم. اگه کسی در این زمینه (برنامه نویسی، سنسور و ...) اطلاعاتی داره ممنون می شم کمکم کنه.​




    http://www.www.www.iran-eng.ir/clear.gif پاسخ http://www.www.www.iran-eng.ir/clear.gif پاسخ با نقل قول http://www.www.www.iran-eng.ir/images/buttons/multiquote_40b.png

  • 2012/5/28 #2
    roham_reza
    http://www.www.www.iran-eng.ir/images/statusicon/user-offline.png
    تازه وارد http://www.www.www.iran-eng.ir/images/ranks/rating_1.gif http://www.www.www.iran-eng.ir/images/reputation/reputation_green.gif رشتهمهندسی برقتاريخ عضويت2010/10امتیاز11پست ها3

    [h=2]http://www.www.www.iran-eng.ir/images/icons/icon1.png[/h]
    من با PIC ترازو ساختم ولي خيل نحوه كار فرق نمي كنه سنسور خيل بد گير مياد بگو لودسل ميخواهم آن موقع جهان كيت تو جمهوري داشت من يك صفر تا 10 كيلو را 30 هزارتومان خريدم خروجي ولتاژ 0تا 2.6 تقريباً ميده كه بايد باA2D وارد ميكرو بشه​




    http://www.www.www.iran-eng.ir/clear.gif پاسخ http://www.www.www.iran-eng.ir/clear.gif پاسخ با نقل قول http://www.www.www.iran-eng.ir/images/buttons/multiquote_40b.png

  • [h=2]تشكر از اين پست[/h]


  • 2012/6/11 #3
    مهران.ن
    http://www.www.www.iran-eng.ir/images/statusicon/user-offline.png
    کاربر فعال تالار الکترونیک http://www.www.www.iran-eng.ir/images/ranks/rating_2.gif http://www.www.www.iran-eng.ir/images/reputation/reputation_green.gif http://www.www.www.iran-eng.ir/images/reputation/reputation_green.gif http://www.www.www.iran-eng.ir/customavatars/avatar536599_2.gif رشتهمهندسی برقتاريخ عضويت2012/5محل سكونتاهوازامتیاز172پست ها174

    [h=2]http://www.www.www.iran-eng.ir/images/icons/icon1.png[/h]
    سلام
    دوست عزیز حتما لزومی نداره که یک سنسور فشار یا چیزای گران بخری با خیلی چیز ها می تونی به عنوان سنسور استفاده کنی مثلا از یک بوبین با هسته ی فریت بایک فنر که هر چقدر قدرت فنر بیشترباشه ترازوت می تونه وزن بیشتری رو اندازه بگیره یا مثلا می تونی از یک مقاومت متغیر روئستای خطی استفاده کنی با یک فنر و خیلی چیز های مبتکرانه دیگه .حتما که نباید همه چیز به صورت الکترونیکی باشه با ابزار مکانیکی اهرم و...می توان خیلی چیز های عجیب اختراع کرد.
    امیدوار موفق باشی.سوالی داشتی در خدمتم.​



 

Similar threads

بالا