Atmega16 3-х фазное напряжение
Atmega16 3-х фазное напряжение
Требуется получить с помошью шим микроконтроллера 3-х фазное напряжение частотой 50Гц
Как это сделать не знаю
Помогите начинающиму кодом на С!!!
Как это сделать не знаю
Помогите начинающиму кодом на С!!!
- Реклама
- x-files
- Грызет канифоль
- Сообщения: 279
- Зарегистрирован: Ср мар 30, 2011 09:42:29
- Откуда: Украина, Одесса
- Контактная информация:
Re: Atmega16 3-х фазное напряжение
еще наверное и синус? 
[i][size=85]Не учите меня жить, лучше помогите материально...[/size][/i]
- pyzhman
- Друг Кота
- Сообщения: 7016
- Зарегистрирован: Вс июл 12, 2009 19:15:29
- Откуда: Ижевск
- Контактная информация:
Re: Atmega16 3-х фазное напряжение
Выложите, пожалуйста, весь текст задания. Как он задан.
Docendo discimus
- Goldsmith
- Опытный кот
- Сообщения: 736
- Зарегистрирован: Пн янв 10, 2011 03:06:36
- Откуда: Ростов-на-Дону
- Контактная информация:
Re: Atmega16 3-х фазное напряжение
Насколько я помню, в примерах к VMLAB один из проектов как раз и есть трехфазный генератор синусоиды. Возьмите за образец.
Любой дурак может писать код. Настоящий профессионал - это тот, кто способен постоянно создавать продукт высокого качества, укладываясь при этом в бюджет.
J. Ganssle
J. Ganssle
Re: Atmega16 3-х фазное напряжение
http://my-avr.at.ua/publ/pervye_popytki ... m/1-1-0-49 но смотрели как вариант?
- Реклама
Re: Atmega16 3-х фазное напряжение
Есть сельсин БС-1404 110В 50Гц. Будет использоваться как датчик(жестко связан с валом двигателя) Для снятия данных на трехфазную обмотку статора подается трехфазное напряжение (В обычном режиме работы сельсина напряжение синхронизации на статоре 50В) А с обмотки ротора через операционный усилить снимается сигнал. В прикрепленном файле подобная схема толька на PIC
- Вложения
-
- 1236359991_111.gif
- Схема на ПИК
- (24.67 КБ) 499 скачиваний
Re: Atmega16 3-х фазное напряжение
В приложенном файле исходник на асмpyzh_man писал(а):Тогда уж и исходник PICa.
Само описание в журнале радио № 4 за 2005год страница 63
- Вложения
-
- sels_dat.asm
- (6 КБ) 325 скачиваний
-
- sels_ind.asm
- Исходник к пику
- (2.29 КБ) 351 скачивание
Re: Atmega16 3-х фазное напряжение
Вот кусок кода для генерации синусойды, но осциилограф показывает не синусойду а прямоугольник. Моделирую в протеусе
Код: Выделить всё
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
#include "TableSin.h"
int main( void )
{
//инициализация портов
PORTB = 0;
DDRB = 0xff;
//инициализация таймера Т0
TIMSK = (1<<OCIE0);
//реж. - fast pwm, вывод OC0 - неинверт. шим, предделитель - на 8
TCCR0 = (1<<WGM01)|(1<<WGM00)|(1<<COM01)|(0<<COM00)|(0<<CS02)|(1<<CS01)|(0<<CS00);
//обнуляем счетный регистр и регистр сравнения
TCNT0 = 0;
OCR0 = 0;
//разрешаем прерывания
sei();
while(1);
return 0;
}
//**********************************************************
//Прерывание таймера/счетчика Т0
ISR(TIMER0_COMP_vect)
{
static unsigned char i = 0;
//считываем элемент массива из флэш памяти и записываем в регистр сравнения
OCR0 = pgm_read_byte(&TableSin[i]);
i++;
if (i == 130) i = 0;
}Re: Atmega16 3-х фазное напряжение
Если прямоугольники с той частотой, которая должна быть, надо смотреть файл с данными синусоиды. А вот если с достаточно высокой частотой, это ШИМ так работает.geniusbsd писал(а):Вот кусок кода для генерации синусойды, но осциилограф показывает не синусойду а прямоугольник. Моделирую в протеусе
Резистор подобрать так, чтобы даже при полностью разряженном конденсаторе при подаче напряжения 5В ток был не больше 20 мА. А конденсатор подбирать примерно так, чтобы время его заряда до половины через этот резистор было много больше периода импульсов, но много меньше периода синусоиды.
Клоподавер упрыгхт
Re: Atmega16 3-х фазное напряжение
Поставил сопротивление 470 и кондер 1мк и пошда синусойдаellioh писал(а):geniusbsd писал(а):ВНадо какую-то интегрирующую схему поставить, хотя бы подключить через резистор конденсатор (все параметры надо подбирать) и снимать напряжение с конденсатора.
Re: Atmega16 3-х фазное напряжение
Не получается запустить шим на таймере Т1
Делаю вот так инициализацию трех таймеров. Т0 и Т2 работают нормально а вот Т1 не запускается в чем может быть ошибка?
Делаю вот так инициализацию трех таймеров. Т0 и Т2 работают нормально а вот Т1 не запускается в чем может быть ошибка?
Код: Выделить всё
TIMSK = (1<<OCIE0|1<<OCIE2|1<<OCIE1A );
//реж. - fast pwm, вывод OC0 - неинверт. шим, предделитель - на 8
TCCR0 = (1<<WGM01)|(1<<WGM00)|(1<<COM01)|(0<<COM00)|(0<<CS02)|(1<<CS01)|(0<<CS00);
TCCR2 = 0x6A;
TCCR1A = 0xA1;
//обнуляем счетный регистр и регистр сравнения
TCNT0 =0;
OCR0 = 0;
TCNT2 = 0;
OCR2 = 0;
TCNT1=0x00;
OCR1A=0x00;
...................
ISR(TIMER1A_COMP_vect)
{
static unsigned char i = 0;
//считываем элемент массива из флэш памяти и записываем в регистр сравнения
OCR1A = pgm_read_byte(&TableSin[i]);
i++;
if (i == 115) i = 0;
}


