реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Помогите реализовать управление ДПТ на PIC16F876A
Ronin777
сообщение Jan 21 2010, 19:06
Сообщение #1





Группа: Участник
Сообщений: 6
Регистрация: 21-01-10
Пользователь №: 54 983



Здравствуйте еще раз...сделал в Протеусе вот такую схемку

далее заливаю вот такой код
CODE
#include<pic.h>

#define START_FUN 768
#include "delay.h"


int adc_res;
int pwm_val;

main(){

TRISA =0xFF;
TRISC = 0;
/******** настройка ШИМ *********/
T2CON = 0x01; //TMR2 выходной делитель 1:1, предделитель - 1:1
PR2 = 0xFF; //длительность ШИМ
CCPR1L = 0;
CCP1CON= 0x0C; //включить ШИМ
TMR2ON = 1; //TMR2 включить
/******** настройка АЦП **********/
ADCON0= 0x81; //модуль включен, Fosc/32
ADCON1= 0x8E; //выравнивание вправо, 1 вход аналоговый
ADIF = 0; //сбросить флаг прерывания от АЦП
DelayUs(40);
ADGO = 1; //начать преобразование

while (1){

if( ADIF ){
ADIF = 0;
adc_res = ADRESH * 256 + ADRESL;
if(adc_res > START_FUN){
pwm_val = (adc_res - START_FUN) * 5;
CCPR1L=(char)(pwm_val>>2);
CCP1CON=((char)(pwm_val<<4)&0x30) | 0x0C;
}
else{
pwm_val = 0;
CCPR1L=(char)(pwm_val>>2);
CCP1CON=((char)(pwm_val<<4)&0x30) | 0x0C;
}
DelayUs(40);
ADGO = 1;
}
}
}

проблема заключается в том что на PORTC не генерируется ШИМ...он постоянно остается 0...что не так сделал подскажите пожалуйста...

PS Ув. админы извините за флуд сразу не заметил этого раздела...

Сообщение отредактировал rezident - Jan 23 2010, 12:13
Причина редактирования: Оформление цитаты исходника.
Go to the top of the page
 
+Quote Post
Ronin777
сообщение Jan 23 2010, 08:12
Сообщение #2





Группа: Участник
Сообщений: 6
Регистрация: 21-01-10
Пользователь №: 54 983



ну плзззЗЗ
Go to the top of the page
 
+Quote Post
kamil_yaminov
сообщение Jan 23 2010, 08:44
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 395
Регистрация: 15-02-08
Из: Новосибирск
Пользователь №: 35 064



В PIC'ах не разбираюсь, но есть подозрение, что забыли ножку назначить как выход ШИМ сигнала.
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Jan 23 2010, 09:04
Сообщение #4





Guests






В ДШ есть рекомендуемая последовательность включения модуля CCP в режиме ШИМ. Нужно ее придерживаться.
В частности, сначала включают TMR2, а потом ССP в режиме ШИМ. А у Вас наоборот.
Go to the top of the page
 
+Quote Post
Ronin777
сообщение Jan 23 2010, 10:28
Сообщение #5





Группа: Участник
Сообщений: 6
Регистрация: 21-01-10
Пользователь №: 54 983



Цитата(@Ark @ Jan 23 2010, 13:04) *
В ДШ есть рекомендуемая последовательность включения модуля CCP в режиме ШИМ. Нужно ее придерживаться.
В частности, сначала включают TMR2, а потом ССP в режиме ШИМ. А у Вас наоборот.


не помогло...
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Jan 23 2010, 15:11
Сообщение #6





Guests






Цитата
не помогло...

Схема у Вас непонятная какая-то... Да и программа....
Объясните сначала хотя бы на словах, что хотите получить?
Где питание? Где "обвеска" PIC-а? Где кварц? Или от внутреннего генератора работаете? Но его вроде бы нет в этом пике. Почему MCLR в воздухе? В общем слишком много вопросов...
Не знаю как в симуляторе, "в железе" это работать не будет. Потому что не должно...
Go to the top of the page
 
+Quote Post
Ronin777
сообщение Jan 23 2010, 22:08
Сообщение #7





Группа: Участник
Сообщений: 6
Регистрация: 21-01-10
Пользователь №: 54 983



Цитата(@Ark @ Jan 23 2010, 19:11) *
Схема у Вас непонятная какая-то... Да и программа....
Объясните сначала хотя бы на словах, что хотите получить?
Где питание? Где "обвеска" PIC-а? Где кварц? Или от внутреннего генератора работаете? Но его вроде бы нет в этом пике. Почему MCLR в воздухе? В общем слишком много вопросов...
Не знаю как в симуляторе, "в железе" это работать не будет. Потому что не должно...


это симулятор, "обвеска" идет программная (Proteus), я вроде разобрался в чем проблема, у меня не получилось настроить ШИМ контроллера (скорее всего это неполадка в Proteus) поэтому пришлось реализовать ШИМ программно, вроде все получилось.
А идея программы заключается в том, что мы подаем на аналоговый вход с датчика температуры сигнал и в зависимости от этого сигнала управляем двигателем, чем больше напряжение на аналоговом входе тем выше скорость двигателя.
Будет ли это работать в железе никому не интересно, боюсь препод и в СИ особо не разбирается, но надеюсь он меня пойметsmile.gif
Go to the top of the page
 
+Quote Post
Ronin
сообщение Jan 26 2010, 10:16
Сообщение #8


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 10-02-05
Из: Краснодар
Пользователь №: 2 558



Цитата
Будет ли это работать в железе никому не интересно, боюсь препод и в СИ особо не разбирается, но надеюсь он меня поймет


Товарищ самурай, вы эт бросайте пренебрегать железом smile.gif Железо наше всё ))))))))
Go to the top of the page
 
+Quote Post
Tanya
сообщение Jan 26 2010, 10:27
Сообщение #9


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Ronin777 @ Jan 24 2010, 01:08) *
А идея программы заключается в том, что мы подаем на аналоговый вход с датчика температуры сигнал и в зависимости от этого сигнала управляем двигателем, чем больше напряжение на аналоговом входе тем выше скорость двигателя.

Тогда уж измеряйте именно скорость по противоЭДС при обесточенном двигателе. Придется добавить инструментальный усилитель. Можно и ток (если в эмиттер добавить шунт).
Go to the top of the page
 
+Quote Post
Ronin777
сообщение Jan 26 2010, 20:16
Сообщение #10





Группа: Участник
Сообщений: 6
Регистрация: 21-01-10
Пользователь №: 54 983



Цитата(Tanya @ Jan 26 2010, 14:27) *
Тогда уж измеряйте именно скорость по противоЭДС при обесточенном двигателе. Придется добавить инструментальный усилитель. Можно и ток (если в эмиттер добавить шунт).

поставил MOSFET...но особо не помогло)...
Go to the top of the page
 
+Quote Post
Александр Куличо...
сообщение Jan 27 2010, 00:28
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 256
Регистрация: 6-03-06
Из: Украина, г. Винница
Пользователь №: 15 017



Цитата
Тогда уж измеряйте именно скорость по противоЭДС при обесточенном двигателе. Придется добавить инструментальный усилитель. Можно и ток (если в эмиттер добавить шунт).

В ТЗ нет пункта "поддерживать скорость врещения в зависимости от изменения нагрузки" smile.gif Поэтому это лишнее. Тем более, в лабораторной работе.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th June 2025 - 23:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.02873 секунд с 7
ELECTRONIX ©2004-2016