Kredsløbet overhøjde arbejde.

I

immaterielle

Guest
dette er banen jeg arbejder med.formodede VDD er fodret med 5V.men når jeg måler det, det kun 3,6.er det normalt?men banen cant arbejde.noget galt?
hvad skulle jeg gøre?
Beklager, men du skal logge ind for at se denne vedhæftede fil

 
Den LM7805 har brug for mindst 7.5V for at fungere korrekt.Hvis du har et reguleret 5V forsyning kan du springe LM7805.

 
tjek af dette hjælper.
PIN1 af preset2 bør være på 5 v
Pin15 af LCD behov for en løbende begrænse modstand gerne 33ohm.

 
kan nogen kontrollere, om banen er korrekt eller ej?
Jeg ønsker at fjerne den lm7805 del.
Jeg hørte i computer fik havn, som leverer 5v, jeg kan bruge denne ritus?
tak

 
Hai
Lad mig vide disse punkter.Har du samle det er frisk, eller det var i orden, og nu svigtet?Jeg tror der er en kort nogle, hvor der er faldende i spænding.Bare se på den hardware, ser ok.Men firmwaren er også en del af projektet.I tilfælde af at du kan uploade en kort beskrivelse og koderne, kan få et kig og prøv at finde nogen fejl.Hvis din hardware er der nogen shorts, er der ingen mening i at tilslutte en reguleret forsyning.Held og lykke.

 
dybest set projektet er ved hjælp pic16f876a, 20MHz, 2 lm35 og LCD.
temperaturen fornemmede af lm35 vil altid blive vist på LCD.
Hvis 1 af temperaturen over 50C, ledet og fan vil på.hvis både temperatur over 50C, både ledelse og fans vil på.
her er koden jeg finder fra Google.
kan se det for mig
tak# include <pic.h>

//=============== konfiguration ==============================
__CONFIG (0x3F32);

//=============== definere IO port =============================
# define lcd PORTC
# define RS RA2
# define E RA5
# define CHANNEL0 0b10000001 / / AN0
# define CHANNEL1 0b10001001 / / AN1
# define buzzeren RB5
# define Fana RB4
# define fanB RB3
# define leda RB2
# define ledB RB1

//============== FUNCTION PTOTOTYPE =========================
void e_pulse (void);
void delay (unsigned short i);
void send_char (unsigned char data);
void send_config (unsigned char data);
void lcd_goto (unsigned char data);
void lcd_clr (void);
void dis_num (unsigned long data);
void increment (unsigned long data);
void read_adc (void);
unsigned short read_temp (void);

//==================== MAIN =========================== =====
unsigned short resultat;
unsigned short temp, tempA, tempB;

