Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.astronomy.ru/forum/index.php/topic,22075.0.html
Дата изменения: Sun Apr 10 05:35:52 2016
Дата индексирования: Sun Apr 10 05:35:52 2016
Кодировка: Windows-1251
Контроллер КФ. - стр. 1 - Телескопостроение, оптика

A A A A Автор Тема: Контроллер КФ.  (Прочитано 78365 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Суворов Владимир

  • Гость
Контроллер КФ.
« : 23.11.2006 [08:02:35] »
Вот сделал, правда пока на бумаге. Хотелось бы услышать мнение товарищей по делу.

Суворов Владимир

  • Гость
Re: Контроллер КФ.
« Ответ #1 : 23.11.2006 [08:04:47] »
Монтажка получилась вот такая.

Суворов Владимир

  • Гость
Re: Контроллер КФ.
« Ответ #2 : 23.11.2006 [08:07:26] »
Исходник:

#include <pic.h>

__CONFIG(0x03F70);

#define DELAY 500

#define SWEEP 50

#define NUMSTEPS 4

volatile unsigned int RTC = 0;

volatile unsigned char ButtonPress = 0;

char step[] = {160, 96, 80,   144}; /* RB4, RB5, RB6, RB7 */

char stepPos = 0;

void interrupt tmr0_int(void)

 {
    if (T0IF) {           
           
               T0IF = 0;   
               RTC++;

              if(!RA4) ButtonPress = 10;
                     else       
 
              if(!RA3) ButtonPress = 20;
                     else   ButtonPress = 30;         
    }

}

void Dlay(unsigned int msecs)
{
unsigned int DlayEnd;

DlayEnd = RTC + msecs + 1;

while(DlayEnd != RTC);
}

/* pulse the motor with the current coil setting
 * and then wait for delay mS
 */
void pulseMotor(char delay) {
  PORTB = step[stepPos];
  Dlay(delay);
}

/* Advance the coil settings forward by one step
 * stepPos is left pointing to the *next* code to output to move forward
 */
void stepMotorForw(void) {
    stepPos++;
    if(stepPos == NUMSTEPS)
      stepPos = 0;
}
 
/* Advance the motor backward by one step
 * stepPos is left pointing to the *next* code to output to move backward
 */
void stepMotorBack(void) {
  /* advance stepPos to before where we were */
  /* do wrap around */
  if(stepPos == 0) {
    stepPos = NUMSTEPS-1;
  } else {
    stepPos--;
  }
}


void
main(void)
{
char i;
   OPTION = 0x0D1;       
   TMR0 = 0;
   T0IE = 1;
   GIE =  1;
   CMCON = 0x007;
   PORTA = 0x018;
   TRISA1 = 0x0EF;
   PORTB = 0x000;
   TRISB = 0x00F;

while(1){
             
 switch(ButtonPress){
       
        case 10:
                 for(i=0; i < SWEEP; i++) {
                 pulseMotor(DELAY);
                 stepMotorForw();
                 }
                 break;

        case 20:
                 for(i=0; i < SWEEP; i++) {
                 stepMotorBack();
                 pulseMotor(DELAY);
                 }
               break;

        case 30:
           default:
                 break;

        }         

  }
}



« Последнее редактирование: 13.12.2006 [00:38:21] от Суворов Владимир »

Оффлайн Владимир Николаевич

  • *****
  • Сообщений: 18 268
  • Рейтинг: +223/-45
  • Takahashi Россия и QHYCCD Poccия
    • Skype - gromozeka12
Re: Контроллер КФ.
« Ответ #3 : 23.11.2006 [08:10:35] »
Володь! А теперь по русски - что зачем какие функции. Я лишь догадываюсь ;) что это долгожданный мной КОНТРОЛЛЕР ФОКУСЕРА :-* ???
Дядя Вова так владел интонацией, что фразой "твою мать.." мог и похвалить и поругать и поздороваться и даже выразить соболезнование!

Суворов Владимир

  • Гость
Re: Контроллер КФ.
« Ответ #4 : 23.11.2006 [08:14:09] »
Двигатель - 200 шагов на оборот. Поворачивает ровно на 90 гр вправо и влево при нажатии соответствующих кнопок.
Есть сомнения, где-то ошибся я. Пока платку не спаяю, не буду уверен до конца, что это так и есть.


Суворов Владимир

  • Гость
Re: Контроллер КФ.
« Ответ #5 : 23.11.2006 [08:15:59] »
Володь! А теперь по русски - что зачем какие функции. Я лишь догадываюсь ;) что это долгожданный мной КОНТРОЛЛЕР ФОКУСЕРА :-* ???

На твой переделать не сложно, сейчас ребята проверят и если получится, то сделаю.

Оффлайн Александр Л.

  • *****
  • Сообщений: 3 670
  • Рейтинг: +52/-4
  • Мне нравится этот форум!
Re: Контроллер КФ.
« Ответ #6 : 23.11.2006 [08:16:12] »
   При указанных на схеме номиналах резисторов R4, светодиоды никогда светится не будут. Не знаю, каким образом устроен выходной каскад однокристалки, но часто выходной ток по единице таких микросхем мал, поэтому надо отследить хватит ли выходного тока по единице для раскачки ULN2803. Причем ULN2803 это составной транзистор и на его входе установлен резистор ограничивающий ток базы, это надо учесть. Т.Е. на выходы однокристалки напрашиваются резистивные нагрузки.

Суворов Владимир

  • Гость
Re: Контроллер КФ.
« Ответ #7 : 23.11.2006 [08:21:35] »
Я в схемах не силен, но обязательно это учту. Спасибо.

Суворов Владимир

  • Гость
