اگر چیزی را می دانید در اختیار کسی که نمی داند و می پرسد قرار بدهید.نترسید که اگر به او بگویید بیشتر از شما خواهد دانست.چراکه دیر یا زود از کس دیگری خواهد پرسید.پس نام نیکوی یاد دهنده دانش به او را از آن خود کنید.
برنامه ی این مدار و نوشتم .. شما خودتون کاملش کنید .. توضیحاتش هم توی فابل هست .. در مور انتخاب مقاومت ها هم همونطور که جناب majid.4206 فرمودن دست خودتونه .. من با این مدار هیچوقت کار نکردن چرا که از نظر فنی زیاد نمیتونم بهش اعتماد کنم ..! برای همین در انتخاب نوع مقاومت ها نمیتونم نظر بدم .. فقط میشه برای مقادیر دیجیتال وزن در نظر گرفت و اونهارو در ضرایبی ضرب کرد که اختلاف interval ها زیاد بشه .. مثل کاری که توی بسط های سیگنال انجام میشه .. به هرحال .. برنامه رو با سخت افزار چک کنید ببینید جواب چطور میشه؟ (با پروتئوس کسی جواب گرفته؟) موفق باشید ..
همون فایلی رو که دادین تو کد ویژن کامپایل کردم Hex کردم تو پروتئوس خروجی نمیده. :sad:
اگر چیزی را می دانید در اختیار کسی که نمی داند و می پرسد قرار بدهید.نترسید که اگر به او بگویید بیشتر از شما خواهد دانست.چراکه دیر یا زود از کس دیگری خواهد پرسید.پس نام نیکوی یاد دهنده دانش به او را از آن خود کنید.
همون فایلی رو که دادین تو کد ویژن کامپایل کردم Hex کردم تو پروتئوس خروجی نمیده.
ببین دوست عزیز منم تو پروتئوس چک کردم جواب نمیده باید مدارو عملی ببندی
در ضمن شما باید 8 تا مقاومت با رنجای مختلف به سطرو ستون وصل کنی هر جوری که خواستی 1k ,2.2k 4.7k10.... دسته خودتونه ولی همون جور که قبلا هم گفتم حتما باید محاسبه بشن
موفق باشید
Do
Start Adc
Waitms 50
Adcval = Getadc(0)
Stop Adc
Select Case Adcval
Case Is < 294 : Cls
Case 662 To 704 : Lcd "1"
Case 621 To 661 : Lcd "4"
Case 570 To 620 : Lcd "7"
Case 525 To 569 : Lcd "*"
Case 500 To 524 : Lcd "2"
Case 477 To 499 : Lcd "5"
Case 446 To 476 : Lcd "8"
Case 408 To 445 : Lcd "0"
Case 336 To 347 : Lcd "3"
Case 325 To 335 : Lcd "6"
Case 310 To 324 : Lcd "9"
Case 294 To 309 : Lcd "#"
End Select
Loop
دوستان توجه داشته باشید که باتوجه به مقاومت Keypad و مقاومتهایی که انتخاب میکنید ، قطعا مقادیر ADC شما با بنده متفاوت خواهد بود و همانطور که جناب حسام الدین فرمودند ، ممکن است در بعضی از موارد ، قابل اعتماد نباشد ( گرچه با روش میانگین گیری این مسئله تا حدود خیلی زیادی بر طرف می شود)
در ضمن در عمل لازم است یک تاخیر 15 میلی ثانیه ای برای حذف اثر لرزش کلید ها ( Debounce ) برای خواندن ADC در نظر بگیریم.
سوالی داشتید در خدمتم.
این هم کل پروژه به همراه برنامه پروتئوس ، بیسیک و عکسها
آقا مجید نصراله زاده واقعا ممنونم.
دستت درد نکنه.بی نهایت لطف کردین.دقیقا همونی که می خواستم.حالا به لطف شما رو این کدی که زحمتشو کشیدین کار می کنم متوجه شم چجوریاس.
بازم ممنون. :smile:
اگر چیزی را می دانید در اختیار کسی که نمی داند و می پرسد قرار بدهید.نترسید که اگر به او بگویید بیشتر از شما خواهد دانست.چراکه دیر یا زود از کس دیگری خواهد پرسید.پس نام نیکوی یاد دهنده دانش به او را از آن خود کنید.
اگر چیزی را می دانید در اختیار کسی که نمی داند و می پرسد قرار بدهید.نترسید که اگر به او بگویید بیشتر از شما خواهد دانست.چراکه دیر یا زود از کس دیگری خواهد پرسید.پس نام نیکوی یاد دهنده دانش به او را از آن خود کنید.
سلام
فکر کردم مشکلتون حل شده مگه برنامه جناب حسام الدین رو استفاده نکردین
ببینید دوست من اگه الگریتمه برنامه رو بفهمید دیگه فرقی نمیکنه از چه مقاومتی استفاده میکنید(البته جسارت نشه )
این یه برنامه نصفه کاره هست البته مقدار مقاومتا فرق داره ....
ببین هر جاشو مشکل داشتی بگو در خدمتم
یا علی...
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
// Declare your global variables here
int key;
void main (void)
{
// ADC initialization
// ADC Clock frequency: 125.000 kHz
// ADC Voltage Reference: AVCC pin
// ADC Auto Trigger Source: None
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x87;
// LCD module initialization
lcd_init(16);
while (1)
{
// Place your code here
key=read_adc(0);
key=key*5/1024;
if ((key>0.80) && (key<0.99))
{
lcd_clear();
lcd_putsf("0"
}
else if (key>1.10 && key<1.24)
{
lcd_clear();
lcd_putsf("1"
}
else if (key>1.85 && key<2.18)
{
lcd_clear();
lcd_putsf("2"
}
سلام.
برنامه ایشون هیچ مشکلی نداره کاملا کارمو راه انداخت دستشونم درد نکنه.
اما هدفم آشنایی با C و کدویژن هست که اگه برنامه کاملو داشته باشم روش مطالعه می کنم.
دست شما هم درد نکنه من دارم مطالعه می کنم کد شما و ایشون رو.
اگر چیزی را می دانید در اختیار کسی که نمی داند و می پرسد قرار بدهید.نترسید که اگر به او بگویید بیشتر از شما خواهد دانست.چراکه دیر یا زود از کس دیگری خواهد پرسید.پس نام نیکوی یاد دهنده دانش به او را از آن خود کنید.
دیدگاه