Атмега328P Термо-сенсор, есть он в нем или нет ?
- Ariadna-on-Line
- Это не хвост, это антенна
- Сообщения: 1479
- Зарегистрирован: Вс май 13, 2012 00:01:54
Атмега328P Термо-сенсор, есть он в нем или нет ?
Пробовал читать - возвращается чистый ноль. В даташите написано что сенсор есть во всех 328. Но в форумах - информация противоречивая. Пробовал читать в АТтини85 - там читается и работает вполне нормально. Хотелось бы прояснить тему. С уважением.
Re: Атмега328P Термо-сенсор, есть он в нем или нет ?
У меня нет mega328P, а mega48PA с таким кодом (Aref=AVcc=3V) работает.
Верхняя часть картинки камень накрыт полиэтиленовым пакетом со снегом. Нижняя часть - камень подогрет паяльником (без энтузиазма). EM08 и N4190 служебная информация.
Спойлер
Код: Выделить всё
; LDI R16,1<<REFS1|1<<REFS0|1<<ADLAR|1<<MUX3; Aref=1,1V ADC8 смещение
LDI R16,0<<REFS1|1<<REFS0|0<<ADLAR|1<<MUX3; Aref=AVcc ADC8 без смещения
STS ADMUX,R16
; LDI R16,1<<ADEN|1<<ADSC|1<<ADIF|1<<ADIE|1<<ADPS2|1<<ADPS1|1<<ADPS0
LDI R16,1<<ADEN|1<<ADSC|1<<ADIF|1<<ADPS2|1<<ADPS1|1<<ADPS0
STS ADCSRA,R16
;*****
WAIT_ADSC:
LDS R16,ADCSRA
SBRC R16,ADSC
RJMP WAIT_ADSC
;*****
LDS R12,ADCL
LDS R11,ADCH
CLR R10Спойлер
- Вложения
-
- ATmega48PA_Temperature.PNG
- (9.89 КБ) 239 скачиваний
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1902
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: Атмега328P Термо-сенсор, есть он в нем или нет ?
Сохранил код ниже как тестовой. По идее имеет" кривые " значения - температура зависит от нагрузки МК и самонагревания.
Для использования уточните свой offset - работа напр. 5-7 минут -> разницу между калиброванным термометром.
Можете не использовать float, напр. умножите на 100.
Для использования уточните свой offset - работа напр. 5-7 минут -> разницу между калиброванным термометром.
Можете не использовать 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);
}
Последний раз редактировалось veso74 Вс дек 28, 2025 12:03:47, всего редактировалось 1 раз.
Re: Атмега328P Термо-сенсор, есть он в нем или нет ?
Атмега328P Термо-сенсор, есть он в нем или нет ?
есть.
достаточно переключить мультиплексор...

другой вопрос что там точность никакая...

с такой точностью Термо-сенсор имеет мало пользы))
есть.
достаточно переключить мультиплексор...
другой вопрос что там точность никакая...
с такой точностью Термо-сенсор имеет мало пользы))
- Вложения
-
- Screenshot_5.jpg
- (30.79 КБ) 198 скачиваний
-
- Screenshot_4.jpg
- (86.14 КБ) 190 скачиваний
- Ariadna-on-Line
- Это не хвост, это антенна
- Сообщения: 1479
- Зарегистрирован: Вс май 13, 2012 00:01:54
Re: Атмега328P Термо-сенсор, есть он в нем или нет ?
Оказалось что сенсор-таки есть. Определённость -это главное. Даёт отсчеты в пределах 350 - 365 единиц. На нагрев-охлаждение реагирует. Больше его насиловать не хотелось. Достаточно и этого. Заморочка была с целочисленной "арихметикой", а плавающую вводить не хочется. Короче тема исчерпана. Всем спасибо.