rozhraní LM35 s PIC 16F886

P

Parthraj

Guest
Ahoj, já jsem propojení teplotního čidla LM35 s PIC 16F886. Mám problém v přesnosti čtení teploty. To dává variace 7 až 10 stupňů Celsia. Prosím, pomozte mi vyřešit tento:. Oops:
 
Zde jsou výpočty: Rozlišení = Vref/1023 (je-li 10 bitový ADC) == 4.887mV znamená, že pro každou změnu v 4.887mV analogový vstup, výstup ADC změny binárních 1 odkaz volt 5V. O / p napětí senzoru = ADC výsledek * 5 / 1023 a teplota ve stupních Celsia = výstup senzoru * 100. Doufám, že vám pomůžeme.
 
*** To je můj kód pro LM35 *** # include # include # include "usart.h" / * Ukázkový kód pro nastavení A2D modul * / void init_a2d (void) {ADCON0 = 0x08, / / select FOSC / 2 ADCON1 = 0x10, / / select vlevo odůvodnit výsledek. A / D konfigurace portů 0 Adon = 1, / / zapnutí modulu konverze A2D} / * návrat 8 bitový výsledek * / unsigned int read_a2d () {GODONE = 1, / / zahájit převod na zvolený kanál, zatímco (GODONE) pokračovat; návrat (ADRESH); / / návrat 8 MSB výsledku} void main () {unsigned int x,, plavat v, init_a2d (); / / inicializace A2D modul INTCON = 0, / / nemáme Chcete přerušení Ansel = 0x04; TRISA1 = 0, / / nižší čtyři bity POTRA budou použity v TRISA2 vstup mode = 1; TRISA3 = 1; TRISB = 0x0F; init_comms (); / / nastavení USART - nastavení definované v usart.h while (1) {PORTB = 0x00; x = read_a2d (); / / vzorek analogové hodnoty na RA0 v = (x * 1,55) / / ref napětí je 1,55 V v = (v/256); v = (V * 100); = v; printf ("\\ rtemp =% d \\ n",);}} *** to je můj okruh ***
 

Welcome to EDABoard.com

Sponsor

Back
Top