haster hjelp

I

intan

Guest
Dette er den kretsen i arbeidet med.ment Vdd er lei av 5 V.men når jeg måler den, den bare 3.6.er det normalt?men krets skrånende arbeid.noe galt?
det antas jeg gjøre?
Beklager, men du må logge inn for å vise dette vedlegget

 
Den LM7805 trenger minst 7.5V skal fungere skikkelig.Hvis du har en regulert 5 V forsyning du kan hoppe over LM7805.

 
sjekk ut av dette hjelper.
pin1 av preset2 skal være på
5 v
Pin15 av LCD trenger en gjeldende begrense motstander som 33ohm.

 
kan noen sjekke om kretsen er riktig eller ikke?
Jeg vil eliminere lm7805 del.
Jeg hørte på datamaskinen fikk port som leverer 5 V, jeg kan bruke som Rite?
takk

 
Hai
Gi meg beskjed disse punktene.Visste du monterer den friske, eller det var i arbeid og nå mislyktes?Jeg antar det er en kort noen der som synker spenningen.Bare se på hardware, ser ok.Men fastvaren er også en del av prosjektet.I tilfelle kan du laste opp kort beskrivelse og kodene, kan du ta en titt og prøve å finne noen feil.Hvis maskinvaren har noen shorts, er det ingen vits i å koble en regulert forsyning.Lykke til.

 
utgangspunktet prosjektet bruker pic16f876a, 20mhz, 2 lm35 og LCD.
temperaturen sensed av lm35 alltid vil vises på LCD.
Hvis 1 av temperaturen overstiger 50C, ledet og fan vil på.hvis både temperaturen overstiger 50C, både ledet og fan vil på.
Her er koden jeg finne fra Google.
kan sjekke det for meg
takk#
include <pic.h>

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

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

//============== FUNCTION PTOTOTYPE =========================
void e_pulse (void);
void forsinkelse (unsigned kort 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 lang data);
void økning (unsigned lang data);
void read_adc (void);
unsigned short read_temp (void);

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

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

/ / setting ADCON1 Registrer
ADCON1 = 0b11000101; / / A / D resultatet rett rettferdiggjøres,
/ /
Configure RA2 og RA5 som digital I / O

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

Porta = 0;
PORTB = 0;

mens (1)
(
send_config (0b00000001); / / tømme displayet på LCD
send_config (0b00000010); / / LCD Returner til hjemmesiden
send_config (0b00000110); / / oppføring modus-markøren øke 1
send_config (0b00001100); / / diplay på markøren, og markøren blinker off
send_config (0b00111000); / / funksjon sett

lcd_goto (0); / / markøren starte fra begynnelsen

/ / 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øren gå til 2dre linje av 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 ('=');

mens (1) / / uendelig løkke
(
/ / sensor A
ADCON0 = CHANNEL0; / / CHANNEL1 = 0b10001001
lcd_goto (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Kjø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="Kjø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 A aktiveres bare for *
leda = 1; / / * temperatur større enn 50'C *
ledB = 0; / / * og temperatur B mindre enn 50'C *
Fana = 1; / / *****************************************
fanB = 0;
buzzer = 0;
)

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

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

else if ((tempB <500) & & (tempA <500)) / / ********************************* ********************
(/ / * Alle LED A & LED B, Fan A & Fan B og Buzzer *
ledB = 0; / / * disactivated for temperatur Et mindre enn 50'C *
leda = 0; / / * og temperatur B mindre enn 50'C *
Fana = 0; / / ******************************************** *********
fanB = 0;
buzzer = 0;
)

forsinkelse (2000);

)

)

)//================== subroutine LCD innstillingen ==========================

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);
)
ellers
(
data = data-20;
send_config (0xC0 data);
)
)void lcd_clr (void)
(
RS = 0;
send_config (0x01);
forsinkelse (600);
)void dis_num (unsigned lang data)
(
unsigned char hundred_thousand;
unsigned char ten_thousand;
unsigned char tusen;
unsigned char hundre;
unsigned char tiende;

hundred_thousand = data/100000;
data = data% 100000;
ten_thousand = data/10000;
data = data% 10000;
tusen = data / 1000;
data = data% 1000;
hundre = data / 100;
data = data% 100;
tiende = data / 10;
data = data% 10;

if (hundred_thousand> 0)
(
send_char (hundred_thousand 0x30); / / 0x30 lagt til ASCII-kode
send_char (ten_thousand 0x30);
send_char (tusen 0x30);
send_char (hundre 0x30);
send_char (tiende 0x30);
send_char (data 0x30);
)

else if (ten_thousand> 0)
(
send_char (ten_thousand 0x30); / / 0x30 lagt til ASCII-kode
send_char (tusen 0x30);
send_char (hundre 0x30);
send_char (tiende 0x30);
send_char (data 0x30);
)
else if (tusen> 0)
(
send_char (tusen 0x30); / / 0x30 lagt til ASCII-kode
send_char (hundre 0x30);
send_char (tiende 0x30);
send_char (data 0x30);
)
else if (hundre> 0)
(
send_char (hundre 0x30); / / 0x30 lagt til ASCII-kode
send_char (tiende 0x30);
send_char (data 0x30);
)
else if (tiende> 0)
(
send_char (tiende 0x30); / / 0x30 lagt til ASCII-kode
send_char (data 0x30);
)
else send_char (data 0x30); / / 0x30 lagt til ASCII-kode
)

