Veer
Vce=Vcb+Vbe; Vbe=0.7V; Vs=IcRc+Vcb+IbRb2; Vs=Vc+Vce+Ve:P
Hallo,
ik heb een sensor, deze sluit ik aan op de ADC converter van een microcontroller en wil vanuit hier verder rekenen om het vervolgens op een LCD scherm te laten zien. Maar de sensor geeft in plaats van een lineaire gelijkspanning een lineaire wisselspanning.
Het is een stroommeter van het merk CSLA2CF datasheet:
http://www.farnell.com/datasheets/91979.pdf
Ik programmeer in C
#include<etc> // div. include files
#define VCC 5
unsigned int x, l=0;
double y, i;
#define lcdcommand(d) (lcdwrite((d),PORTB&0xFE)); // rs laag
#define lcdputc(d) (lcdwrite((d),PORTB|0x01)); // RS hoog
void lcdwrite(etc)
{
etc
}
void initlcd(void)
{
etc
}
void nog_wat_onzin(etc)
{
etc
}
int main(void)
{
initlcd(); // initialiseren lcd
// initialiseren LCD
ADMUX = 0x05| // ADC geselecteerd
_BV(REFS0); // interne VCC geselecteerd
ADCSRA = _BV(ADPS1)|_BV(ADPS0)| // prescaling 8 (F_CPU=1MHz), geen interrupt
_BV(ADEN)|_BV(ADATE); // enable adc, auto trigger (free running)
SFIOR &= ~(_BV(ADTS2)|_BV(ADTS1)|_BV(ADTS0));
ADCSRA |= _BV(ADSC); // first conversion
while(1)
{
x = ADCL | ((unsigned int) ADCH << 8); // resultaat
y = ((double) ((double) x* VCC) / 1024); // ADC formule
i = (double) (y-1,2) / (4/12); // verder rekenen met ADC output
}
lcdputc('I'); // schrijf tekst
lcdputc(' ');
lcdputc('=');
lcdputc(' ');
lcdputc(i);
lcdputc(' ');
lcdputc('m');
lcdputc('A');
}
is ongeveer wat ik nu heb, maar dit is bedoeld voor gelijkspanning. Heeft iemand een idee hoe ik dit op kan lossen?
Alvast bedankt.
[Bericht gewijzigd door Henry S. op (0%)]