Например TDA7294

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

Текущее время: Сб янв 31, 2026 11:03:27

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


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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: BLDC и PIC16F1947
СообщениеДобавлено: Чт июл 09, 2015 17:44:35 
Родился

Зарегистрирован: Вс июл 13, 2014 17:55:05
Сообщений: 5
Рейтинг сообщения: 0
Создаю систему управления вентильным двигателем на основе PIC. Помогите разобраться, двигатель разгоняется до некой скорости, потом начинает крутиться в другую сторону. Понимаю, что нужно что-то еще, но что, понять не могу. САУ определенно не мой конек.



Спойлер
Код:
/*
Processor: PIC16F1947
Compiler:  CCS for PIC
 */

#include <16F1947.h>
#use delay(crystal=20MHz)
#USE TIMER(TIMER=1,TICK=100us,BITS=16,NOISR)
#USE PWM(OUTPUT=PIN_G0, FREQUENCY=1khz, DUTY=50)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)


char buf[100];
int8 count;
int32 time, k;
int16 st[5];
long duty_val;
int8 a;

#int_ccp1
void ccp1(){
  output_d(st[a]);
  a = a + 1;
  if (a == 6) a = 0;
   }
   
/*#INT_RB
void interp(){
   set_ticks(0);
   while(input_state(PIN_B0));
   time = get_ticks();
   }*/

 
 
void razgon(){
int8 hall;
hall = input_e(); 
if (hall == 0b00000101){
a = 0;
}
else {
if(hall == 0b00000001){
a = 1;
}
else {
if(hall == 0b00000011){
a = 2;
}
else {
if(hall == 0b00000010){
a = 3;
}
else {
if(hall == 0b00000110){
a = 4;
}
else {
if(hall == 0b00000100){
a = 5;
}}}}}}  } 


void shim(long dutyv){
    pwm_on();
    pwm_set_duty_percent(dutyv);   
   }

   
 /*   
PIN_D0 - U-
PIN_D1 - U+
PIN_D2 - V-
PIN_D3 - V+
PIN_D4 - W-
PIN_D5 - W+
----------
----------   
*/   


/*void start(){
   while(!(input_state(PIN_E1))){
   output_bit(PIN_D5, 1);
   shim(k);
   if(k<900) k=k+1;
     }
   }*/
   

int main (void)
 {
 
  st[5] =  0b00001001;
  st[0] =  0b00100001;
  st[1] =  0b00100100;
  st[2] =  0b00000110;
  st[3] =  0b00010010;
  st[4] =  0b00011000;
  time = 0; 
  int k = 0;
  k = 10;
  set_tris_e(255);
  set_tris_d(0);
  output_d(0);
  a = 0; 
  //int32 i = 10000;
 
setup_ccp1(CCP_CAPTURE_RE); 
enable_interrupts (INT_CCP1);
enable_interrupts (GLOBAL);
razgon();
shim(k);     

 while (1){   
/*  pwm_off();
start();
delay_ms(10000);
  */
   } 
   return 0;
 }   

 


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BLDC и PIC16F1947
СообщениеДобавлено: Чт июл 09, 2015 20:50:53 
Друг Кота

Карма: 27
Рейтинг сообщений: 1283
Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 7853
Рейтинг сообщения: 0
Нужна обратная связь.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BLDC и PIC16F1947
СообщениеДобавлено: Пт июл 10, 2015 09:23:18 
Родился

Зарегистрирован: Вс июл 13, 2014 17:55:05
Сообщений: 5
Рейтинг сообщения: 0
otest писал(а):
Нужна обратная связь.


Это то я понимаю. Только не знаю какая она должна быть и как это реализовать программно. Не могли бы вы помочь? Особенно с программной реализацией.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BLDC и PIC16F1947
СообщениеДобавлено: Пт июл 10, 2015 10:47:28 
Друг Кота

Карма: 27
Рейтинг сообщений: 1283
Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 7853
Рейтинг сообщения: 0
ОС с тахогенератора.


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: BLDC и PIC16F1947
СообщениеДобавлено: Пт июл 10, 2015 13:11:25 
Родился

Зарегистрирован: Вс июл 13, 2014 17:55:05
Сообщений: 5
Рейтинг сообщения: 0
otest писал(а):
ОС с тахогенератора.

Да, сама обратная связь у меня вроде есть, не с тахогенератора, но с датчиков Холла.
Код:
/*#INT_RB
void interp(){
   set_ticks(0);
   while(input_state(PIN_B0));
   time = get_ticks();
   }*/


Допустим, я получил реальную частоту и у меня есть значение необходимой, что делать дальше?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BLDC и PIC16F1947
СообщениеДобавлено: Пт июл 10, 2015 14:11:35 
Друг Кота

Карма: 27
Рейтинг сообщений: 1283
Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 7853
Рейтинг сообщения: 0
Дальше сравнивать частоты и принимать нужное решение.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: BLDC и PIC16F1947
СообщениеДобавлено: Сб янв 02, 2016 11:28:39 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 10
Рейтинг сообщений: 39
Зарегистрирован: Ср мар 14, 2007 01:50:10
Сообщений: 2198
Рейтинг сообщения: 0
otest: сообщи в личку своё мыло, на форуме в личке файлы не приссоединяются.


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

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


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

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


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

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


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