Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 27.10.2010, 15:52  
neid_nnov
Временная регистрация
 
Регистрация: 05.10.2010
Сообщений: 68
Сказал спасибо: 12
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
neid_nnov на пути к лучшему
По умолчанию Оптимизация кода для термореле

ВСем привет! нитак давно я создавал темку по поводу своего устройства, еще раз в кратце:машина заводится с автозапуска(ваз2111), подает питание на устройство, вкл. и ждет пока температура двигателя не поднимится до 50 градусов, после через реле включает подогрев сидений, когда 70С - печку (заведомо подключаем к 1 скорости). Ну и работает до тех пор пока не сяду в машину и не нажму кнопоку. Чтобы потом самому вкл что надо и конролировать.
вот с общими усилиями и советами что получилось по схеме: http://s014.radikal.ru/i327/1010/36/84eac75a211e.jpg

а вот сам код к этой погремушке:
#include ‹mega32.h›
#include ‹delay.h›
#define FIRST_ADC_INPUT 0
#define LAST_ADC_INPUT 0
unsigned char adc_data[FIRST_ADC_INPUT-LAST_ADC_INPUT+1];
#define ADC_VREF_TYPE 0x20
interrupt [ADC_INT] void adc_isr(void) //стандартное прерывание по ADC от CVAVR
{
static unsigned char input_index=0;
// Read the 8 most significant bits
// of the AD conversion result
adc_data[input_index]=ADCH;
// Select next ADC input
if (--input_index › (FIRST_ADC_INPUT-LAST_ADC_INPUT))
input_index=0;
ADMUX=(FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff))-input_index;
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
}
void main(void)
{
//Порт В настройка
PORTC=0x00;
DDRC=0xFF; // весь порт на выход

// Port D настройка
PORTB=0x00;
DDRB.0=0x00; // весь порт как вход

ADMUX=FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff);
ADCSRA=0xCC;
#asm("sei")
PORTC.4=1; // светодиод горит постоянно, показывает что устройство работает
while (1) {
if(adc_data[LAST_ADC_INPUT]‹205) PORTC.0=1; //Приблизительно 50 град.
else PORTC.0=0;
if(adc_data[LAST_ADC_INPUT]‹204) PORTC.2=1;
else PORTC.2=0;
if(adc_data[0]‹21) PORTC.1=1; //Приблизительно 70град.
else PORTC.1=0;
if(adc_data[0]‹21) PORTC.3=1;
else PORTC.3=0;
if (PINB.0==1) goto den; //нажатие на кнопку выводит из цикла
else PINB.0=0; //и ведет к снятию нагрузок
};
den:
while (2){ // постеперное сняти нагрузок с интервалом
PORTC.0=0;
PORTC.2=0;
delay_ms(2000);
PORTC.1=0;
PORTC.3=0;
delay_ms(2000);
PORTC.4=0;
}
}
вопросы в следующем:
как подключить AVCC и AFER через дросель и кондей, как в даташите написано. В протусе приблуда работает только когда они вместе запитаны. запутался немножко.
вывод RESET , правильно подключил или же добавить кондей на 0.1 мкф и диод 1n4148.
коректен ли код для всего вышеперечисленного?
как себя будет вести штука в холода, когда тачку с автозапуска буду заводить, т.е быстрый нагрев будет с отрицательных до положительных температур с салоне авто(ваз2111).
Реклама:
neid_nnov вне форума  
Непрочитано 27.10.2010, 16:01  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Оптимизация кода для термореле

Примените цифровую фильтрацию АЦП и все дела. С вашим камнем там еще виндоус запустить можно. Ресурсов хватит.
Фильтрацию можно сделать самую примитивную - 64 измерения накапливаются в переменную 16 бит, затем делятся на 64. В итоге среднее значение.
Easyrider83 вне форума  
Сказали "Спасибо" Easyrider83
neid_nnov (27.10.2010)
Непрочитано 27.10.2010, 16:10  
neid_nnov
Временная регистрация
 
Регистрация: 05.10.2010
Сообщений: 68
Сказал спасибо: 12
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
neid_nnov на пути к лучшему
По умолчанию Re: Оптимизация кода для термореле

