Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Климатические системы

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.11.2013, 18:42   #21
wowa
Junior Member
 
Регистрация: 23.09.2013
Сообщений: 14
Вес репутации: 0
wowa is an unknown quantity at this point
По умолчанию Re: Плавное изменение оборотов асинхронного вентилятора переменного тока с помощью Arduino.

какие то наброски тут видел http://tinkeringken.blogspot.com/201...=1385477468716
если вы правы тогда плохо дело. Придётся тогда отдельный чип для шим и его управлять чер ардуино шим? Масло масленое

Последний раз редактировалось wowa; 28.11.2013 в 18:46.
wowa вне форума   Ответить с цитированием
Старый 28.11.2013, 21:25   #22
pma
Junior Member
 
Регистрация: 04.02.2013
Сообщений: 19
Вес репутации: 0
pma has much to be proud ofpma has much to be proud ofpma has much to be proud ofpma has much to be proud ofpma has much to be proud ofpma has much to be proud ofpma has much to be proud ofpma has much to be proud ofpma has much to be proud of
По умолчанию Re: Плавное изменение оборотов асинхронного вентилятора переменного тока с помощью Arduino.

Сделать шим до 62кГц на 8 бит не проблема.
Ниже пример для 3 FAST PWM без предделителя, на таймерах 1 и 2 под мегу 8. Писал когда только учился все работает перед отправкой проверил! В коде есть лишние настройки, при желании их можно частично порезать и для понимания полезно
Чтобы получить 16кГц берем квырц 4МГц 4000000/256=15625Гц или играемся с настройками можно предделителем, можно настроить прерывание по переполнению и в нем выставлять значения счетчика, ...
Все зависит от вашей фантазии и железа конечно
по поводу ардуиновского ШИМа в памяти висит цифра 490Гц не помню откуда но быстрее 500Гц кажется он не работает.
Если интересно про высокочастотный ШИМ гуглится по Fast PWM + смотрим в даташит на контролерчик разделы Timer counter register descriptions и вниз по смыслу.
Если возникает вопрос: Что за муть!!!??? читаем по частям и понимаем смысл -> кормим ардуине умные настройки и сишный код частями и смотрим на результат. (я через неделю изучения ардуины бросил и стал писать на С тк ничего сложного не сделать и дикие проблемы с совместимостью версий, библиотек и школьников, которые плодят криво подправленные библиотеки, а проверять библиотеки получается дольше чем написать имхо)
PHP код:
#include <util/delay.h>
void setup() {                
  
// initialize the digital pin as an output.
  // Pin 13 has an LED connected on most Arduino boards:
DDRB=1<<1|1<<2|1<<3;
 
// Timer/Counter 1 initialization

TCCR1A=0xA1//Настройки
TCCR1B=0x09//Настройки
/*без предделителя, 
PWM 8bit, 
по совпадению очистить счетчик и выход в 0(не инвертированный)*/

TCNT1H=0x00//СчетчикH на 0
TCNT1L=0x00//СчетчикL на 0

ICR1H=0x00;//не нужен
ICR1L=0x00;//не нужен

OCR1AH=0x00// PB1
OCR1AL=0x00//

OCR1BH=0x00// PB2
OCR1BL=0x00//
  
// Timer/Counter 2 initialization

ASSR=0x00;//Asynchronous options не нужен
TCCR2=0x69;//Настройки
TCNT2=0x00;//Счетчик на 0
OCR2=0x00// PB3



// External Interrupt(s) initialization
MCUCR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
  
}

void loop() {
int i;  
// OCR1A=255; OCR1B=255; OCR2=255;


OCR1B=255;

 
 
 
for (
i=0;i<255;i++)        //Плавно повышаем яркость 
    
{
    
OCR1A++;
    
OCR1B--;
    
OCR2++;
    
_delay_ms(20);
    }
//OCR1A=255;
for (i=0;i<255;i++)        //Плавно понижаем яркость
    
{
    
OCR1A--;
    
OCR1B++;
    
OCR2--;
    
_delay_ms(20);
    }
  

Если честно не пойму зачем ставить вентилятор 220В и мучити его регулеровкой когда есть спец серии вентиляторов на 12В постоянки (недавно покупал в леруа там лежал под 12в, но мне не надо было регулировать взял 220)
pma вне форума   Ответить с цитированием
Старый 29.11.2013, 11:58   #23
wowa
Junior Member
 
Регистрация: 23.09.2013
Сообщений: 14
Вес репутации: 0
wowa is an unknown quantity at this point
По умолчанию Re: Плавное изменение оборотов асинхронного вентилятора переменного тока с помощью Arduino.

не совсем понял зачем что то перепаивать, если стандартно на плате ардуиноподобных стоит кварц на 16МГц, а это на 1000 больше мне нужной частоты. То есть если 16МГц/1024 разряда, то получим 15625 т.е. 16кГц. В описании Atmel 328 этот таймер имеет выходы на 15 и 16 выводах микросхемы или соответственно Arduino UNO Pin9(OC1A) и Pin10 (OC1B). Для управления сигналам на пинах 9 и 10 есть стандартная библиотека avr/interrupt.h . Существует такая теория, но как тут грамотно разложить в коде:
void setup() {
TCCR1A = B11110010;
TCCR1B = B00011001;
TCCR1B = 25;// 00011001
ICR1 = 1023 ; // 10 bit resolution
OCR1A = 511; // vary this value between 0 and 1024 for 10-bit precision
OCR1B = 511; // vary this value between 0 and 1024 for 10-bit precision
pinMode (INH, OUTPUT); //PWM Analog
}
void loop()
{ analogWrite(INH,(1023-abs(Motor_speed)));}
wowa вне форума   Ответить с цитированием
Старый 29.11.2013, 13:37   #24
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Плавное изменение оборотов асинхронного вентилятора переменного тока с помощью Arduino.

Принцип работы такой, таймер считает от 0 до 65535(0xFFFF), в регистр ICR1 записываем число 1023,
это будет верхний предел счета таймера. Таймер настроен на то, что при совпадении счетного регистра и
регистра сравнения (TCNT1=OCR1A) вывод контроллера OC1A будет изменять свое состояние. Коэффициент
заполнения ШИМ можно изменить, записав в регистр сравнения OCR1A любое число от 0 до 1023, чем больше
это число тем больше будет коэффициент заполнения.
Admin вне форума   Ответить с цитированием
Старый 03.12.2013, 02:31   #25
wowa
Junior Member
 
Регистрация: 23.09.2013
Сообщений: 14
Вес репутации: 0
wowa is an unknown quantity at this point
По умолчанию Re: Плавное изменение оборотов асинхронного вентилятора переменного тока с помощью Arduino.

я скопировал эту часть кода с статей о ыправлении мотором по Х- мостовй схеме, частота ШИМа как раз 16кГц, но там в этам коде с лишком много "баласта" мне нужен только код для генерации на выходе (9 или 10) сигнала, а там уж как нибуть буду прикручивать меню и кнопки. Источники:
http://tinkeringken.blogspot.com/201...ontroller.html
http://www.leonvanderhorst.nl/source...kShop_Test.pde
wowa вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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


Текущее время: 05:33. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика