سلام
من یه پروژه ولت وسنج درست کردم که تو پروتئوس قشنگ کار میکنه ولی تو عمل >>حتی وقتی منبع ولتاژ رو بهش وصل نکردم تو lcd برا خودش مقدار نشون میده و هی تغییر میکنه>>> و قتی مثلا میخوام ولتاژ باتری رو باهاش اندازه بگیرم بازم مقدار متغییر هستش(ولی وقتی ولتاژباتری رو با مولتی متر اندازه میگیرم مقدار ثابت هستش) در حالی که ولتاژ باتری dc هستش و نه ac
به نظرتون مشکل از کجاس؟؟؟؟؟؟
اینم مدارش تو پروتئوس>>>
اینم از کداش
من یه پروژه ولت وسنج درست کردم که تو پروتئوس قشنگ کار میکنه ولی تو عمل >>حتی وقتی منبع ولتاژ رو بهش وصل نکردم تو lcd برا خودش مقدار نشون میده و هی تغییر میکنه>>> و قتی مثلا میخوام ولتاژ باتری رو باهاش اندازه بگیرم بازم مقدار متغییر هستش(ولی وقتی ولتاژباتری رو با مولتی متر اندازه میگیرم مقدار ثابت هستش) در حالی که ولتاژ باتری dc هستش و نه ac
به نظرتون مشکل از کجاس؟؟؟؟؟؟
اینم مدارش تو پروتئوس>>>

اینم از کداش
کد:
#include <mega16.h> #include <delay.h> #include <stdlib.h> #include <lcd.h> #asm .equ __lcd_port=0x18 //portb #endasm #define ADC_VREF_TYPE 0xC0 //Volt.Ref ==> 2.56v float read_adc(unsigned char adc_input) { ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); delay_us(10); // Delay needed for the stabilization of the ADC input voltage ADCSRA|=0x40; // Start the AD conversion while ((ADCSRA & 0x10)==0); // Wait for the AD conversion to complete ADCSRA|=0x10; return ADCW; } void main(void) { char buffer[]; float T; lcd_init(16); // ADC Clock frequency: 125.000 kHz // ADC Voltage Reference: Int., cap. on AREF ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x85; while (1) { T=read_adc(0); //T=(T+18.79)/10; T=(T*25.6)/1023; ftoa(T,2,buffer); lcd_putsf("V="); lcd_puts(buffer); delay_ms(100); lcd_clear(); }; }
دیدگاه