Например TDA7294

Форум РадиоКот • Просмотр темы - Есть идея проекта
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пн авг 25, 2025 02:01:33

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 25 ]  1,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Есть идея проекта
СообщениеДобавлено: Пт окт 24, 2008 14:16:17 
Опытный кот
Аватар пользователя

Зарегистрирован: Сб янв 05, 2008 11:05:15
Сообщений: 849
Откуда: Україна м.Луцьк
Рейтинг сообщения: 0
Хочу сделать маленький модинг ПК. Что-то очень похожее на этот прибор http://radiokot.ru/circuit/digital/pcmod/08/ но на ATmega8. Идея такая:
1.Сделать термометр для 3 точек на DS18b20.
2.Сделать регулятор оборотов для кулеров которые будут стоять в тех местах где есть термо датчики. Что бы при 20 градусах вентиляторы стояли, а при 70 градусах били включены на полную мощность. Как я понимаю это нужно сделать с помощью ШИМ. В ATmega8 как раз есть 3 программных ШИМ.
Как мерять температуру я знаю, а вот как настроить ШИМ нет :cry:
Помогите мне в настройке ШИМа относительно температуры.
Для каждого канала также планируется сделать установку максимальной температуры и выводить это все на ЖКИ 16х2.

_________________
Я не Сашок!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 24, 2008 14:19:22 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
Пускай они стоят градусов до 45.
при 45 ШИМ сделать30% и при 70 град 100%.

За основу можно взять проект из примеров PROTEUS в папке
SAMPLES\VSM for AVR\One-Wire\DS18X20

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 24, 2008 14:31:29 
Опытный кот
Аватар пользователя

Зарегистрирован: Сб янв 05, 2008 11:05:15
Сообщений: 849
Откуда: Україна м.Луцьк
Рейтинг сообщения: 0
Ещо интересует как происходит регуляция ШИМом.? Там изменяется скважность импульсов или амплитуда?

_________________
Я не Сашок!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 24, 2008 14:33:54 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
sachok писал(а):
Ещо интересует как происходит регуляция ШИМом.? Там изменяется скважность импульсов или амплитуда?

Скважность. ШИМ в картинках в задаче 8 в моей домашней страничке, там же как его программировать.

Вот вам тот проект-пример из PROTEUS - несколько датчиков DS18b20 - остается добавить ШИМ-у.


Вложения:
PROTEUS CVAVR 1-Wire DS18b20.zip [73.37 KiB]
Скачиваний: 216

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 24, 2008 14:44:41 
Опытный кот
Аватар пользователя

Зарегистрирован: Сб янв 05, 2008 11:05:15
Сообщений: 849
Откуда: Україна м.Луцьк
Рейтинг сообщения: 0
Тоесть для изменения ШИМа нужно менять даные в етих регистрах?
Код:
OCR1BH = 0x00;
OCR1BL = 0xFF;

Или можно какимто другим образом например
Код:
if (temp=20)
{
pwr=30%;
}

Это моя фантазия :))

_________________
Я не Сашок!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 24, 2008 14:47:49 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
sachok писал(а):
Это моя фантазия :))


чтоб писать:
Код:
pwr=30%


Нужно СИЛЬНО поколдовать с хитрейшим #define - это исскустов ИМХО.

А вот сделать функцию и вызвать ее так
Код:
  pwr(30);

это просто.

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 24, 2008 14:56:43 
Опытный кот
Аватар пользователя

Зарегистрирован: Сб янв 05, 2008 11:05:15
Сообщений: 849
Откуда: Україна м.Луцьк
Рейтинг сообщения: 0
А если я установлю максимельное значение ШИМа при 70 градусах,а минимальное при 20 градусах то в промежутке от 20 до 70 будет плавно меняться ШИМ или нужно самому для каждой температури присваивать? Можно ли так сделать:
Код:
if (temp++)
{
pwr++;
}

_________________
Я не Сашок!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 24, 2008 15:26:29 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
sachok писал(а):
А если я установлю максимельное значение ШИМа при 70 градусах,а минимальное при 20 градусах то в промежутке от 20 до 70 будет плавно меняться ШИМ или нужно самому для каждой температури присваивать?

Если запрограмишь - то будет. Все надо программировать ЯВНО. МК "тупой" от рождения как и ПК.

sachok писал(а):
Можно ли так сделать:
Код:
if (temp++)
{
pwr++;
}

Так написать можно, но что это будет означать ????

Пожалуйста почитай "Си для МК" (стр. 5 в моей домашней) чтоб понимать что пишешь.

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 24, 2008 18:52:01 
Опытный кот
Аватар пользователя

Зарегистрирован: Сб янв 05, 2008 11:05:15
Сообщений: 849
Откуда: Україна м.Луцьк
Рейтинг сообщения: 0
Трьохточечный термометр у меня получился, а от с ШИМ к сожалению проблемы. Есть у меня 3 значения температуры temp1,temp2,temp3 как относительно их настроить ШИМ на PB1,PB2,PB3 МК ATmega8?

_________________
Я не Сашок!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 24, 2008 19:23:37 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
так как вам скорость не нужна то просто напишите три выражения типа

Код:
if (тепература_1 > порог_1) {
( регистр pwm1 ) = (тепература_1) * (ВАША формула перевода тепературы в ШИМ) ;
                                           }


и разместите их в бесконечном цикле програмы

Код:
while(1){

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

тут
тут
тут

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

}


Если индикацию делать не собираетесь то температуру не надо преобразовывать в градусы а ШИМ в % - это только человеку удобно для восприятия, а МК наплевать в каких единицах данные выражены.

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 24, 2008 19:29:23 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
sachok писал(а):
как настроить ШИМ на PB1,PB2,PB3 МК ATmega8?
Большая рубка-обсуждение ШИМ недавно состоялась на форуме. Среди щепок есть и полезная инфаа по настройке ШИМ - вот
http://www.radiokot.ru/forum/viewtopic. ... 8&start=40

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 24, 2008 20:21:56 
Опытный кот
Аватар пользователя

Зарегистрирован: Сб янв 05, 2008 11:05:15
Сообщений: 849
Откуда: Україна м.Луцьк
Рейтинг сообщения: 0
Цитата:
// 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:

_________________
Я не Сашок!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 24, 2008 20:25:37 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
sachok писал(а):
С PB3 проблеми не могу настроить. Пробовал делать так:
[code]// pwm_val - это число от 0 до 1023
// PWM(PB1) = OCR1A / 10.23 (%)

Ну там же PWM(PB1) написано, а вы
про PB3 спрашиваете.

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 24, 2008 20:30:28 
Опытный кот
Аватар пользователя

Зарегистрирован: Сб янв 05, 2008 11:05:15
Сообщений: 849
Откуда: Україна м.Луцьк
Рейтинг сообщения: 0
Вы меня немного не так поняли. Для начала я хотел просто вывести стабильный ШИМ на РВ1,РВ2,РВ3 на первых двох портах все ОК, а не 3 не заработал.
Цитата:
Пробовал делать так:
[code]// pwm_val - это число от 0 до 1023
// PWM(PB1) = OCR1A / 10.23 (%)

Это я уже пробовал делать что бы ШИМ изменялся на РВ1 но тоже не заработало. К тому же ещо протеус ругается на то что загрузка процесора 100% бывает.

_________________
Я не Сашок!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 24, 2008 20:39:28 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
РВ3 вы назначили выходом ?

Причин можкт быть куча - советую прочитать не спеша и понять задачу 8 в курсе.

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 24, 2008 20:41:49 
Опытный кот
Аватар пользователя

Зарегистрирован: Сб янв 05, 2008 11:05:15
Сообщений: 849
Откуда: Україна м.Луцьк
Рейтинг сообщения: 0
Настроил весь порт В как выход. А РВ3 должен работать от таймера1 или от таймера2 или нет разници какой таймер включен? Задачку почитал несколько раз, имено та нашол метод с pwm_val. Я паредполагаю что не правильно сделал настройку РВ3.
Код:
OCR2H=0x00;
OCR2L=0xff;

_________________
Я не Сашок!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 24, 2008 20:56:10 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
sachok писал(а):
А РВ3 должен работать от таймера1 или от таймера2 или нет разници какой таймер включен?


Вы даташит то скачали ? ГЛЯНЬТЕ !

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 24, 2008 21:29:20 
Опытный кот
Аватар пользователя

Зарегистрирован: Сб янв 05, 2008 11:05:15
Сообщений: 849
Откуда: Україна м.Луцьк
Рейтинг сообщения: 0
Вот скачал скачал нормальный даташит, а то у меня был на 10 страниц :)) Нашол, прочитал, настроил таймер 2, установил
Код:
OCR2=0x7f;
увидел что скаважность около 50% но точной схемы как изменять ее не понял.

_________________
Я не Сашок!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 24, 2008 21:41:56 
Э...
Аватар пользователя

Карма: 1
Рейтинг сообщений: 9
Зарегистрирован: Ср апр 04, 2007 08:39:14
Сообщений: 2792
Откуда: Москва
Рейтинг сообщения: 0
sachok писал(а):
Вот скачал скачал нормальный даташит, прочитал.

Наконец то !!! с этого НАЧИНАТЬ НАДА !

sachok писал(а):
установил
Код:
OCR2=0x7f;
увидел что скаважность около 50%
но точной схемы как изменять ее не понял.


Блинн !!! и идеи поменять это число НЕ ВОЗНИКЛО ? и посмотреть что будет...

0x7f это 127 - т.е. ПОЛОВИНА (50%) от байта.

_________________
Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru


Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 24, 2008 21:44:51 
Опытный кот
Аватар пользователя

Зарегистрирован: Сб янв 05, 2008 11:05:15
Сообщений: 849
Откуда: Україна м.Луцьк
Рейтинг сообщения: 0
В том и суть что менял я это число. Только не понял как там считается скважность. Предполагаю что 1 байт 255 это скважность 100%, отсюда 127 это 50%, 63 - 25%.

_________________
Я не Сашок!!!


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 25 ]  1,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y