void økning (unsigned lang 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 ganger for å få gjennomsnittlig verdi
(
ADGO = 1; / / ADGO er bit 2 av ADCON0 register
while (ADGO == 1); / / ADC starten ADGO = 0 etter ferdig ADC fremgang
result = ADRESH;
resultat = resultat <<8; / / skifte til venstre for 8 bit
resultat = resultat | ADRESL; / / 10 bit Resultatet fra ADC

result_temp = resultat;
)
result = result_temp/2000; / / får gjennomsnittlig verdi

)

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

)

//================== subroutine FORSINKELSE ==========================
void forsinkelse (unsigned kort i)
(
for (; i> 0; i -);
)

 
Hai intan
Visulaly går igjennom koden ser 90% ok.Først kan du utføre noen harware sjekker å bekrefte harware er ok og ingen volatge dråpene.når du feed 5volts, må du få det samme på alle Vcc poeng.Først fjerne PIC fra stikkontakt, koble LCD pin 2 og 15, og se med et multimeter bekrefte PIN 8 og 19 av IC base for PIC er koblet til bakken og du får
5 volt på pin 20.Hvis ikke teste vær du får en produksjon på 7.805.Bekreft LCD er ikke å ha noen kort.Lykke til.

 
takk for ur forslaget.Jeg tar det i morgen.
btw, hvorfor jeg trenger 0.1μF det i hvert bakken?
for filter signalet?hvorfor det må være 0.1μF?kan bruke en annen verdi?hvordan du finner den?Lagt etter 3 minutter:eek:g for oscillator, hvorfor 30pF er brukt?Hva er hensikten?
takk

 
jeg teste det allerede, ni fikk mine brød bord fikk problem.men det fortsatt ikke fungerer.når jeg kobler mclr til 5 V, ledet og vifte en bare på.hvorfor?er det sensor cant fungere?
takk

 
Jeg sterkt tvil noen ting feil i maskinvaren forsamlingen.Visste du kontrollere spenninger i måten jeg sa i mitt forrige innlegg?Du
gjorde ikke komme opp med resultatene.Gjøre det test og du kan finne noen feil.Lykke til.

 
Jeg har sjekket det, og problemet er oppstått i breadboard selv.Jeg bare montering på breadboard først.NW jeg riktig, 5 V.
Problemet nå er det sensor skrånende forstand varmen.Men da jeg matet den mclr med 5 V, ledet A og fan A begynne å jobbe.hva betyr det?
og om skjematisk, hva er hensikten med diode 1N4148 der?veksling funksjon?hva betyr det?

 
Den MCLR dras til Vcc som standard av den 4k7 motstander og 4148 diode i fremover bias.Den diode bare osolates den MCLR fra andre deler ved hjelp av samme Vcc.De sa at feilen kan være dude til feil sensor.Prøv å erstatte den samme.Har du noe på LCD?

 
kan det være nyttig å starte med grunnleggende Pics, 10f200, 16f54 etc., og brukte batterier.

deretter lære skritt for skritt.

kan du bruke USB-kontakten, men ikke særlig praktisk for breadboard.

bare LCD behov 5 volt, kan du bruke en belastning pumpen IC (med kondensatorer), siden det er lite strøm bare.

hvis du mener en PIC kan arbeide på 3,0 volt, 12 eller 15 volt veggen adapteren er virkelig wasteful.

prøve å få en USB-hub, inkludert en liten 5 volt veggen adapter kanskje.De er vanligvis for 1A gjeldende.

den kan fungere uten datamaskin (bare for å distribuere kraft).

 
faktisk er jeg bare få mørk blokk på 1ste rad og NTH på
2. rad.Jeg prøver å justere kontrast, men mørk blokkere bare bli lettere n lysere uten bokstaven vises på den

 
Sjekk strømforsyningen til Vcc og GND pins av LCD.og for alle andre forbindelser med referanse til den skjematiske.Lykke til

 
hei!Jeg har kretsen arbeider allerede.Tusen takk for all ur hjelpe.

Prosjektet handler om å måle CPU-temperatur.Kan noen gv meg forslag hva temperaturen skal jeg bruke?Som når faktisk en CPU bli for varm og behovet for å avkjøle det ned?50C er nok?
takk

 
Jeg hørte på datamaskinen fikk port som leverer 5 V, jeg kan bruke som Rite?

http://www.guvenlikdanismanlik.com

 
etter at jeg teste krets, kan det fungere.men pin 1 av PIC må mates med 5 V, hvorfor?
bør jeg gv motstand mellom det?eller jeg kan direkte koble det?
egentlig hva som er funksjonen til pin 1?
takk

 

Welcome to EDABoard.com

Sponsor

Back
Top