Svetelektro.com

Svetelektro.com

Meno:
Heslo:
SVETELEKTRO • AVR, nestabiln├ş AREF

AVR, nestabiln├ş AREF

V┼íetko ─Źo sa t├Żka mikropo─Ź├şta─Źov + Sekcia Arduino

Moderátori: psichac, Moderátori

AVR, nestabiln├ş AREF

Odosla┼ąod DanielK » 14 Sep 2019, 12:53

Ahoj
M├ím probl├ęm s nestabiln├şm nap─Ťt├şm z nap─Ť┼ąov├ę reference tl431 na pinu AREF viz obr├ízek
M─Ť┼Ö├şm nap─Ťt├ş na teplotn├şm ─Źidlu lm35 a hodnota vypadala sp├ş┼í jako TIP sprot, a i po zpr┼»m─Ťrov├ín├ş 64 hodnot je v├Żstupn├ş hodnota s rozkmitem cca 20mV.

M├í n─Ťkdo tu┼íen├ş kde d─Ťl├ím chybu?

K├│d: Vybra┼ą v┼íetko
// ATMEGA 8A
#define F_CPU 1000000
#include <avr/io.h>
#include <util/delay.h> 
#include <avr/interrupt.h>
#include <stdlib.h> 
#include <stdio.h> 
#include "lcd.h"


char text[32] = {0,}; // LCD

volatile uint8_t count= 0;

volatile uint8_t countADC= 0;

void zmer(uint16_t pole[]);// zm─Ť┼Ö├ş 5 hodnot a vr├ít├ş je v poli

uint16_t val[6];// pole pro v├Żsledky m─Ť┼Öen├ş


void zmer(uint16_t pole[]){

   char i;

   for(i=0;i<5;i++){

      ADMUX = i;// nastaven├ş m─Ť┼Öen├ęho kan├ílu

      ADCSRA |= (1<<ADSC);// spustit p┼Öevod

      while(ADCSRA & (1<<ADSC)){}// ─Źekej dokud je ADSC=1 (prob├şh├í p┼Öevod)

      pole[i] = ADC;// ulo┼ż v├Żsledek p┼Öevodu
   }
}



unsigned long int prumer( int*pole, int delka ){

   unsigned long int sum = 0, x = 0;

   for( x = 0; x < delka; x++ ){

      sum += pole[x];
   }
   
   return sum/delka;
}




int main (void) {

   DDRB = 0b11111111; // set IO

   DDRD = 0b11011111; // set IO

   PORTD |= (1 << PD5); // pull up

   TCNT0 = 0;

   TCCR0 |= (1<<CS01); // PRESCALER 8

   TIMSK = (1<<TOIE0); //Timer/Counter0 Overflow Interrupt Enable

   ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1); // povolit ADC, clock pro ADC F_CPU/64

   lcd_init(LCD_DISP_ON); //inicializace LCD

   int temp = 0; // hodnota teploty v mV

   char x =0; // po─Źet ulo┼żen├Żch hodnot

   unsigned int hodnoty[64] = {0,};

   sei(); // povolen├ş glob├íln├şho p┼Öeru┼íen├ş

   while(1){
      
      if(count > 3){ // 6us, doba z├íknit┼» tla─Ź├ştka
      
      PORTD ^= (1 << PD0);  // Invert   
      }
   
      zmer(val);

      hodnoty[x] = val[4] * 2.3763; // U REF = 2.4312

      x++;
      
      if ( x == 64 ){

         temp = prumer( hodnoty, 64 );       
         
         lcd_clrscr();

         sprintf(text,"TEMP=%d",temp);

         lcd_puts(text);

         lcd_gotoxy(0,0);
      
            
         x = 0;
      }

   }

}



ISR (TIMER0_OVF_vect){ // 2048 us

   if((PIND & (1 << PD5)) == 0){

      if(count<200)

      count++;
   
      if(count==254)   

      PORTB |= (1 << PB2);  // rele_off
      }
   else{   

      count=0;
      }
}
Pr├şlohy
DS1Z_QuickPrint17.png
schema.png
2. ro─Źn├şk ┼áSSI T├íbor, Ubuntu, Rock Metal, ┼ákoda Octavia RS TSI
DanielK
St├íly ─Źlen
St├íly ─Źlen
Pr├şspevky: 137
Zalo┼żen├Ż: 28.02.2015
Karma: 0

Re: AVR, nestabiln├ş AREF

Odosla┼ąod lucky62 » 14 Sep 2019, 13:06

T├í p├şla na obr├ízku je nameran├í kde? Na tom TL431?...
....m├┤j bazar....

...Nikdy sa nehádaj s blbcom...
lucky62
Obr├ízok pou┼ż├şvate─ża
Zasl├║┼żil├Ż ─Źlen
Zasl├║┼żil├Ż ─Źlen
Pr├şspevky: 1063
Zalo┼żen├Ż: 14.02.2012
Bydlisko: Liptovsk├Ż Mikul├í┼í, SK
Karma: 9

Re: AVR, nestabiln├ş AREF

Odosla┼ąod zdeno6505 » 14 Sep 2019, 13:15

Sk├║s vyhodi┼ą C 100n medzi A a C TL431.
Amat├ęri postavili Noemovu archu, profesion├íli Titanic.
zdeno6505
Zasl├║┼żil├Ż ─Źlen
Zasl├║┼żil├Ż ─Źlen
Pr├şspevky: 1125
Zalo┼żen├Ż: 04.08.2010
Bydlisko: TO

Re: AVR, nestabiln├ş AREF

Odosla┼ąod DanielK » 14 Sep 2019, 13:24

Super, po odstranen├ş C7 je to p─Ťkn─Ť stabiln├ş. D├şky za pomoc.
2. ro─Źn├şk ┼áSSI T├íbor, Ubuntu, Rock Metal, ┼ákoda Octavia RS TSI
DanielK
St├íly ─Źlen
St├íly ─Źlen
Pr├şspevky: 137
Zalo┼żen├Ż: 28.02.2015
Karma: 0


Nasp├Ą┼ą na Mikropo─Ź├şta─Źe

Kto je pr├ştomn├Ż

U┼ż├şvatelia prezeraj├║ci si toto f├│rum: ┼Żiadny registrovan├Ż pou┼ż├şvate─ż a 2 host├ş.

Forums ©
Autor str├ínky je Ondrej Z├ívodsk├Ż(zawin), o graficky design sa star├í ─Żubo┼í Fabo(BUFU).

TOPlist

Powered by Copyright © UNITED-NUKE CMS. All Rights Reserved.
─îas potrebn├Ż k spracovaniu str├ínky 0.25 sek├║nd