Gå til innhold

Hva betyr disse tallene?


Anbefalte innlegg

Skrevet
#include <dev/board.h>
#include <stdio.h>
#include <sys/timer.h>
 
int main(void)
{
 unsigned long baud = 9600;
 unsigned char les; 
 float temp;
 char fortegn;
 
 
 
 NutRegisterDevice(&DEV_UART, 0, 0);
 freopen(DEV_UART_NAME, "w", stdout);
 freopen(DEV_UART_NAME, "r", stdin);
 _ioctl(_fileno(stdout), UART_SETSPEED, &baud);
 ADMUX = (1 << REFS0) | (1 << ADLAR) | (1 << MUX0);
 
 while(1) {
 ADCSRA = (1 << ADEN) | (1 << ADSC) | (1 << ADIF) | (1 << ADPS2); 
 while (!(ADCSRA & 0x10))
 ;
 les = ADCH; 
 temp =(((les * 80.0)/255 ) - 30.0);
 if (temp < 0.0)
 fortegn= ' ';
 else fortegn= '+';
 
 printf("\nAvlest verdi = %d som er temp %c%2.1f grader", les, fortegn, temp );
 
 NutSleep(800);
 }
 
 return 0;
}

Dette er en temperatur måler program.

 

jeg lurer på hvilken formel det er som er brukt her, og hva indikerer disse tallene?

 

temp =(((les * 80.0)/255 ) - 30.0);

Videoannonse
Annonse
Skrevet

Formelen er for lineær skalering med offset

 

hvordan ser den ut? Jeg lurer på tallet 80 og 30 er? hvor kommer det fra?

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...