Ionut Stoica

Programator PHP / Frontend developer / Pasionat de Electronica Auto
14Nov

Atmel – Calcul rezistenta prin intermediul ADC (Atmega8/48/88/16/168)

Acum ceva timp aveam nevoie sa calculez temperatura la care era supus un Termistor prin intermediul unui divizor rezistiv.O solutie simpla este folosirea unui rezistor de balansare.
Principiul este simplu. Se alege un rezistor de valoare apropiata cu termistorul care urmeaza sa faca masurarea si in functie de valoarea citita de ADC se calculeaza valoarea rezistentei.
Recomand folosirea ADC-ului cu referinta AVCC pentru a putea avea aceiasi referinta cu alimentarea senzorilor (daca folositi referinta interna de 1.1V spre exemplu, trebuie sa aveti si alimentare de 1.1V pentru senzori).

Rezistenta de balans se conecteaza intre pinul ADC si GND, pentru a putea stii cand termistorul nu este conectat sau este ars (asta ca sa evitam erorile de afisare), iar termistorul se leaga intre pinul ADC si tensiunea de referinta.

Ok, gata cu teoria, sa trecem la practica.

Formula de calcul este destul de simpla:
Rezistenta = adc_RES * balance_R / adc_READ - balance_R
Rezistenta = rezistenta in Ohm a termistorului la un moment dat.
adc_RES = rezolutia ADC (1024 in cazul uC-urilor din titlu).
balance_R = valoarea in Ohm a rezistentei de balans (10000 in cazul meu).
adc_READ = valoarea citita pe pinul ADC, in functie de limbajul de programare folosit, aceasta valoare se obtine diferit.

In curand voi reveni si cu un cod C++(AVR Studio) si cod VB (Bascom) pentru aceasta aplicatie, si poate si cu ceva poze cu circuitul de test :d

 

Comments(0)

Leave a comment

Your email address will not be published.Field is required

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 Previous  All works Next