Например TDA7294

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





Текущее время: Ср апр 24, 2024 13:30:06

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


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



Начать новую тему Ответить на тему  [ Сообщений: 49 ]    , 2,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: ШИМ atmega8
СообщениеДобавлено: Вт авг 08, 2017 09:06:03 
Потрогал лапой паяльник
Аватар пользователя

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Ср май 03, 2017 03:22:26
Сообщений: 303
Рейтинг сообщения: 0
Вроде пока разобрался с реализацией 1го канала ШИМ)
Код:
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>

int aSin[128]={
   127,134,140,146,152,158,164,170,176,182,187,193,198,203,208,213,217,222,226,230,233,
   236,240,242,245,247,249,251,252,253,254,254,254,254,254,253,252,251,249,247,245,242,
   240,236,233,230,226,222,217,213,208,203,198,193,187,182,176,170,164,158,152,146,140,
   134,127,121,115,109,103,97,91,85,79,73,68,62,57,52,47,42,38,33,29,25,22,19,15,13,10,
   8,6,4,3,2,1,1,0,1,1,2,3,4,6,8,10,13,15,19,22,25,29,33,38,42,47,52,57,62,68,73,79,85,
   91,97,103,109,115,121
};
int i;

ISR(TIMER1_COMPA_vect)
{
   OCR2=aSin[i];
   i++;
   if (i>127) i=0;
}
int main(void)
{
   PORTB=0x00;
   DDRB = (1<<PB1) |(1<<PB2)| (1<<PB3);     
   TCCR1B = (0<<WGM13)|(1<<WGM12)|(0<<CS12)|(0<<CS11)|(1<<CS10);
   OCR1A=512;
   TCCR2=(1<<WGM20)|(1<<COM21)|(0<<COM20)|(1<<WGM21)|(0<<CS22)|(0<<CS21)|(1<<CS20);
   TIMSK=(1<<OCIE1A);
   sei();
   for (;;)
   {
   }
   return 0;
}


Но сюда вроде можно еще подключить только OCR1B для 2ой фазы т.к OCR1A уже Используется (.

Я только вижу один выход перекинуть на Т0 регулировку частоты фаз. (TIMER0_OVF_vect). Или есть еще какие то решения ?

_________________
andrei23061996@gmail.com
.................................................................................................................


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ШИМ atmega8
СообщениеДобавлено: Вт авг 08, 2017 10:43:01 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
В меге 3 таймера генерируют ШИМ - 2 канала TIMER1 и 1 канал TIMER2. Вам для 3 фаз придется задействовать все три.
Модуляцию, очевидно, придется возложить на незадействованный TIMER0 - куда деваться-то?

Для оптимизации желательно было бы сделать таблицу синуса из 256 значений, тогда не надо было сравнивать и обнулять индекс... Но если удобнее 128, то, как мне кажется, оптимальнее сделать OCR1A = aSin[i & 0x7F];

Добавлено after 54 seconds:
Да, кстати, у вас нет volatile для глобальных переменных, используемых в прерывании - нарветесь на проблемы.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ШИМ atmega8
СообщениеДобавлено: Вт авг 08, 2017 11:05:44 
Потрогал лапой паяльник
Аватар пользователя

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Ср май 03, 2017 03:22:26
Сообщений: 303
Рейтинг сообщения: 0
Это пока Тестовый весь код.

попытался сделать через Т0 прерывания по переполнению. Возник вопрос по поводу регулировки частоты, Есть ли еще какой нибудь способ регулировать частоту прерываний? , а то TIMER1_COMPA_vect с прерыванием без делителя и частотой кварца 8 Mhz уж очень широкими шагами регулирует частоту синуса (. и реально ли сделать шаг хотя бы 0.5 hz ?

Код:
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>

int aSin[128]={
   127,134,140,146,152,158,164,170,176,182,187,193,198,203,208,213,217,222,226,230,233,
   236,240,242,245,247,249,251,252,253,254,254,254,254,254,253,252,251,249,247,245,242,
   240,236,233,230,226,222,217,213,208,203,198,193,187,182,176,170,164,158,152,146,140,
   134,127,121,115,109,103,97,91,85,79,73,68,62,57,52,47,42,38,33,29,25,22,19,15,13,10,
   8,6,4,3,2,1,1,0,1,1,2,3,4,6,8,10,13,15,19,22,25,29,33,38,42,47,52,57,62,68,73,79,85,
   91,97,103,109,115,121
};
int i;
/*
ISR(TIMER1_COMPA_vect)
{
   OCR2=aSin[i];
   i++;
   if (i>127) i=0;

}
*/
int t1;
ISR(TIMER0_OVF_vect)
{
   if (t1==21)
   {
   OCR2=aSin[i];
   i++;
   if (i>127) i=0;
   }
   t1++;
   if (t1>21)
   {
      t1=0;
   }
}

int main(void)
{
   PORTB=0x00;
   DDRB = (1<<PB1) |(1<<PB2)| (1<<PB3);     
   //TCCR1B = (0<<WGM13)|(1<<WGM12)|(0<<CS12)|(0<<CS11)|(1<<CS10);
   //OCR1A=512;
   TCCR2=(1<<WGM20)|(1<<COM21)|(0<<COM20)|(1<<WGM21)|(0<<CS22)|(0<<CS21)|(1<<CS20);
   TIMSK=(0<<OCIE1A)|(1<<TOIE0);
   TCCR0=(1<<CS00);
   sei();
   for (;;)
   {
   }
   return 0;
}

_________________
andrei23061996@gmail.com
.................................................................................................................


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: ШИМ atmega8
СообщениеДобавлено: Вт авг 08, 2017 12:08:14 
Друг Кота

Карма: 64
Рейтинг сообщений: 966
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4221
Откуда: Ижевск
Рейтинг сообщения: 0
Можно
Код:
OCR1A=10*F_CPU/64/(1000-0)/2-1
//OCR1A=10*F_CPU/64/(1000-5)/2-1
TCCR1B = (0<<WGM13)|(1<<WGM12)|(0<<CS12)|(0<<CS11)|(1<<CS10);
TCCR2=(1<<WGM20)|(1<<COM21)|(0<<COM20)|(1<<WGM21)|(0<<CS22)|(0<<CS21)|(1<<CS20);
TIMSK=(1<<OCIE1A)|(1<<TOIE0);
TCCR0=(1<<CS00);
Попробуйте менять значение во второй строке, раскомментировав её.

09.08.2017
Можно проще. Для примера, изменение с шагом 0,1Гц в диапазоне 100...5Гц
Код:
OCR1A=10*F_CPU/128/(1000-n)-1   ; при изменении n в диапазоне 0...950, частота
TCCR1B = (1<<WGM12)|(1<<CS10);
TCCR2=(1<<WGM20)|(1<<COM21)|(0<<COM20)|(1<<WGM21)|(0<<CS22)|(0<<CS21)|(1<<CS20);
TIMSK=(1<<OCIE1A)|(1<<TOIE0);
TCCR0=(1<<CS00);


Последний раз редактировалось akl Ср авг 09, 2017 04:25:48, всего редактировалось 1 раз.

Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: ШИМ atmega8
СообщениеДобавлено: Вт авг 08, 2017 12:30:14 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
О том, как получить плавное регулирование частоты модуляции хоть с шагом в 0,0001 Гц, следует курить DDS - прямой цифровой синтез.

Если очень-очень кратко о принципе, то он следующий.
Вы заводите переменную не в 8 бит для "скольжения по массиву синусов", а больше, например, 32 бита. Для того самого индексного просмотра таблицы синусов используете СТАРШИЕ биты этого счетчика. А инкрементируете этот счетчик по таймеру, причем частота инкремента постоянная, а шаг может меняться.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: ШИМ atmega8
СообщениеДобавлено: Ср авг 09, 2017 05:58:02 
Потрогал лапой паяльник
Аватар пользователя

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Ср май 03, 2017 03:22:26
Сообщений: 303
Рейтинг сообщения: 0
Походу все таки 8мега слабовата для Генерации трех фаз с регулировкой частоты 5-50 герц с шагом в 1 герц(

В итоге код пока что такой получился после РЦ цепочки синус получается со сдвигом 120 , но без нее это полный трешь там и речи походу о 120 градусов нет )

Код:
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>

int aSin[128]={
   127,134,140,146,152,158,164,170,176,182,187,193,198,203,208,213,217,222,226,230,233,
   236,240,242,245,247,249,251,252,253,254,254,254,254,254,253,252,251,249,247,245,242,
   240,236,233,230,226,222,217,213,208,203,198,193,187,182,176,170,164,158,152,146,140,
   134,127,121,115,109,103,97,91,85,79,73,68,62,57,52,47,42,38,33,29,25,22,19,15,13,10,
   8,6,4,3,2,1,1,0,1,1,2,3,4,6,8,10,13,15,19,22,25,29,33,38,42,47,52,57,62,68,73,79,85,
   91,97,103,109,115,121
};
int i1=0; //Переменная для подсчета элемента массива
int i2=43; //Переменная для подсчета элемента массива
int i3=85; //Переменная для подсчета элемента массива
int t1=0; // переменная для изменения частоты синуса (скорость прохода по массиву aSin )
ISR(TIMER0_OVF_vect)
{
   t1++;
   if (t1==6)
   {
   //PORTB^=(1<<PB0); // Отладочный сигнал.
   OCR1A=aSin[i1];
   OCR1B=aSin[i2];
   OCR2=aSin[i3];
   i1++;
   i2++;
   i3++;
   if (i1>127) i1=0;
   if (i2>127) i2=0;
   if (i3>127) i3=0;
   }
   if (t1>6) t1=0;
}

int main(void)
{
   PORTB=0x00;
   DDRB = (1<<PB0) |(1<<PB1) |(1<<PB2)| (1<<PB3);
   TCCR0=(0<<CS02)|(0<<CS01)|(1<<CS00);
   TCCR1A=(1<<COM1A1)|(0<<COM1A0)|(1<<COM1B1)|(0<<COM1B0)|(0<<FOC1A)|(0<<FOC1B)|(0<<WGM11)|(1<<WGM10);
   TCCR1B = (0<<WGM13)|(1<<WGM12)|(0<<CS12)|(1<<CS11)|(0<<CS10);
   TCCR2=(1<<WGM20)|(1<<COM21)|(0<<COM20)|(1<<WGM21)|(0<<CS22)|(1<<CS21)|(0<<CS20);
   TIMSK=(0<<OCIE2)|(0<<TOIE2)|(0<<OCIE1A)|(0<<OCIE1B)|(0<<TOIE1)|(1<<TOIE0);
   
   sei();
   for (;;)
   {
   }
   return 0;
}


Добавлено after 1 minute 40 seconds:
А кто нить побывал DDS на меге8 ,для работы 3х фаз ?

Добавлено after 19 minutes 32 seconds:
Или все таки купить мегу48 у нее как раз 5 каналов ШИМ есть как думаете ?

Добавлено after 15 minutes 49 seconds:
Уменьшив дискретность добился нужной регулировки частоты)
Но все равно что то мне не очень нравиться форма ШИМ , или IR2130 такую скушает ?

Добавлено after 53 seconds:
Изображение

Добавлено after 17 minutes 37 seconds:
А должен вроде быть похож на такой:
Изображение


Вложения:
шим1.JPG [45.21 KiB]
Скачиваний: 816
оцилограма.JPG [83.7 KiB]
Скачиваний: 822

_________________
andrei23061996@gmail.com
.................................................................................................................
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ШИМ atmega8
СообщениеДобавлено: Ср авг 09, 2017 06:47:46 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
7seg писал(а):
Походу все таки 8мега слабовата для Генерации трех фаз с регулировкой частоты 5-50 герц с шагом в 1 герц
нет, не слабовата
7seg писал(а):
В итоге код пока что такой получился после РЦ цепочки синус получается со сдвигом 120 , но без нее это полный трешь там и речи походу о 120 градусов нет
это вообще как? в первой части предложения получился синус со сдвигом, во второй части - опровержение... так получился или нет? не считая совсем неоптимального кода, логически все нормально, должно работать.

рекомендую:
1. сделать таблицу синуса размером 256 байт
2. поместить таблицу синуса во flash
3. вместо трех счетчиков использовать один, прибавляя к нему в нужные моменты "смещение" для 120 градусов
4. изучить принцип DDS и соответственно скорректировать код
5. использовать "оптимальные" типы данных (почему все int, когда на самом деле хватило бы uint8_t?)
6. не забывать про volatile для переменных, используемых в прерывании одновременно с основным кодом
7. активно применять static-переменные (счетчики фазы, например, незачем выносить в глобальную область)
8. не забывать про оптимизацию при компиляции!

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ШИМ atmega8
СообщениеДобавлено: Ср авг 09, 2017 07:39:01 
Потрогал лапой паяльник
Аватар пользователя

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Ср май 03, 2017 03:22:26
Сообщений: 303
Рейтинг сообщения: 0
Вот интересно из за чего ШИМ получается больше похож на пилу, когда должен быть формой прямоугольных импульсов.

_________________
andrei23061996@gmail.com
.................................................................................................................


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ШИМ atmega8
СообщениеДобавлено: Ср авг 09, 2017 07:52:22 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Кто ж вас знает, что вы там намудрили со схемой. МК выдает логические уровни, никаких пил там не бывает.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ШИМ atmega8
СообщениеДобавлено: Ср авг 09, 2017 09:05:10 
Потрогал лапой паяльник
Аватар пользователя

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Ср май 03, 2017 03:22:26
Сообщений: 303
Рейтинг сообщения: 0
Осциллограмма с ног мк напрямую к оцилоскопу. походу где то в настройках ШИМа напортачил.
Разобрался почему осциллограмма 1 такая неправильная )) это все шпротеус. )

