Operácie

CADRS Cvičenie 11: Rozdiel medzi revíziami

Z SensorWiki

(NTC termistor)
 
(22 medziľahlých úprav od rovnakého používateľa nie je zobrazených.)
Riadok 5: Riadok 5:
 
Literatúra:
 
Literatúra:
  
* [[http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=56429] Newbie's Guide to AVR A/D Converter]
+
* [http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=56429 Newbie's Guide to AVR A/D Converter]
 +
* [http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=45341 Using the USART with AVR-GCC]
 +
* [http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=48188 Interrupt driven USARTs]
 +
* Ako používať USART: [[AVR Serial.c|knižnica a príklady...]]
 +
 
  
  
Riadok 15: Riadok 19:
 
Procesor je nakonfigurovaný na prácu s externým kryštálovým oscilátorom 18,432 MHz (fuses).
 
Procesor je nakonfigurovaný na prácu s externým kryštálovým oscilátorom 18,432 MHz (fuses).
 
Demonštračný program je tuto: [[Médiá:MexleTest2.hex|mexletest2.hex]]
 
Demonštračný program je tuto: [[Médiá:MexleTest2.hex|mexletest2.hex]]
 +
 +
 +
=== USART ===
 +
 +
 +
Nebudeme sa zaoberať detailmi implementácie sériového komunikačného rozhrania procesorov
 +
AVR, pre naše účely postačí jednoduchá knižnica, ktorá obsahuje základné funkcie odladené
 +
pre dosku MiniMEXLE s procesorom ATmega88 a oscilátorom 18,432 MHz.
 +
Máte k dispozícii jednoduchú knižnicu pre prácu so sériovou linkou na procesore
 +
ATmega88, stiahnite a pozrite si [[AVR Serial.c|príklady...]]
 +
 +
Parametre prenosu pre túto knižnicu sú 9600,n,8,1.
 +
 +
Na prácu so sériovou linkou na vašom PC odporúčame program Terminal by Bray, ale môžete
 +
to skúsiť aj s Hyperterminálom.
 +
 +
* [http://braypp.googlepages.com/terminal Terminal by Bray] ([http://braypp.googlepages.com/Terminal20080315.zip download])
 +
 +
Keby niekoho zaujímalo, ako je realizovaný prevod TTL úrovní na RS-232, tak tu je
 +
[[Media:232Converter.png|schéma zapojenia]], ktorá vychádza z [http://www.kmitl.ac.th/~kswichit/ap275/ap275.htm tohoto návodu].
  
 
=== A/D prevodník ===
 
=== A/D prevodník ===
  
 +
Pre nameranú hodnotu N platí vzťah
  
 +
<math>
 +
            U_{in} = \frac{N U_{ref}}{1024}
 +
</math>
  
 +
Vstupy A/D prevodníka na MiniMEXLE doske sú zapojené takto:
  
 +
Kanál      MUX3:0    signál
 +
--------------------------------------------------------------
 +
ADC 0 - 3            nepoužívame
 +
ADC 4        0100    konektor X2, pravý kanál, Termistor NTC
 +
ADC 5        0101    konektor X2, ľavý kanál, dióda LED2
 +
ADC 6 - 7            nepoužívame
 +
Vref        1110    vnútorná referencia 1,1 V
 +
GND          1111    vnútorná zem 0 V
  
  
 +
Ako zdroj referenčného napätia použijeme priamo napájacie napätie 5V oddelené tlmivkou a filtrované paralelným kondenzátorom 100n. Zodpovedajúce bity REFS1, REFS0 v registri ADMUX sú teda 01.
  
Príklad: [[AVR ExamplePWMgenerator.c]]
+
Zdroj hodinového signálu pre A/D prevodník musí byť v rozsahu 50 až 200 kHz, preto volíme preddeličku 128.  
  
 +
Príklad najjednoduchšieho SW ovládaného A/D prevodu je uvedená v tomto príklade - pozri [[AVR A/D example.c]]
  
'''Úloha'''
+
=== Vizualizácia ===
  
 +
Vizualizáciu dát môžeme robiť rozlične. Jeden z možných spôsobov je vypisovať
 +
po sériovej linke v pravidelných intervaloch holé data a tie potom uložiť ako
 +
maticu do Matlabu a tam nakresliť graf, priebeh, čo treba...
 +
 +
Iná možnosť je použiť napr. program StampPlot, ktorý kreslí prichádzajúce data
 +
priamo ako graf, s výnimkou reťazcov, ktoré začínajú znakom '!', tie považuje za
 +
konfiguračné príkazy.
 +
 +
Download: [http://www.selmaware.com/stampplotlite/StampPlotLite_V17.zip StampPlotLite1.7]
 +
 +
Príklad: [[AVR StampPlotExample.c]]
 +
Manual: [[Stamp Plot Manual]]
 +
 +
 +
 +
== NTC termistor ==
 +
 +
Na doske je použitý typ NTC od firmy Vishay (Catalog-Number: 2381 640 63472)
 +
R25 = 4700 Ohm ± 5 % ; B25/85 = 3977 K ± 0,75 %
 +
 +
* [http://mexlewiki.hs-heilbronn.de/UserFiles/File/Thermometer/NTC-Kennlinie.pdf Prevodová charakteristika senzora]
 +
 +
 +
<math>
 +
    T(R) = \left( \frac{1}{\frac{1}{B} \ln (\frac{R}{R_{25}}) + \frac{1}{T_{N} + 273 K}} \right) - 273 K
 +
</math>
 +
 +
[[Image:MiniMexleNTC.png|center|thumb|476px|Pripojenie termistora na doske MiniMEXLE.]]
 +
 +
 +
 +
 +
=== Úlohy ===
 +
 +
 +
# Nahrajte si knižnice pre prácu so sériovou linkou, preštudujte využitie knižnice <stdio.h> a demonštrujte.
 +
# Doplňte program o jednoduchý A/D prevod a zobrazte hodnotu z termistora na doske MiniMEXLE.
 +
# Overte prevod A-D prevodníka meraním vnútornej referencie 1,1 V
 +
# Upravte program pre A-D prevod tak, aby v pracoval autonómne s periódou vzorkovania 100ms.
 +
# Oboznámte sa s programom StampPlot a zobrazte časový priebeh teploty z termistora.
 
# Vyhodnotením prechodového deja identifikujte veľkosť kondenzátora vo výstupnom filtri.
 
# Vyhodnotením prechodového deja identifikujte veľkosť kondenzátora vo výstupnom filtri.
# Navrhnite vhodnú frekvenciu PWM a demonštrujte.
+
 
 +
 
 +
 
 +
=== Download ===
 +
 +
 
 +
[[Obrázok:Icon_Terminal.png]] [http://braypp.googlepages.com/Terminal20080315.zip Terminal 1.9b]
 +
 
 +
[[Obrázok:Icon_StampPlotLite.png]] [http://www.selmaware.com/stampplotlite/StampPlotLite_V17.zip StampPlot Lite 1.7]
 +
 
 +
 
  
  

Aktuálna revízia z 13:15, 3. december 2008

MexleBanner.png

A/D prevodník a vizualizácia pomocou UART

Literatúra:


Rekapitulácia

Máte k dispozícii vývojovú dosku MiniMEXLE (popis,schéma zapojenia) a s procesorom ATmega88 (datasheet) a prípadne aj testovací program mexletest2.hex.

V tejto úlohe sa predpokladá znalosť funkcie A/D prevodníka z prednášky (datasheet, str. 87 -- 115). Procesor je nakonfigurovaný na prácu s externým kryštálovým oscilátorom 18,432 MHz (fuses). Demonštračný program je tuto: mexletest2.hex


USART

Nebudeme sa zaoberať detailmi implementácie sériového komunikačného rozhrania procesorov AVR, pre naše účely postačí jednoduchá knižnica, ktorá obsahuje základné funkcie odladené pre dosku MiniMEXLE s procesorom ATmega88 a oscilátorom 18,432 MHz. Máte k dispozícii jednoduchú knižnicu pre prácu so sériovou linkou na procesore ATmega88, stiahnite a pozrite si príklady...

Parametre prenosu pre túto knižnicu sú 9600,n,8,1.

Na prácu so sériovou linkou na vašom PC odporúčame program Terminal by Bray, ale môžete to skúsiť aj s Hyperterminálom.

Keby niekoho zaujímalo, ako je realizovaný prevod TTL úrovní na RS-232, tak tu je schéma zapojenia, ktorá vychádza z tohoto návodu.

A/D prevodník

Pre nameranú hodnotu N platí vzťah


             U_{in} = \frac{N U_{ref}}{1024}

Vstupy A/D prevodníka na MiniMEXLE doske sú zapojené takto:

Kanál       MUX3:0    signál
--------------------------------------------------------------
ADC 0 - 3             nepoužívame
ADC 4        0100     konektor X2, pravý kanál, Termistor NTC
ADC 5        0101     konektor X2, ľavý kanál, dióda LED2
ADC 6 - 7             nepoužívame
Vref         1110     vnútorná referencia 1,1 V
GND          1111     vnútorná zem 0 V


Ako zdroj referenčného napätia použijeme priamo napájacie napätie 5V oddelené tlmivkou a filtrované paralelným kondenzátorom 100n. Zodpovedajúce bity REFS1, REFS0 v registri ADMUX sú teda 01.

Zdroj hodinového signálu pre A/D prevodník musí byť v rozsahu 50 až 200 kHz, preto volíme preddeličku 128.

Príklad najjednoduchšieho SW ovládaného A/D prevodu je uvedená v tomto príklade - pozri AVR A/D example.c

Vizualizácia

Vizualizáciu dát môžeme robiť rozlične. Jeden z možných spôsobov je vypisovať po sériovej linke v pravidelných intervaloch holé data a tie potom uložiť ako maticu do Matlabu a tam nakresliť graf, priebeh, čo treba...

Iná možnosť je použiť napr. program StampPlot, ktorý kreslí prichádzajúce data priamo ako graf, s výnimkou reťazcov, ktoré začínajú znakom '!', tie považuje za konfiguračné príkazy.

Download: StampPlotLite1.7

Príklad: AVR StampPlotExample.c Manual: Stamp Plot Manual


NTC termistor

Na doske je použitý typ NTC od firmy Vishay (Catalog-Number: 2381 640 63472) R25 = 4700 Ohm ± 5 % ; B25/85 = 3977 K ± 0,75 %



     T(R) = \left( \frac{1}{\frac{1}{B} \ln (\frac{R}{R_{25}}) + \frac{1}{T_{N} + 273 K}} \right) - 273 K

Pripojenie termistora na doske MiniMEXLE.



Úlohy

  1. Nahrajte si knižnice pre prácu so sériovou linkou, preštudujte využitie knižnice <stdio.h> a demonštrujte.
  2. Doplňte program o jednoduchý A/D prevod a zobrazte hodnotu z termistora na doske MiniMEXLE.
  3. Overte prevod A-D prevodníka meraním vnútornej referencie 1,1 V
  4. Upravte program pre A-D prevod tak, aby v pracoval autonómne s periódou vzorkovania 100ms.
  5. Oboznámte sa s programom StampPlot a zobrazte časový priebeh teploty z termistora.
  6. Vyhodnotením prechodového deja identifikujte veľkosť kondenzátora vo výstupnom filtri.


Download

Icon Terminal.png Terminal 1.9b

Icon StampPlotLite.png StampPlot Lite 1.7



Návrat na zoznam cvičení...