Правила | Последни постове | темата RSS | Търсене | Регистрация | Вход

atmega8L AVR с температурата на сензора



Post new topic Reply to topic EDAboard.com Форуми -> Microcontrollers -> atmega8L AVR със сензора за температура
Арабски версия Българска версия Каталонски версия Чешка версия Датска версия Немска версия Гръцки версия Английска версия Испански версия Фински версия Френска версия Хинди версия Хърватски версия Индонезийски версия Италианската версия Иврит версия Японска версия Корейски вариант Литовски версия Латвийски версия Нидерландски език Норвежки версия Полски версия Португалски версия Румънски версия Руска версия Словашка версия Словенски версия Сръбската версия Шведска версия Тагалог версия Украински версия Виетнамски версия Китайски версия
Автор Съобщение
welkyb



Присъединил се: 20 Януари 2009
Мнения: 2


Post 03 юли 2009 18:05 atmega8L AVR със сензора за температура

Здрасти,
Аз правя моята първа AVR EXP използва температурата на сензора LM35 към небето синьо зелено или червено водена в зависимост от температурата на помещението.
• Свързани светодиодите да PORT Б на atmega8L UC и температурата на сензора за ADC 3 входа.
• Използване на вътрешния осцилатор 1MHz като clk, вътрешен референтен напрежение от 2,56 като референтни напрежение в свободно RUNING готовност.
• ADLAR = 0, т.е. правото коригира.
• Свързани 0.1uF един развързващ кондензатор в VREF ПИН по дейташитове, "Вътрешен 2.56V Напрежение Референтен с външни кондензатор в Aref ПИН".
• Използване на prolight светодиоди 1W (за добро интензитет), транзистор в наситеността с Ic около 10 mA.
Според това, което HV разбира със сензора за температура 10,0 СрН / ˚ С мащаба фактор, изходно напрежение на датчика е въвеждане на напрежение на ADC ... ...
ADC = (VIN * 1024 / Vref)
Ако стайна температура = 30 ˚ С, Вин = 300mV = 0.3V, така ADC = (.3 * 1024/2.56) = 120. Така че аз HV разделена на резултата по 4.



Фиг b.png



Тук ми е код, който аз HV написани на AVR Studio4
# включват <avr\io.h>
# определят F_CPU 1000000UL
# включват <util/delay.h>
INT главната (недействителни)
(
неподписан INT ТЕМП;
ADMUX = (1 <<REFS1) | (1 <<REFS0) | (1 <<MUX1) | (1 <<MUX0);
ADCSRA = (1 <<Аден) | (1 <<ADFR);
DDRB | = 0xFF;
докато (1)
(
ТЕМП = ADCL ADCH * 256; / / ADCH се четат само за да обновите данните ADC регистър, в противен случай няма нужда
ТЕМП = ТЕМП / 4;
ако (ТЕМП <= 20)
PORTB = 1 <<PB1; / / BLUE
иначе ако (ТЕМП> 20 & & ТЕМП <= 2 Охлаждам
PORTB = 1 <<PB0; / / ЗЕЛЕН
иначе ако (ТЕМП> 28 & & ТЕМП <= 35)
PORTB = 1 <<ПБ3; / / ЧЕРВЕН
в противен случай
PORTB = ((1 <<PB1) | (1 <<PB0) | (1 <<ПБ3));
)
)

Но аз не знам какъв е проблемът; UC само мига светодиода, които отговарят на минималните критерии за температура т.е. синьо. Дори и да се размножават окончателния ТЕМП променлива от 10000 и пазят мин. температура критерии за сини води до небето, както по-малко от 2 ˚ С, а след това също само сини води мига. Тя изглежда UC се не на напрежение, както въвеждане.
Аз HV проверява, че ако аз пиша (PORTB = 1 <<PB0), а след това зелена доведе мига или (PORTB = 1 <<ПБ3), след това червен доведе мига вместо (PORTB = 1 <<PB1)

Имам свързан изход за закрепване на сензора директно UC, има ли проблем в нея или трябва да използвате по-развързващ кондензатори някъде по веригата.

PLZ Помощ
Обратно към началото
View user's profile
Post new topic Reply to topic EDAboard.com Форуми -> Microcontrollers -> atmega8L AVR със сензора за температура
Страница 1 от 1 Всички времена са GMT 2 Часа


Abuse | | Управление | | Модератори | | Подкрепете ни | | карта на сайта
Темата RSS