Пока код выглядит так
Код:
const unsigned char aSin[256]PROGMEM = {
   0, 0, 0, 0, 0, 0, 1, 1, 2, 3, 3, 4, 5, 6, 7, 8,
   9, 10, 12, 13, 15, 16, 18, 19, 21, 23, 25, 27, 29, 31, 33, 35,
   37, 39, 42, 44, 46, 49, 51, 54, 56, 59, 62, 64, 67, 70, 73, 76,
   79, 81, 84, 87, 90, 93, 96, 99, 103,106,109,112,115,118,121,124,
   128,131,134,137,140,143,146,149,152,156,159,162,165,168,171,174,
   176,179,182,185,188,191,193,196,199,201,204,206,209,211,213,216,
   218,220,222,224,226,228,230,232,234,236,237,239,240,242,243,245,
   246,247,248,249,250,251,252,252,253,254,254,255,255,255,255,255,
   255,255,255,255,255,255,254,254,253,252,252,251,250,249,248,247,
   246,245,243,242,240,239,237,236,234,232,230,228,226,224,222,220,
   218,216,213,211,209,206,204,201,199,196,193,191,188,185,182,179,
   176,174,171,168,165,162,159,156,152,149,146,143,140,137,134,131,
   128,124,121,118,115,112,109,106,103,99, 96, 93, 90, 87, 84, 81,
   79, 76, 73, 70, 67, 64, 62, 59, 56, 54, 51, 49, 46, 44, 42, 39,
   37, 35, 33, 31, 29, 27, 25, 23, 21, 19, 18, 16, 15, 13, 12, 10,
   9, 8, 7, 6, 5, 4, 3, 3, 2, 1, 1, 0, 0, 0, 0, 0
};
uint8_t i1=0; //Переменная для подсчета элемента массива
uint8_t i2=43; //Переменная для подсчета элемента массива
uint8_t i3=85; //Переменная для подсчета элемента массива
uint8_t t1=0; // переменная для изменения частоты синуса (скорость прохода по массиву aSin )
ISR(TIMER0_OVF_vect)
{
   t1++;
   if (t1==5)
   {
   OCR1A=pgm_read_byte(&(aSin[i1]));
   OCR1B=pgm_read_byte(&(aSin[i2]));
   OCR2=pgm_read_byte(&(aSin[i3]));
   i1+=5;
   i2+=5;
   i3+=5;
   if (i1>255) i1=0;
   if (i2>255) i2=0;
   if (i3>255) i3=0;
   }
   if (t1>5) t1=0;
}

