www.kn34pc.com

Форум на силистренските радиолюбители
Дата и час: 11 Фев 2026, 02:41

Часовете са според зоната UTC + 2 часа




Напиши нова тема Отговори на тема  [ 1 мнение ] 
Автор Съобщение
МнениеПубликувано на: 28 Дек 2025, 12:00 
Offline
Аватар

Регистриран на: 07 Дек 2006, 17:24
Мнения: 1636
Местоположение: Силистра
Запазил съм си кода като тест.
Измерването дава "криви" стойности – температурата зависи от натоварването на микроконтролера и самозагряването.
Приложение: напр. за анализ на състоянието на устройството "под капака" или друго не прецизно измерване.

offset: разлика между измерената стойност и температура от калибриран термометър, да се въведе напр. след 5-10 минути работа
Ако float не бива да се използва, напр. умножаваме по 100, с целочислени променливи и константи.

Код за потвърждение:
void setup() {
  Serial.begin(9600);

  ADMUX = (1 << REFS1) | (1 << REFS0) | (1 << MUX3);
  ADCSRA |= (1 << ADEN);
}

void loop() {
  ADCSRA |= (1 << ADSC);
  while (ADCSRA & (1 << ADSC));

  int raw = ADCW;

  float temperature = (raw - 324.31) / 1.22;

  float offset = 4.9;
  temperature = temperature + offset;

  Serial.print("Raw ADC: ");
  Serial.print(raw);
  Serial.print("  Temp: ");
  Serial.print(temperature);
  Serial.println(" oC");

  delay(1000);
}


Върнете се в началото
 Профил  
 
Покажи мненията от миналия:  Сортирай по  
Напиши нова тема Отговори на тема  [ 1 мнение ] 

Часовете са според зоната UTC + 2 часа


Кой е на линия

Потребители, разглеждащи този форум: 0 регистрирани и 2 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
cron
Форумът се задвижва от phpBB® Forum Software © phpBB Group
Преведено от yarnaudov.com