domingo, 29 de janeiro de 2012

Termômetro Interno no Arduino

O pessoal da comunidade brasileira do Arduino descobriu na última semana que existe um termometro interno no ATMega328. O termometro pode ser iniciado através da programação abaixo:



long readTemp() {

  long result;
  // Read temperature sensor against 1.1V reference
  ADMUX = _BV(REFS1) | _BV(REFS0) | _BV(MUX3);
  delay(2); // Wait for Vref to settle
  ADCSRA |= _BV(ADSC); // Convert
  while (bit_is_set(ADCSRA,ADSC));
  result = ADCL;
  result |= ADCH<<8;
  result = (result - 125) * 1075;
  return result;
}

void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.println( readTemp(), DEC );
  delay(1000);
}


obs: O valor é dado em millis, 25000 equivale a 25 graus Celsius.

referencia:
http://code.google.com/p/tinkerit/wiki/SecretThermometer


Nenhum comentário:

Postar um comentário