int main(void)
{
   PORTB=0x00;
   DDRB = (1<<PB0) |(1<<PB1) |(1<<PB2)| (1<<PB3);
   TCCR0=(0<<CS02)|(0<<CS01)|(1<<CS00);
   TCCR1A=(1<<COM1A1)|(0<<COM1A0)|(1<<COM1B1)|(0<<COM1B0)|(0<<FOC1A)|(0<<FOC1B)|(0<<WGM11)|(1<<WGM10);
   TCCR1B = (0<<WGM13)|(1<<WGM12)|(0<<CS12)|(1<<CS11)|(0<<CS10);
   TCCR2=(1<<WGM20)|(1<<COM21)|(0<<COM20)|(1<<WGM21)|(0<<CS22)|(1<<CS21)|(0<<CS20);
   TIMSK=(0<<OCIE2)|(0<<TOIE2)|(0<<OCIE1A)|(0<<OCIE1B)|(0<<TOIE1)|(1<<TOIE0);
   
   sei();
   for (;;)
   {
   }
   return 0;
}

Для регулировки частоты синуса изменяю t1 вроде все нормально. залью на камушек посмотрю в живую что получаеться)

_________________
andrei23061996@gmail.com
.................................................................................................................


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ШИМ atmega8
СообщениеДобавлено: Ср авг 09, 2017 10:02:13 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6619
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
имхо вот эти строки лишние:
if (i1>255) i1=0;
if (i2>255) i2=0;
if (i3>255) i3=0;
переменная 8бит не будет больше 255 (сама сбросится по переполнению).
t1 не влияет на частоту, а только на нач фазу (скорость прироста всегда одинаковая)
а почему по 5 добавляешь (проскакивая по 4 элемента таблицы), добавляй по 1 (но почаще) - плавнее будет или вообще по t1 — вот и регулировка частоты как вариант.

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ШИМ atmega8
СообщениеДобавлено: Ср авг 09, 2017 10:19:38 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 253
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2090
Рейтинг сообщения: -4
В меге 3 таймера генерируют ШИМ - 2 канала TIMER1 и 1 канал TIMER2. Вам для 3 фаз придется задействовать все три.
Модуляцию, очевидно, придется возложить на незадействованный TIMER0 - куда деваться-то?

