Sari la conținut
ELFORUM - Forumul electronistilor

Problema pic18f452 ADC si Serial in mikroC....


Vizitator yaps

Postări Recomandate

Vizitator yaps

Incerc sa fac un controller de incarcare.

probleme ADC si serial in mikroC. in simulare in Proteus totul merge bine si frumos, dar pe placa probleme.

la inceput trimitea ceva pe tetrminal, acuma nu mai vrea. si crec ca nici adc-ul nu functioneaza cum trebuie.

 

Codul folosit:

 

>unsigned  load_read;//citire valoare consumator AN0unsigned  batt_read;//citire valoare baterie     AN1unsigned  celula_read;//citire  valoare celula      AN2unsigned char buffer1[7];unsigned char buffer2[7];unsigned char buffer3[7];int i,j,k;/** citire valori ADC ale componentelor** @param void* @return void*/void usart(){  load_read = ADC_Read(0);  //Delay_ms(10);  celula_read = ADC_Read(1); // Delay_ms(10);  batt_read = ADC_Read(2); // Delay_ms(10);    FloatToStr((load_read*0.0048),buffer1); //converteste valoarea din float in string    ByteToStr((celula_read*0.0048)/0.25,buffer2);     //Float    FloatToStr((batt_read*0.0048)/0.25,buffer3);    UART1_Write_Text(" TConsumator: ");    UART1_Write_Text(buffer1);    UART1_Write_Text(" TPanou: ");    UART1_Write_Text(buffer2);    UART1_Write_Text(" TBaterie: ");    UART1_Write_Text(buffer3);}void citire(){   if((celula_read < 400 ||celula_read==0) && (load_read!=0))// comutare pe baterie,lumina prea slaba //  462-9V, 400-7.7V   {    //open tranzistor RB2 //comutare load pe baterie  cand e intuneric        RB2    PORTB.RB2=0; //activare tranzistor   }   else//lumina buna    if((celula_read > 400) && (load_read==0))// daca e lumina suficienta incarc bateria.    {                 PORTB.RB2=1;//inchid alimentarea de la baterie                 PORTB.RB1=0; //activare tranzistor bipolar pentru alimentare  baterie de la panoul solar                //open tranzistor 1   --RB1   }   else if((celula_read > 400) && (load_read > 0)) //apare o cerere de la consumator, si este lumina,        {                                               //alimentez consumatorul de la panou.         //open tranzistor 1 -- load  RB0         PORTB.RB0=1; //activare tranzistor        }}void main() {  UART1_Init(19200); Delay_ms(100); INTCON=0;// disable interrupts  //ADCON1 = 0x;//0x82//configurez valorile analogice si Vref=5V(VDD) TRISA  = 0b00000111;           //port A intrare : AN<0:2> TRISB =0x00;// port B iesire                  //RB0-sursa-load,RB1-sursa-baterie,RB2-baterie-load PORTB.RB0=1; PORTB.RB1=1;//on bipolar off mosfet PORTB.RB2=1; do {          PORTB.RB2=0; //on mosfet/off bipolar  stare initiala alimentare consumator din baterie         // Delay_ms(50);           //PORTB.RB3=0; led usart verificare          usart();         // PORTB.RB3=1;          UART1_Write('\r\n');          Delay_ms(500);          citire();          Delay_ms(300); } while (1);}/// PORTB.RB0-1-2 = 0 -->> tranzistor bipolar off -->> mosfet on - trece curent de la x la y/// PORTB.RB0-1-2 = 1 -->> tranzistor bipolar on -->> mosfet off - nu trece curent de la x la y

 

 

tnx

Link spre comentariu
  • Răspunsuri 0
  • Creat
  • Ultimul Răspuns

Zile populare

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări