Есть идея проекта

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Опытный кот
Аватара пользователя
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк

Сообщение sachok »

Хочу сделать маленький модинг ПК. Что-то очень похожее на этот прибор http://radiokot.ru/circuit/digital/pcmod/08/ но на ATmega8. Идея такая:
1.Сделать термометр для 3 точек на DS18b20.
2.Сделать регулятор оборотов для кулеров которые будут стоять в тех местах где есть термо датчики. Что бы при 20 градусах вентиляторы стояли, а при 70 градусах били включены на полную мощность. Как я понимаю это нужно сделать с помощью ШИМ. В ATmega8 как раз есть 3 программных ШИМ.
Как мерять температуру я знаю, а вот как настроить ШИМ нет :cry:
Помогите мне в настройке ШИМа относительно температуры.
Для каждого канала также планируется сделать установку максимальной температуры и выводить это все на ЖКИ 16х2.
Я не Сашок!!!
Контактная информация:
Реклама
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

Пускай они стоят градусов до 45.
при 45 ШИМ сделать30% и при 70 град 100%.

За основу можно взять проект из примеров PROTEUS в папке
SAMPLES\VSM for AVR\One-Wire\DS18X20
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Реклама
Опытный кот
Аватара пользователя
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк

Сообщение sachok »

Ещо интересует как происходит регуляция ШИМом.? Там изменяется скважность импульсов или амплитуда?
Я не Сашок!!!
Контактная информация:
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

sachok писал(а):Ещо интересует как происходит регуляция ШИМом.? Там изменяется скважность импульсов или амплитуда?
Скважность. ШИМ в картинках в задаче 8 в моей домашней страничке, там же как его программировать.

Вот вам тот проект-пример из PROTEUS - несколько датчиков DS18b20 - остается добавить ШИМ-у.
Вложения
PROTEUS CVAVR 1-Wire DS18b20.zip
(73.37 КБ) 222 скачивания
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Опытный кот
Аватара пользователя
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк

Сообщение sachok »

Тоесть для изменения ШИМа нужно менять даные в етих регистрах?

Код: Выделить всё

OCR1BH = 0x00; 
OCR1BL = 0xFF;
Или можно какимто другим образом например

Код: Выделить всё

if (temp=20)
{ 
pwr=30%;
}
Это моя фантазия :))
Я не Сашок!!!
Контактная информация:
Реклама
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

sachok писал(а):Это моя фантазия :))
чтоб писать: Нужно СИЛЬНО поколдовать с хитрейшим #define - это исскустов ИМХО.

А вот сделать функцию и вызвать ее так

Код: Выделить всё

  pwr(30);
это просто.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Реклама
Опытный кот
Аватара пользователя
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк

Сообщение sachok »

А если я установлю максимельное значение ШИМа при 70 градусах,а минимальное при 20 градусах то в промежутке от 20 до 70 будет плавно меняться ШИМ или нужно самому для каждой температури присваивать? Можно ли так сделать:

Код: Выделить всё

if (temp++)
{
pwr++;
}
Я не Сашок!!!
Контактная информация:
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

sachok писал(а):А если я установлю максимельное значение ШИМа при 70 градусах,а минимальное при 20 градусах то в промежутке от 20 до 70 будет плавно меняться ШИМ или нужно самому для каждой температури присваивать?
Если запрограмишь - то будет. Все надо программировать ЯВНО. МК "тупой" от рождения как и ПК.
sachok писал(а): Можно ли так сделать:

Код: Выделить всё

if (temp++)
{
pwr++;
}
Так написать можно, но что это будет означать ????

Пожалуйста почитай "Си для МК" (стр. 5 в моей домашней) чтоб понимать что пишешь.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк

Сообщение sachok »

Трьохточечный термометр у меня получился, а от с ШИМ к сожалению проблемы. Есть у меня 3 значения температуры temp1,temp2,temp3 как относительно их настроить ШИМ на PB1,PB2,PB3 МК ATmega8?
Я не Сашок!!!
Контактная информация:
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

так как вам скорость не нужна то просто напишите три выражения типа

Код: Выделить всё

if (тепература_1 > порог_1) {
( регистр pwm1 ) = (тепература_1) * (ВАША формула перевода тепературы в ШИМ) ;
                                           }
и разместите их в бесконечном цикле програмы

Код: Выделить всё

while(1){

всяки разный код другой

тут
тут
тут

еще какой то код возможно

}
Если индикацию делать не собираетесь то температуру не надо преобразовывать в градусы а ШИМ в % - это только человеку удобно для восприятия, а МК наплевать в каких единицах данные выражены.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

sachok писал(а):как настроить ШИМ на PB1,PB2,PB3 МК ATmega8?
Большая рубка-обсуждение ШИМ недавно состоялась на форуме. Среди щепок есть и полезная инфаа по настройке ШИМ - вот
http://www.radiokot.ru/forum/viewtopic. ... 8&start=40
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк

Сообщение sachok »

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 4000,000 kHz
// Mode: Fast PWM top=03FFh
// OC1A output: Non-Inv.
// OC1B output: Non-Inv.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0xA3;
TCCR1B=0x09;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;


OCR1AH=0x00;
OCR1AL=0xff;


OCR1BH=0x00;
OCR1BL=0xff;
Вот настройка на 25% стабильного ШИМа. Ножки PB1,PB2 дергаются в протеусе. С PB3 проблеми не могу настроить. Пробовал делать так:

Код: Выделить всё

// pwm_val - это число от 0 до 1023
// PWM(PB1) = OCR1A / 10.23  (%)
OCR1AH = (char)(pwm_val>>8);
OCR1AL = (char)pwm_val;
while(1)
{
if (temp>=30)
{
pwm_val=temp;
};
};
Ничего не вишло :cry:
Я не Сашок!!!
Контактная информация:
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

sachok писал(а):С PB3 проблеми не могу настроить. Пробовал делать так:

Код: Выделить всё

// pwm_val - это число от 0 до 1023
// PWM(PB1) = OCR1A / 10.23  (%)
[/quote]
Ну там же  PWM(PB[color=red]1[/color])  написано, а вы 
про  PB[color=red]3[/color] спрашиваете.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк

Сообщение sachok »

Вы меня немного не так поняли. Для начала я хотел просто вывести стабильный ШИМ на РВ1,РВ2,РВ3 на первых двох портах все ОК, а не 3 не заработал.
Пробовал делать так:

Код: Выделить всё

// pwm_val - это число от 0 до 1023
// PWM(PB1) = OCR1A / 10.23 (%) [/quote]
Это я уже пробовал делать что бы ШИМ изменялся на РВ1 но тоже не заработало. К тому же ещо протеус ругается на то что загрузка процесора 100% бывает.
Я не Сашок!!!
Контактная информация:
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

РВ3 вы назначили выходом ?

Причин можкт быть куча - советую прочитать не спеша и понять задачу 8 в курсе.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк

Сообщение sachok »

Настроил весь порт В как выход. А РВ3 должен работать от таймера1 или от таймера2 или нет разници какой таймер включен? Задачку почитал несколько раз, имено та нашол метод с pwm_val. Я паредполагаю что не правильно сделал настройку РВ3.

Код: Выделить всё

OCR2H=0x00;
OCR2L=0xff;
Я не Сашок!!!
Контактная информация:
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

sachok писал(а): А РВ3 должен работать от таймера1 или от таймера2 или нет разници какой таймер включен?
Вы даташит то скачали ? ГЛЯНЬТЕ !
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк

Сообщение sachok »

Вот скачал скачал нормальный даташит, а то у меня был на 10 страниц :)) Нашол, прочитал, настроил таймер 2, установил

Код: Выделить всё

OCR2=0x7f;
увидел что скаважность около 50% но точной схемы как изменять ее не понял.
Я не Сашок!!!
Контактная информация:
Э...
Аватара пользователя
Сообщения: 2792
Зарегистрирован: Ср апр 04, 2007 08:39:14
Откуда: Москва

Сообщение tych »

sachok писал(а):Вот скачал скачал нормальный даташит, прочитал.
Наконец то !!! с этого НАЧИНАТЬ НАДА !
sachok писал(а):установил

Код: Выделить всё

OCR2=0x7f;
увидел что скаважность около 50%
но точной схемы как изменять ее не понял.
Блинн !!! и идеи поменять это число НЕ ВОЗНИКЛО ? и посмотреть что будет...

0x7f это 127 - т.е. ПОЛОВИНА (50%) от байта.
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк

Сообщение sachok »

В том и суть что менял я это число. Только не понял как там считается скважность. Предполагаю что 1 байт 255 это скважность 100%, отсюда 127 это 50%, 63 - 25%.
Я не Сашок!!!
Контактная информация:
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»