Так ясно куда деваться, на более дешевые мк с кучей таймеров, в том числе 32-х битных с полноценными 16-ти битными пределителями, но ты же никогда в этом не признаешься, проще отправить новичка изучать DDS :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ШИМ atmega8
СообщениеДобавлено: Ср авг 09, 2017 10:24:14 
Потрогал лапой паяльник
Аватар пользователя

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Ср май 03, 2017 03:22:26
Сообщений: 303
Рейтинг сообщения: 0
Живая Осциллограмма выходов шим с МК:
СпойлерИзображение


Добавлено after 1 minute 36 seconds:
Жалко что только двух лучевой осцилоскоп есть.


Вложения:
Живая осциллограмма.JPG [192.7 KiB]
Скачиваний: 498

_________________
andrei23061996@gmail.com
.................................................................................................................
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ШИМ atmega8
СообщениеДобавлено: Ср авг 09, 2017 11:07:41 
Друг Кота
Аватар пользователя

Карма: 123
Рейтинг сообщений: 7955
Зарегистрирован: Сб сен 13, 2014 16:27:32
Сообщений: 39199
Откуда: СпиртоГонск созвездия Омега
Рейтинг сообщения: 0
а почему живая я не вижу анимации?

Добавлено after 35 seconds:
да и ее не бывае в жипеге тока GIF

_________________
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ШИМ atmega8
СообщениеДобавлено: Ср авг 09, 2017 11:10:03 
Потрогал лапой паяльник
Аватар пользователя

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Ср май 03, 2017 03:22:26
Сообщений: 303
Рейтинг сообщения: 0
#ОФФТОП
Живая в том смысле что с настоящего осциллографа :))

_________________
andrei23061996@gmail.com
.................................................................................................................


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ШИМ atmega8
СообщениеДобавлено: Ср авг 09, 2017 11:13:53 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
а мой совет насчет индексирования не учли... если к uint8_t i=255 прибавить 1, то автоматически получится 0, и никаких if-ов не надо делать - в том и фишка 255-байтового массива.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ШИМ atmega8
СообщениеДобавлено: Ср авг 09, 2017 11:32:19 
Потрогал лапой паяльник
Аватар пользователя

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Ср май 03, 2017 03:22:26
Сообщений: 303
Рейтинг сообщения: 0
t1 не влияет на частоту, а только на нач фазу (скорость прироста всегда одинаковая)


Точнее меняя не т1 а условия if (t1==5).
Код:
ISR(TIMER0_OVF_vect)
{
   t1++;
   if (t1==5)
   {
   OCR1A=pgm_read_byte(&(aSin[i1]));
   OCR1B=pgm_read_byte(&(aSin[i2]));
   OCR2=pgm_read_byte(&(aSin[i3]));
   i1+=5;
   i2+=5;
   i3+=5;
   if (i1>255) i1=0;
   if (i2>255) i2=0;
   if (i3>255) i3=0;
   }
   if (t1>5) t1=0;
}

_________________
andrei23061996@gmail.com
.................................................................................................................


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ШИМ atmega8
СообщениеДобавлено: Ср авг 09, 2017 11:50:54 
Друг Кота
Аватар пользователя

Карма: 46
Рейтинг сообщений: 2030
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6619
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Код:
ISR(TIMER0_OVF_vect)
{
OCR1A=pgm_read_byte(&(aSin[i1]));
OCR1B=pgm_read_byte(&(aSin[i2]));
OCR2=pgm_read_byte(&(aSin[i3]));
i1+=t1;
i2+=t1;
i3+=t1;
}

вот так т1 влияет на частоту и этого достаточно.

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ШИМ atmega8
СообщениеДобавлено: Чт авг 10, 2017 03:39:21 
Потрогал лапой паяльник
Аватар пользователя

Карма: 3
Рейтинг сообщений: 3
Зарегистрирован: Ср май 03, 2017 03:22:26
Сообщений: 303
Рейтинг сообщения: 0
Тогда регулировка получается чем выше частота тем меньше амплитуда.

А вроде для управления АД, должно быть наоборот или я ошибаюсь ?

Изображение

осциллограмма выход МК через РЦ фильтр.

_________________
andrei23061996@gmail.com
.................................................................................................................


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: ШИМ atmega8
СообщениеДобавлено: Чт авг 10, 2017 06:36:06 
Друг Кота
Аватар пользователя

Карма: 142
Рейтинг сообщений: 5954
Зарегистрирован: Чт авг 09, 2012 01:09:39
Сообщений: 6638
Откуда: Ливны
Рейтинг сообщения: 1
7seg писал(а):
А вроде для управления АД, должно быть наоборот или я ошибаюсь ?
Верно, не ошибаетесь. :) Правда для разных типов нагрузки на двигатель по разным законам, но во всех случаях с увеличением частоты растёт и напряжение.

_________________
Большой опыт, порой, не даёт находить/видеть нам простые и очевидные решения. :(
Всегда с уважением, Александр.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 49 ]    , 2,  

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


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

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


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

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


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