Сообщение от Easyrider83 Посмотреть сообщение
С вашим камнем там еще виндоус запустить можно
да просто уже есть, валяется, а меги 8 у нас в Нижнем нет уже 2 недели(((
neid_nnov вне форума  
Непрочитано 27.10.2010, 16:12  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Оптимизация кода для термореле

Сообщение от neid_nnov Посмотреть сообщение
да просто уже есть, валяется, а меги 8 у нас в Нижнем нет уже 2 недели(((
К слову будет сказано, привет вашим мегам настал. Пора изучать что-то другое. Религиозную войну выиграл микрочип. Сочувствую.
Easyrider83 вне форума  
Непрочитано 27.10.2010, 16:16  
neid_nnov
Временная регистрация
 
Регистрация: 05.10.2010
Сообщений: 68
Сказал спасибо: 12
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
neid_nnov на пути к лучшему
По умолчанию Re: Оптимизация кода для термореле

слышали, знаем
neid_nnov вне форума  
Непрочитано 27.10.2010, 16:25  
neid_nnov
Временная регистрация
 
Регистрация: 05.10.2010
Сообщений: 68
Сказал спасибо: 12
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
neid_nnov на пути к лучшему
По умолчанию Re: Оптимизация кода для термореле

Easyrider83, ну а по существу вопросов?
neid_nnov вне форума  
Непрочитано 27.10.2010, 16:27  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Оптимизация кода для термореле

По существу, если вам не хватает стабильности опорного напряжения АЦП, есть так называемые ИОН - источники опорного напряжения. Вариантов куча. Я использую контроллеры с ИОН уже на борту.
Easyrider83 вне форума  
Непрочитано 27.10.2010, 16:53  
true71
Почётный гражданин KAZUS.RU
 
Аватар для true71
 
Регистрация: 23.09.2008
Адрес: Козьмодемьянск. Это на Волге.
Сообщений: 2,429
Сказал спасибо: 5,552
Сказали Спасибо 1,053 раз(а) в 609 сообщении(ях)
true71 на пути к лучшему
По умолчанию Re: Оптимизация кода для термореле

Сообщение от neid_nnov Посмотреть сообщение
... когда 70С - печку (заведомо подключаем к 1 скорости)...
И, если обдув включен на лобовое стекло, трещина вдоль всего лобового стекла.

Старые водилы (учитесь на чужом опыте!) рекомендуют зимой сразу при включении двигателя включать обдув лобового стекла, чтобы оно прогревалось вместе с движком.
Иначе, если будете подавать горячий воздух на холодное стекло, оно в итоге треснет.


Простите за офф.


А по теме: применяйте цифровые датчики температуры, их не надо периодически калибровать. У меня пара DS18B20 в машине работает третий год.

Последний раз редактировалось true71; 27.10.2010 в 16:56. Причина: по теме.
true71 вне форума  
Непрочитано 27.10.2010, 16:56  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Оптимизация кода для термореле

Сообщение от true71 Посмотреть сообщение
Старые водилы (учитесь на чужом опыте!) рекомендуют зимой сразу при включении двигателя включать обдув лобового стекла, чтобы оно прогревалось вместе с движком.
Иначе, если будете подавать горячий воздух на холодное стекло, оно в итоге треснет.
У всех нормальных машин эта опция уже заложена в программу климатроника. Даже при включении обдува на лобовое стекло, сначала идет холодный воздух и уже затем включается теплый.
Easyrider83 вне форума  
Непрочитано 27.10.2010, 17:05  
neid_nnov
Временная регистрация
 
Регистрация: 05.10.2010
Сообщений: 68
Сказал спасибо: 12
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
neid_nnov на пути к лучшему
По умолчанию Re: Оптимизация кода для термореле

Easyrider83,
true71, ну уж если я пускать машину на авто запуске буду, а для этого подготовку делаю (подругому она не поставится), то про стекло не забуду, уберу обдув, и температуру оставлю нужную... кстати на десятках стекло быстро отходит даже если обдув в салон направлен, а не на стекло.
Можно уж тогда и постепенную регулировку температуры сделать, блок управления в десятом семействе это позволяет.
neid_nnov вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
Книги dosikus Делимся опытом 11242 29.12.2015 23:45


Часовой пояс GMT +4, время: 15:41.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot