PWM lähdön ohjaus 8bittisenä (OCR2)

ATmega piireissä on PWM lähtöjä joita voi ohjata ohjelmallisesti.
OCR2 = Output Compere Register 2 on 8Bittinen, jolloin säätöalue muuttujalla on 0-255. OCR2 arvolla 0 PWM on 0% ja 255 tasolla on 100% PWM suhde.

Ohjelmassa voidaan määritellä kellojakajaa joka määrittää PWM lähtötaajuuden suuruuden.
TCCR2 rekisterissä voidaan määritellä jakajan ja toiminteen miten lähtönasta toimii.

TCCR2=0x61; //vaihekorjattu PWM ja jakaja on 1

 

Viive komento

Ohjelmaan tarvitaan monesti lyhyitä viiveitä jolla voidaan stabiloida tai ajastaa tiettyjä toimintoja.

Atmel Studiolla voidaan asettaa viive seuraavasti:
_delay_ms(4000); // asettaa 4s viiveen ohjelmassa

Codevisionila viive asetetaan seuraavalla komennolla:
delay_ms(4000); //asettaa 4s viiveen ohjelmassa

Kellotaajuuden määrittäminen ohjelmaan

delay komento tarvitsee tiedon millä toimintataajudella mikro-ohjain toimii, jotta viive on oikean pituinen.

Mikro-ohjaimessa voi käyttää ulkoista tai sisästä kellotaajuutta, ulkoisessa asetuksessa tarvitaan joko kide tai resonaattori, joka tuottaa mikro-ohjaimelle toimintataajuuden.

Atmel Studiolla määritetään kellotaajuus seuraavasti:
#ifndef F_CPU
#define F_CPU 8000000UL // 8MHz clock speed
#endif

Kirjastot

Ohjelmoidessa tarvitaan kirjastoita, jotta kääntäjä ymmärtää komentoja ja ymmärtää mikro-ohjaimen pinnijärjestelmän.

Kirjastot merkitään seuraavasti ohjelmaan:

#include <stdio.h>
#include <math.h>#include <avr/io.h>
#include <util/delay.h>

Lämpömittari NTC anturilla

Ohjeinen lisäkortti voidaan asentaa emokortin C-porttiin, josta luetaan NTC-anturin näyte, josta lasketaan lämpötila.
Kortilla on yksi kiinteä NTC vastus, joka mittaa kortin lämpötilaa ja sitten riviliittimeen voi laittaa toisen NTC anturin joka voidaan laittaa mittaamaan ulkolämpötilaa.

Anturikortin osasijoittelu
Anturikortin osasijoittelu

Anturikortin piirilevy, jonka koko on 100x160mm, jossa 20kpl anturikortteja. Anturikortin piirikaavio.

Lämpötilan näkee LCD-näytöllä johon on myös piirikortti.

Ohjelman Hex tiedosto.