void main (void)
(
ADRESH = 0; / / klar A / D-resultat
ADRESL = 0; / / klar A / D-resultat

/ / indstilling ADCON1 Register
ADCON1 = 0b11000101; / / A / D resultat højrestilles,
/ / Configure RA2 og RA5 som digitale I / O

TRISA = 0b11011011; / / configure PORTA I / O-retning
TRISB = 0b00000000; / / configure PORTB som output
TRISC = 0b00000000; / / configure PORTC som output

PORTA = 0;
PORTB = 0;

while (1)
(
send_config (0b00000001); / / klar skærm på LCD
send_config (0b00000010); / / Lcd Retur til forsiden
send_config (0b00000110) / /-mode-markøren stigning 1
send_config (0b00001100); / / diplay om, markøren ud og markøren blinker off
send_config (0b00111000); / / funktioner, der

lcd_goto (0) / / markør starte fra begyndelsen

/ / vise tegn på LCD
send_char ( '');
send_char ( 'T');
send_char ( 'E');
send_char ( 'M');
send_char ( 'P');
send_char ('.');
send_char ( 'A');
send_char ('=');

lcd_goto (20); / / markør gå til 2. linje af LCD

/ / vise tegn på LCD
send_char ( '');
send_char ( 'T');
send_char ( 'E');
send_char ( 'M');
send_char ( 'P');
send_char ('.');
send_char ( 'B');
send_char ('=');

while (1) / / uendeligt loop
(
/ / sensor A
ADCON0 = CHANNEL0; / / CHANNEL1 = 0b10001001
lcd_goto (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Kølig" border="0" />

;

read_adc ();

temp = read_temp ();
dis_num (temp/10);
send_char ('.');
dis_num (temp% 10);
send_char (0b11011111);
send_char ( 'C');
send_char ( '');
send_char ( '');

tempA = temp;

/ / sensor B
ADCON0 = CHANNEL1; / / CHANNEL0 = 0b10000001

lcd_goto (2

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Kølig" border="0" />

;

read_adc ();

temp = read_temp ();
dis_num (temp/10);
send_char ('.');
dis_num (temp% 10);
send_char (0b11011111);
send_char ( 'C');
send_char ( '');
send_char ( '');

tempB = temp;

if ((tempA> 500) & & (tempB <500)) / / ********************************** *******
(/ / * LED-A og Fan En kun aktiveres *
leda = 1; / / * temperatur En større end 50'C *
ledB = 0; / / * og temperatur B mindre end 50'C *
Fana = 1; / / *****************************************
fanB = 0;
buzzeren = 0;
)

else if ((tempB> 500) & & (tempA <500)) / / ********************************* ********
(/ / * LED-B og Fan B kun aktiveres *
leda = 0; / / * temperatur En mindre end 50'C og *
ledB = 1; / / * temperatur B større end 50'C *
Fana = 0; / / *****************************************
fanB = 1;
buzzeren = 0;
)

else if ((tempB> 500) & & (tempA> 500)) / / ********************************* ********************
(/ / * Alle LED A & LED B, Fan A & Fan B og Buzzer *
ledB = 1; / / * aktiveret for temperatur En større end 50'C *
leda = 1; / / * og temperatur B større end 50'C *
Fana = 1; / / ******************************************** *********
fanB = 1;
buzzeren = 1;
)

else if ((tempB <500) & & (tempA <500)) / / ********************************* ********************
(/ / * Alle LED A & LED B, Fan A & Fan B og Buzzer *
ledB = 0; / / * bringes til ophør for temperatur En mindre end 50'C *
leda = 0; / / * og temperatur B mindre end 50'C *
Fana = 0; / / ******************************************** *********
fanB = 0;
buzzeren = 0;
)

forsinkelse (2000);

)

)

)//================== subrutine LCD indstilling ==========================

void send_config (unsigned char data)
(
RS = 0;
lcd = data;
forsinkelse (500);
e_pulse ();
)

void e_pulse (void)
(
E = 1;
forsinkelse (500);
E = 0;
forsinkelse (500);
)

void send_char (unsigned char data)
(
RS = 1;
lcd = data;
forsinkelse (500);
e_pulse ();
)void lcd_goto (unsigned char data)
(
if (data <16)
(
send_config (0x80 data);
)
anden
(
data = data-20;
send_config (0xC0 data);
)
)void lcd_clr (void)
(
RS = 0;
send_config (0x01);
forsinkelse (600);
)void dis_num (unsigned long data)
(
unsigned char hundred_thousand;
unsigned char ten_thousand;
unsigned char tusinde;
unsigned char hundrede;
unsigned char tiendedel;

hundred_thousand = data/100000;
data = data% 100000;
ten_thousand = data/10000;
data = data% 10000;
tusinde = data / 1000;
data = data% 1000;
hundred = data / 100;
data = data% 100;
tiende = data / 10;
data = data% 10;

if (hundred_thousand> 0)
(
send_char (hundred_thousand 0x30); / / 0x30 tilføjes at blive ASCII-kode
send_char (ten_thousand 0x30);
send_char (tusind 0x30);
send_char (hundred 0x30);
send_char (tiende 0x30);
send_char (data 0x30);
)

else if (ten_thousand> 0)
(
send_char (ten_thousand 0x30); / / 0x30 tilføjes at blive ASCII-kode
send_char (tusind 0x30);
send_char (hundred 0x30);
send_char (tiende 0x30);
send_char (data 0x30);
)
else if (tusind> 0)
(
send_char (tusind 0x30); / / 0x30 tilføjes at blive ASCII-kode
send_char (hundred 0x30);
send_char (tiende 0x30);
send_char (data 0x30);
)
else if (hundred> 0)
(
send_char (hundred 0x30); / / 0x30 tilføjes at blive ASCII-kode
send_char (tiende 0x30);
send_char (data 0x30);
)
else if (tiende> 0)
(
send_char (tiende 0x30); / / 0x30 tilføjes at blive ASCII-kode
send_char (data 0x30);
)
else send_char (data 0x30); / / 0x30 tilføjes at blive ASCII-kode
)

void increment (unsigned long data)
(
unsigned short j;
for (j = 10; j> 0; j -)
(Lcd_goto (32);
data = data 1;
dis_num (data);
forsinkelse (10000);
)

)

//================== subroutine ADC =========================

void read_adc (void)
(
unsigned short i;
unsigned long result_temp = 0;
for (i = 2000; i> 0; i-= 1) / / looping 2000 gange for at få den gennemsnitlige værdi
(
ADGO = 1; / / ADGO er den smule 2 ADCON0 register
while (ADGO == 1) / / ADC start, ADGO = 0 efter finish ADC fremskridt
result = ADRESH;
resultat = resultat <<8; / / skift til venstre for 8 bit
resultat = resultat | ADRESL; / / 10 bit skyldes ADC

result_temp = result;
)
result = result_temp/2000; / / at få den gennemsnitlige værdi

)

unsigned short read_temp (void)
(
unsigned short temp;
temp = result;
return temp;

)

//================== subroutine DELAY ==========================
void delay (unsigned short i)
(
for (; i> 0; i -);
)

 
Hai immaterielle
Visulaly går igennem, koden ser 90% ok.I første omgang kan du foretage nogle harware kontrol for at bekræfte din harware er ok, og ingen Spænding dråber.når du fodrer 5volts, du har til at få den samme på alle de Vcc punkter.Først fjerne PIC fra stikket, afbryde LCD-pin 2 og 15, og tjekke med et multimeter bekræfte PIN 8 og 19 i IC base for PIC er forbundet med jorden, og du får 5 volt på pin 20.Hvis ikke prøve vejr får du et output på 7.805.Bekræft LCD er ikke har nogen kort.Held og lykke.

 
tak for ur suggestion.Jeg vil det i morgen.
btw, hvorfor jeg har brug for 0.1μF der i hvert jorden?
for filter signalet?hvorfor det er nødvendigt at være 0.1μF?kan bruge en anden værdi?hvordan du kan afgøre det?Tilføjet efter 3 minutter:eek:g for oscillator, hvorfor 30pF bruges?hvad er formålet?
tak

 
jeg teste det allerede, ni fik at mit brød bord fik problemet.men det stadig ikke i orden.når jeg opretter forbindelse mclr til 5V, ledet og fan en vil kun om.hvorfor?er det sensoren kan ikke arbejde ordentligt?
tak

 
Jeg tvivler stærkt på nogle ting galt i din hardware forsamling.Har du tjekke spændinger i den måde, jeg sagde i mit sidste indlæg?Du gjorde ikke komme op med resultaterne.Må denne test, og du kan finde nogle fejl.Held og lykke.

 
Jeg har undersøgt det, og problemet er opstået i breadboard selv.Jeg har kun forsamling den på breadboard først.NW jeg får det rigtigt, 5V.
Problemet nu er sensoren cant forstand varmen.men når jeg fodret den mclr med 5V, førte A og fan A begynder at arbejde.hvad betyder det?
og om den skematiske, hvad er formålet med diode 1N4148 der?koblingsfunktion?hvad betyder det?

 
Den MCLR er trukket til Vcc som standard ved 4K7 modstand og 4.148 dioder i frem bias.Dioden bare osolates de MCLR fra andre sektioner ved hjælp af samme Vcc.De nævnte fejl kan dude til defekt sensor.Prøv at erstatte den samme.Har du noget på LCD?

 
det kan være nyttigt at begynde med grundlæggende PICs, 10F200, 16f54 osv., og bare bruge batterier.

Derefter lærer trin for trin.

du kan bruge USB-stikket, men ikke særlig praktisk for breadboard.

kun LCD behov, 5 volt, kan du bruge en Charge Pump IC (ved hjælp af kondensatorer), da den er lav nuværende kun.

hvis du tror, en PIC kan arbejde på 3,0 volt, 12 eller 15 volt væg adapter er virkelig spild.

forsøge at få en USB-hub, herunder en lille 5 volts væg adapter måske.de er normalt til 1A aktuelle.

den kan arbejde uden computer (bare for at distribuere magten).

 
faktisk er jeg kun blive mørkt blok på 1. række og n'te på 2. række.Jeg prøver at justere kontrast, men de mørke blok kun blive lysere n lysere uden bogstav vises på det

 
Kontroller strømforsyningen til Vcc og GND stifter af LCD.og også se alle andre forbindelser med henvisning til den skematiske.Held og lykke

 
hej!Jeg fik banen fungerer allerede.mange tak for alle ur hjælp.

projektet handler om at måle CPU temperatur.kan nogen GV mig forslaget om, hvad der er temperaturen værdi skal jeg bruge?Ligesom når der faktisk en CPU bliver for varm og behovet for at køle det ned?50C er nok?
tak

 
Jeg hørte i computer fik havn, som leverer 5v, jeg kan bruge denne ritus?

http://www.guvenlikdanismanlik.com

 
efter jeg prøve banen, kan det arbejde.men pin 1 af PIC skal fodres ved 5V, hvorfor?
burde jeg GV modstand mellem det?eller jeg kan tilslutte det?
faktisk, hvad der er den funktion af ben 1?
tak

 

Welcome to EDABoard.com

Sponsor

Back
Top