Re: Контроллер КФ.
« Ответ #8 : 23.11.2006 [08:26:44] »
У меня вопрос следующий:

char step[] = {80, 144, 160, 96}; /* RB4, RB5, RB6, RB7 */

Это так?

Кое что я взял у M a r k   C r o s b i e. :)
http://www.mastincrosbie.com/mark/electronics/pic/stepper.html

Оффлайн Денис Никитин

  • *****
  • Сообщений: 3 750
  • Рейтинг: +87/-13
  • Keep your eyes open!
    • Skype - n.dennis
Re: Контроллер КФ.
« Ответ #9 : 23.11.2006 [08:49:17] »
Володя, если сомневаешься не пиши десятичные цифры. Пиши явно двоичные:

0b01010000
0b10010000
0b10100000
0b01100000

Оффлайн Un4given

  • ***
  • Сообщений: 145
  • Рейтинг: +1/-0
Re: Контроллер КФ.
« Ответ #10 : 23.11.2006 [09:10:22] »
А роль светодиодов какая? Если так уж их хочется, повесьте их отдельные порты. Кнопки я бы повесил на RB4-RB7, можно будет сделать прерывание по нажатию. Выходы на движок - на RB0-RB3, светодиоды - RA0-RA1. Генератор заменил бы на нормальный кварц с двумя кондерами на 27 пФ, бо это трехногое чудо на практике оказывается сильно чувствительно к температуре/фазе луны и еще черт знает чему (заводятся один раз из пяти).
« Последнее редактирование: 23.11.2006 [09:38:19] от Un4given »

Оффлайн serzg

  • *****
  • Сообщений: 2 761
  • Рейтинг: +25/-4
  • Мне нравится этот форум!
Re: Контроллер КФ.
« Ответ #11 : 23.11.2006 [09:54:14] »
Володя, извиняюсь за бестактный вопрос, а зачем все это? :-\  Ведь есть неоднократно испытанная схема Александра Л, тем более у тебя есть это http://www.microsmc.com/index.php?page=usmc-usb/review&product=usmc-usb.
Сергей Шарипов

Оффлайн Владимир Николаевич

  • *****
  • Сообщений: 18 268
  • Рейтинг: +223/-45
  • Takahashi Россия и QHYCCD Poccия
    • Skype - gromozeka12
Re: Контроллер КФ.
« Ответ #12 : 23.11.2006 [10:01:53] »
Сереж! Скажи по секрету зачем в контроллере колеса фильтров микрошаг или полушаг и компьютер? Речь об автономном контроллере с прошивкой за 25$ круг и пультике к нему все со спичечный коробок. 
Дядя Вова так владел интонацией, что фразой "твою мать.." мог и похвалить и поругать и поздороваться и даже выразить соболезнование!

Оффлайн serzg

  • *****
  • Сообщений: 2 761
  • Рейтинг: +25/-4
  • Мне нравится этот форум!
Re: Контроллер КФ.
« Ответ #13 : 23.11.2006 [10:21:40] »
Так потому и сприсил. ;)  Не знал тайного смысла сокращения "КФ".
Сергей Шарипов

Оффлайн Александр Л.

  • *****
  • Сообщений: 3 670
  • Рейтинг: +52/-4
  • Мне нравится этот форум!
Re: Контроллер КФ.
« Ответ #14 : 23.11.2006 [11:26:20] »
     Если это контроллер колеса фильтров, то необходимы датчики положения колеса, датчик нулевого положения и датчик указывающий, что любой фильтр находиться в рабочем положении. Можно обойтись одним, но будет лишний геморой при написании микропрограмм и использовании. Как установить датчики можно посмотреть например в описании на IFW - http://www.optecinc.com/ifw_technical_manual.pdf .

Суворов Владимир

  • Гость
Re: Контроллер КФ.
« Ответ #15 : 23.11.2006 [15:10:20] »
Это обязательно будет, но пока немножко пошагаем.

Оффлайн Дядя Вова

  • *****
  • Сообщений: 6 416
  • Рейтинг: +36/-1
  • "я видел воочью пространство и время"
Re: Контроллер КФ.
« Ответ #16 : 23.11.2006 [15:16:12] »
Убиться можно! Только на 13-м сообщении стало ясно о чем идет речь!
(Vixen ED80+Canon300Da, 9x50+QHY5)+EQ6upg

Оффлайн Дядя Вова

  • *****
  • Сообщений: 6 416
  • Рейтинг: +36/-1
  • "я видел воочью пространство и время"
Re: Контроллер КФ.
« Ответ #17 : 23.11.2006 [15:23:06] »
Слушайте, а я вот, оказывается, что не понимаю: а как узнать какой фильтр в текущий момент установлен?
(Vixen ED80+Canon300Da, 9x50+QHY5)+EQ6upg

Оффлайн serzg

  • *****
  • Сообщений: 2 761
  • Рейтинг: +25/-4
  • Мне нравится этот форум!
Re: Контроллер КФ.
« Ответ #18 : 23.11.2006 [17:59:47] »
Слушайте, а я вот, оказывается, что не понимаю: а как узнать какой фильтр в текущий момент установлен?
У меня лампочки разноцветные загораются. ;)
Сергей Шарипов

Оффлайн Дядя Вова

  • *****
  • Сообщений: 6 416
  • Рейтинг: +36/-1
  • "я видел воочью пространство и время"
Re: Контроллер КФ.
« Ответ #19 : 23.11.2006 [18:18:44] »
Слушайте, а я вот, оказывается, что не понимаю: а как узнать какой фильтр в текущий момент установлен?
У меня лампочки разноцветные загораются. ;)
Продолжишь или надо фантазировать?  ;)
(Vixen ED80+Canon300Da, 9x50+QHY5)+EQ6upg