امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل با adc
نویسنده پیام
stc_5421 آفلاین
تازه وارد

ارسال‌ها: 1
موضوع‌ها: 1
تاریخ عضویت: مرداد ۱۳۸۶

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #1
مشکل با adc
سلام به همگی Biggrin

من یک تازه واردم :oops:
من وقتی با ADC میکرو AVR می خوام یک مقدار رو بخونم با رفرنس داخلی چرا وقتی پورت مورد نظر به جایی وصل نیست عدد های الکی میده ایا باید کاری کرد تا این مشکل حل بشه در ضمن من تو BASCOM مینویسم :cry:

قبلا ازهمتون برای کمک متشکرم Amaze
۲۷-مرداد-۱۳۸۶, ۲۰:۰۰:۴۰
ارسال‌ها
پاسخ
newdesign آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 218
موضوع‌ها: 14
تاریخ عضویت: فروردین ۱۳۸۶

تشکرها : 0
( 30 تشکر در 22 ارسال )
ارسال: #2
 
شما حتما باید adc رو به جایی وصل کنی تا تخمین درست باشه اگه داری به جای ولت متر استفاده میکنی بهتره با یک مقاومت 10 کیلو به زمین هم وصلش کنی
۲۸-مرداد-۱۳۸۶, ۱۰:۴۹:۴۵
وب سایت ارسال‌ها
پاسخ
IMeysam آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 323
موضوع‌ها: 56
تاریخ عضویت: اسفند ۱۳۸۵

تشکرها : 0
( 53 تشکر در 30 ارسال )
ارسال: #3
 
دلیل اینکه وقتی پایه adc به جایی وصل نیست، مقادیر بی ربط رو adc می خونه اینه که پورت ها در AVR ها وقتی به عنوان ورودی در نظر گرفته می شن و پولاپ داخلی هم برای اون ها فعال نباشه دارای ایمپدانس خیلی خیلی بالایی هستن و با کوچکترین نویز دارای اختلاف پتانسیل می شن . ما یه بار یه فرکانس متر با ورودی کانتر درست کرده بودیم ولی پولاپ رو فعال نکردیم . وقتی پایه ورودی به جایی وصل نیود ، دائم فرکانس رو به جای صفر می نوشت 50 هرتز که فهمیدیم به خاطر سیم های برقه که از چند متری رو مدار تاثیر می ذارن.ولی خوب با پولاپ(یا پول دان خارجی :wink: ) این مشکل حل میشه.

اي آمده از عالم روحاني تفت /////// حيران شده در پنج و چهار و شش و هفت
می نوش ندانی ز کجا آمده‌اي /////// خوش باش ندانی بکجا خواهی رفت
۲۸-مرداد-۱۳۸۶, ۱۴:۱۷:۲۴
وب سایت ارسال‌ها
پاسخ
mary-b آفلاین
تازه وارد

ارسال‌ها: 1
موضوع‌ها: 0
تاریخ عضویت: بهمن ۱۳۹۲

تشکرها : 0
( 0 تشکر در 0 ارسال )
ارسال: #4
RE: مشکل با adc
سلام
من قصد دارم از ولتاژ و جریان، با یه سنسور هال، نمونه گیری کنم؛ و چیزی که واضحه اینه که منم ناواردم؛ مشکلم اینه که نمیتونم از دو تا ورودی ADC همزمان ورودی بگیرم، هر کار میکنم هر دو رو یکی نشون میده..
کد:
#define ADC_VREF_TYPE 0x20

// Read the 8 most significant bits
// of the AD conversion result
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input|ADC_VREF_TYPE;
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}                                  
#asm
   .equ __lcd_port=0x15 ;PORTC
#endasm
// Declare your global variables here
  unsigned char i,v;
  char str[16];
void main(void)
{
// Declare your local variables here    

//float flt;

// ADC initialization
// ADC Clock frequency: 125.000 kHz
// ADC Voltage Reference: AREF pin
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE;
ADCSRA=0x86;
                            

// LCD module initialization
lcd_init(16);
ADCSRA=0xFF;
while (1)
      {  
      
i=read_adc(1);
//delay_ms(10);
v=read_adc(0);

lcd_gotoxy(0,0);
sprintf(str,"I=%d V=%d",i,v);
lcd_clear();
lcd_puts(str);
delay_ms(10);
      };
}

اینم کدشه و نمیدونم چطور میشه اصلاحش کرد..
مرسی
۲۱-مرداد-۱۳۹۳, ۱۹:۲۸:۴۸
ارسال‌ها
پاسخ


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS