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

 
 
> Энкодер и дребезг, нужна помощь
BigCoster
сообщение Apr 11 2007, 18:24
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 71
Регистрация: 9-03-07
Из: г. Днепропетровск
Пользователь №: 26 009



Подскажите, что делать с дребезгом, если датчик положения
(у меня крыльчатка + оптический датчик "на просвет") подключен
к счётчику контроллера. Проблема втом что имеется ошибка которая пстоянно имеет
разное значение. Я так понимаю что програмно тут ни чем не поможешь.
Частота сигнала с датчика около 200 Гц.
пытался делать RC-фильтр но при ёмкости С=1мкФ не помогает, а при 2.2
не работает при номинальных оборотах двигателя.
Я начинающий, сильно не ругайте...

Сообщение отредактировал BigCoster - Apr 11 2007, 18:39
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Stas633
сообщение Apr 11 2007, 22:18
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 6-01-06
Пользователь №: 12 901



Цитата(BigCoster @ Apr 11 2007, 19:24) *
Подскажите, что делать с дребезгом, если датчик положения
(у меня крыльчатка + оптический датчик "на просвет") подключен
к счётчику контроллера. ..

Считаю, что "дребезгом" называют неустойчивое (быстроменяющееся от min до беск.) сопротивление контактной группы при замыкании/размыкании. В случае использования оптического датчика дребезг не возможен по определению.

Если предположить, что ложные срабатывания вызваны датчиком положения, то на мой взляд возможны две причины. Первая, наиболее вероятная - это очень малый (или отсутсвующий вовсе) гистерезис усилителя тока фотоэлемента. Вторая, очень маловероятная - это малый размер отверстий (прорезей) в крыльчатке. Вторая причина может рассамриваться, если размер отверстий сопоставим с "биениями" (дрожанием) крыльчатки, вызванными вращением двигателя.

Также возможно, что ошибка в подсчете импульсов вызвана ошибкой в программе. Опубликуйте программу..
Go to the top of the page
 
+Quote Post
BigCoster
сообщение Apr 12 2007, 10:25
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 71
Регистрация: 9-03-07
Из: г. Днепропетровск
Пользователь №: 26 009



Цитата(Stas633 @ Apr 11 2007, 22:18) *
Считаю, что "дребезгом" называют неустойчивое (быстроменяющееся от min до беск.) сопротивление контактной группы при замыкании/размыкании. В случае использования оптического датчика дребезг не возможен по определению.

Если предположить, что ложные срабатывания вызваны датчиком положения, то на мой взляд возможны две причины. Первая, наиболее вероятная - это очень малый (или отсутсвующий вовсе) гистерезис усилителя тока фотоэлемента. Вторая, очень маловероятная - это малый размер отверстий (прорезей) в крыльчатке. Вторая причина может рассамриваться, если размер отверстий сопоставим с "биениями" (дрожанием) крыльчатки, вызванными вращением двигателя.

Также возможно, что ошибка в подсчете импульсов вызвана ошибкой в программе. Опубликуйте программу..


У меня осцилографом работает звуковая карточка, надеюсь скоро обзавестись настояшим, так что дребезга особо я заметить не могу. sad.gif
Но он проявляется когда крыльчатка останавливается на границе срабатывания оптопары.
Я это вижу на дин. индикации (считает, а двигатель стоит blink.gif )


Цитата(bgc @ Apr 12 2007, 09:49) *
много раз делал подобные схемы - заводил на вход таймера ( в том числе и квадратичного ) проблем с дребезгом не бывает .
На входе процессора ставил обычно 2н2 (убрать наведенные иголки)
Частоты от 0Гц до 300КГц.
Ищите проблему в другом.
При верхних частотах возникает проблема с подбором оптопары. На таких частотах (время порядка 5мкс) необходим фотодиод с усилителем, а обычные фотоприемники без него. Либо надо брать быстрый с встроенным усилителем (имеющий задержку меньше 1 мкс) либо городить внешний каскад (я бы так делать не стал) что стоит у Вас.

Сейчас у меня датчик подключен так:

Прикрепленное изображение
Go to the top of the page
 
+Quote Post
Stas633
сообщение Apr 12 2007, 13:44
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 6-01-06
Пользователь №: 12 901



Цитата(BigCoster @ Apr 12 2007, 11:25) *
У меня осцилографом работает звуковая карточка, надеюсь скоро обзавестись настояшим, так что дребезга особо я заметить не могу. sad.gif
Но он проявляется когда крыльчатка останавливается на границе срабатывания оптопары.
Я это вижу на дин. индикации (считает, а двигатель стоит blink.gif )
Сейчас у меня датчик подключен так:

Прикрепленное изображение


Настоятельно рекомендую R2 "разместить" в непосредственной близости от входа МП, и "+5в" "брать" от шины питания МП (от вывода питания МП). Конденсатор или убрать совсем, или емкость снизить с 1мкФ до <1нФ. На мой взгляд, приведенная схема датчика вполне работоспособна, и при условии исправных элементов, "сбоев" давать не должна.

Для того, чтобы исключить программную ошибку попробуйте разделить работу программы на этапы (на время отладки):
1 этап: - посчет импульсов; - индикация НЕ ОТОБРАЖАЕТСЯ;
2 этап: - вывод значения на индикатор; - импульсы не подсчитываются.

Программу подсчета импульсов на время отладки нужно максимально упростить (подсчитал -> вывел). Всяческие ветвления аглоритма убрать! Определение направления, расчет скорости и т.д. не выполнять.

Это позволит Вам выяснить работоспосбность связки датчик<->МП. И только когда удастся добиться устойчивой работы постого алгоритма, можно переходить к усложнению программы.

Re..Опубликуйте программу..
Go to the top of the page
 
+Quote Post
BigCoster
сообщение Apr 12 2007, 14:29
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 71
Регистрация: 9-03-07
Из: г. Днепропетровск
Пользователь №: 26 009



Цитата(Stas633 @ Apr 12 2007, 13:44) *
Настоятельно рекомендую R2 "разместить" в непосредственной близости от входа МП, и "+5в" "брать" от шины питания МП (от вывода питания МП). Конденсатор или убрать совсем, или емкость снизить с 1мкФ до <1нФ. На мой взгляд, приведенная схема датчика вполне работоспособна, и при условии исправных элементов, "сбоев" давать не должна.

Re..Опубликуйте программу..


R2 датчика и +5в близко к контроллеру,
он mcs51, программа соответственно...
1.Задание расстояния
Код
;--------------------------
;Настройка позиционирования|
;--------------------------
upr:
    mov th1,#0
    mov tl1,#0
    mov kol_post_down,#0
    mov kol_post_up,#0
    mov addr_length,#0
    setb tr0      ;разрешить счёт таймеру
    setb et0      ;разрешить прерывания от таймера
upr_set:
    jb k_set,upr_menu
upr_set_1:
    clr tr0
    clr tr1
    call time2
    call save_pos
    setb tr0
    setb tr1
upr_menu:
    jb k_menu,upr_plus
pr_menu_1:
    clr tr0
    clr tr1
    clr et0
    clr et1
    call time2
    ret
upr_plus:
    jb k_plus,upr_minus
upr_plus_1:
    call r_up
upr_minus:
    jb k_minus,upr_set
upr_minus_1:
        call l_down
    jmp upr_set
;FUNCTIONS upr_minus
;-------------------------------------------
;Крутит нижний двигатель, увеличивает длину |
;-------------------------------------------
l_down:          ;Крутим (L/DOWN) двигатель
    clr tr1
    clr et0
        clr type_count;инкрементирующий счётчик
        call on_down
        setb et0
        setb tr1
down_m1:
    jnb k_minus,down_m1
;clr tr0
;call time1
;setb tr0
;jnb k_minus,down_m1
    clr tr1
    clr tr0
    call on_all
    setb tr0
    ret
;FUNCTIONS upr_plus
;------------------------------------------
;Крутит верхний двигатель, уменьшает длину |
;------------------------------------------
r_up:           ;Крутим (R/UP) двигатель
    clr tr1
    clr et0
        mov a,th1
        cpl a
        mov th1,a
        mov a,tl1
        cpl a
        mov tl1,a
           setb type_count;декрементирующий счётчик
        call on_up
        setb et0
        setb tr1
up_m1:
    jnb k_plus,up_m1
;clr tr0
;call time1
;setb tr0
;jnb k_plus,up_m1
    clr tr1
    clr tr0
    call on_all
    setb tr0
    ret

2.Прерывания
Код
;************************
;* ОБРАБОТКА ПРЕРЫВАНИЙ *
;************************

;------------------------------------------------
;Обслуживание прерывания при переполнении таймера|
;------------------------------------------------
t0_overflow:
    jb type_count,t0_overflow_1
    call inc_counter
    reti
t0_overflow_1:
    call dec_counter
    reti
;FUNCTIONS t0_overflow
;------------------------
;Инкрементирующий счётчик|
;------------------------
inc_counter:
    clr tr0            ;запретить счёт таймеру
    call inc_bcd
    call bin_to_bcd
    call display
    setb tr0              ;разрешить счёт таймеру
    ret
;sub FUNCTIONS inc_counter
;---------------------------------------------
;Предварительная обработка значений для работы|
;    счётчика в инкрементирующем режиме     |
;---------------------------------------------
inc_bcd:
    mov a,th1
    mov dph,a
    mov a,tl1
    mov dpl,a
    ret
;FUNCTIONS t0_overflow
;------------------------
;Декрементирующий счётчик|
;------------------------
dec_counter:
    clr tr0
    call dec_bcd
    call bin_to_bcd
    call display
    setb tr0
    ret
;sub FUNCTIONS dec_counter
;---------------------------------------------
;Предварительная обработка значений для работы|
;     счётчика/2 в декрементирующем режиме    |
;---------------------------------------------
dec_bcd:
    mov a,th1
    cpl a
    mov dph,a
    mov a,tl1
    cpl a
    mov dpl,a
    ret
;common sub FUNCTIONS dec_counter & inc_counter
;----------------------------------------------------
;Подготовка значений для отображения функцией DISPLAY|
;    во время работы дв.      |
;----------------------------------------------------
bin_to_bcd:
    mov disp0,#2fh                ;устанавливаем
    mov disp1,#30h                ;начальные
    mov disp2,#30h                ;значения
bin_to_bcd_go:
    inc disp0                     ;подсчёт едениц
dec_dptr:
        dec dpl                    ;ументшаем dptr
        mov a,dpl                     ;пока не станет
    cjne a,#0ffh,bin_to_bcd_m1    ;равен 0ffh
    dec dph
bin_to_bcd_m0:
    mov a,disp0
    cjne a,#3ah,bin_to_bcd_go     ;если переполнение едениц
    
    inc disp1                     ;подсчёт десятков
      mov disp0,#30h
      mov a,disp1
      cjne a,#3ah,bin_to_bcd_go     ;если переполнение десятков
      
      inc disp2                     ;подсчёт сотен
      mov disp1,#30h
      mov a,disp2
      cjne a,#3ah,bin_to_bcd_go     ;если переполнение сотен
      
overload_bcd:        ;пишем Е в разряд сотен
      mov disp2,#3eh
      sjmp bin_to_bcd_exit          ;выход, если переполнение сотен
bin_to_bcd_m1:
        mov a,dph                     ;выход, если значения
    cjne a,#0ffh,bin_to_bcd_m0    ;подготовлены
bin_to_bcd_exit:
    ret
;common sub FUNCTIONS dec_counter & inc_counter
;-------------------------------------------
;Отображение чисел по адресам предварительно|
;    записаных в disp0, disp1, disp2        |
;-------------------------------------------
display:
    mov r0,disp2
    mov p0,@r0
    mov p2,#1h
    call time1
    mov r0,disp1
    mov p0,@r0
    mov p2,#2h
    call time1
    mov r0,disp0
    mov p0,@r0
    mov p2,#4h
    call time1
    clr p2.2
    ret
;-------------------------------------------------
;Обслуживание прерывания при переполнении счётчика|
;-------------------------------------------------
t1_overflow:
    clr tr0    ;запретить счёт таймеру
    clr tr1    ;запретить счёт счётчику
    mov p0,#0
    call stop
    setb yet
    setb tr0      ;разрешить счёт таймеру
    setb tr1      ;разрешить счёт счётчику
    reti
;FUNCTIONS t1_overflow
;---------------------------
;Паузa перед следующим движением двигателя|
;---------------------------
stop:
    call on_all
    call pause
    clr yet
    ret
;sub FUNCTIONS stop
;------------------
;Изменяющаяся пауза|
;------------------
pause:
    push 7
    push 5
    mov r0,pauses
    mov a,@r0
    mov r3,a
    inc r3
t55:    mov r4,#05h
t66:    mov r5,#0a0h
t77:    mov r7,#0ffh
    djnz r7,$
    djnz r5,t77
    djnz r4,t66
    djnz r3,t55
    pop 5
    pop 7
    ret


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

Сообщение отредактировал BigCoster - Apr 12 2007, 14:31
Go to the top of the page
 
+Quote Post
Stas633
сообщение Apr 12 2007, 15:13
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 105
Регистрация: 6-01-06
Пользователь №: 12 901



Цитата(BigCoster @ Apr 12 2007, 15:29) *
Код
2.Прерывания
[code];************************
;* ОБРАБОТКА ПРЕРЫВАНИЙ *
;************************

;------------------------------------------------
;Обслуживание прерывания при переполнении таймера|
;------------------------------------------------
t0_overflow:
    jb type_count,t0_overflow_1
    call inc_counter
    reti
t0_overflow_1:
    call dec_counter
    reti
;FUNCTIONS t0_overflow
;------------------------
;Инкрементирующий счётчик|
;------------------------
inc_counter:
    clr tr0        ;запретить счёт таймеру
    call inc_bcd
    call bin_to_bcd
    call display
    setb tr0             ;разрешить счёт таймеру
    ret
;sub FUNCTIONS inc_counter
;---------------------------------------------
;Предварительная обработка значений для работы|
;    счётчика в инкрементирующем режиме     |
;---------------------------------------------
inc_bcd:
    mov a,th1
    mov dph,a
    mov a,tl1
    mov dpl,a
    ret
;FUNCTIONS t0_overflow
;------------------------
;Декрементирующий счётчик|
;------------------------
dec_counter:
    clr tr0
    call dec_bcd
    call bin_to_bcd
    call display
    setb tr0
    ret


Общеизвестно, что при работе систем realtime, коей является Ваше устройство, программа обработки прерываний должна содержать минимум кода. Например алгоритм работы по прерыванию, может быть таким: 1. сохранил значение (таймера-счетчика или еще чего-либо) во временной переменной. 2. установил флаг обновления этой временной переменной 3.конец. И уж совсем не допустимым, на мой взгляд является использование вызова подпрограмм (call) из прерывания. Если нет возможности отказаться от использования какой-либо функции при отработке прерывания, то размещайте её (функцию) внутри прерывания!

Код
interrupt [EXT_INT1] void ext_int1_isr(void)
{
if(PIND.4)Encod=Encod-vc_step;
else Encod=Encod+vc_step;
valcod=1;
}

или

Код
interrupt [TIM2_OVF] void timer2_ovf_isr(void)
{
if (--Time2==0){Time2=15;vzvod=1;}
}


Ещё.... Если Вы используете работу по прерываниям в realtime системе, то необходимо "расставить" приоритеты. Точнее выбрать ГЛАВНУЮ ЗАДАЧУ, выполнение которой не может быть "отодвинуто" ни чем другим. Если для Вас главное - подсчет импульсов, то если "мешает" вывод на индикатор, то им нужно жертвовать... и т.д.
Go to the top of the page
 
+Quote Post
BigCoster
сообщение Apr 12 2007, 15:30
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 71
Регистрация: 9-03-07
Из: г. Днепропетровск
Пользователь №: 26 009



Цитата(Stas633 @ Apr 12 2007, 15:13) *
Общеизвестно, что при работе систем realtime, коей является Ваше устройство, программа обработки прерываний должна содержать минимум кода. Например алгоритм работы по прерыванию, может быть таким: 1. сохранил значение (таймера-счетчика или еще чего-либо) во временной переменной. 2. установил флаг обновления этой временной переменной 3.конец. И уж совсем не допустимым, на мой взгляд является использование вызова подпрограмм (call) из прерывания. Если нет возможности отказаться от использования какой-либо функции при отработке прерывания, то размещайте её (функцию) внутри прерывания!

Код
interrupt [EXT_INT1] void ext_int1_isr(void)
{
if(PIND.4)Encod=Encod-vc_step;
else Encod=Encod+vc_step;
valcod=1;
}

или

Код
interrupt [TIM2_OVF] void timer2_ovf_isr(void)
{
if (--Time2==0){Time2=15;vzvod=1;}
}


Ещё.... Если Вы используете работу по прерываниям в realtime системе, то необходимо "расставить" приоритеты. Точнее выбрать ГЛАВНУЮ ЗАДАЧУ, выполнение которой не может быть "отодвинуто" ни чем другим. Если для Вас главное - подсчет импульсов, то если "мешает" вывод на индикатор, то им нужно жертвовать... и т.д.


Приоритеты для прерываний установлены так: счётчик->таймер->внешние прерывания
(пока не задействованы).
По поводу всех замечаний на счёт написания программы согласен, но на том этапе,
когда она писалась оправданы были все действия (перед собой)
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Apr 12 2007, 15:44
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Ну, если счетчик считает при остановленном двигателе, и двигатель управляется тем же контроллером, то поможет только одно программное извращение - не считать, если двигатель установлен :-)
Ничто другое не поможет, если крыльчатка вибрирует - только изменение конструкции датчика.
Второй канал датчика, как уже предложили.
И непонятно, для чего нужно знать точное количество импульсов.
А приоритетов прерываний в AVR не существует. Так, теоретически можно искусственно сделать два уровня.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
BigCoster
сообщение Apr 12 2007, 16:13
Сообщение #9


Участник
*

Группа: Свой
Сообщений: 71
Регистрация: 9-03-07
Из: г. Днепропетровск
Пользователь №: 26 009



Цитата(Dog Pawlowa @ Apr 12 2007, 15:44) *
Ну, если счетчик считает при остановленном двигателе, и двигатель управляется тем же контроллером, то поможет только одно программное извращение - не считать, если двигатель установлен :-)

Это програмное извращение уже реализовано
Код
t1_overflow:
    clr tr0        ;запретить счёт таймеру
    clr tr1        ;запретить счёт счётчику
    mov p0,#0
    call stop
    setb yet
    setb tr0       ;разрешить счёт таймеру
    setb tr1       ;разрешить счёт счётчику
    reti

Цитата(Dog Pawlowa @ Apr 12 2007, 15:44) *
И непонятно, для чего нужно знать точное количество импульсов.

Чтобы проехать заданное расстояние
Цитата(Dog Pawlowa @ Apr 12 2007, 15:44) *
А приоритетов прерываний в AVR не существует. Так, теоретически можно искусственно сделать два уровня.

У меня не AVR
Добъюсь работы на этом контроллере потом буду "ковырять" AVR

Цитата(Stas633 @ Apr 12 2007, 15:55) *
Действительно, "разобраться в чужой программе сложнее, чем написать свою"..., но если Вы поясните алгоритм функционирования Вашего устройства, в части касающейся обработки вращения (углового перемещения) двигателя, то возможно Вам предложат КАК написать программу.

Алгоритм такой:
НАСТРОЙКА
-нажимаем кнопку-едем едем сколько надо
-нажимаем кнопку-сохраняем
и так необходимое кол-во раз
РАБОТА
-едим, сколько сохранили
-проехали, остановились, постояли некоторое время
и так столько, сколько раз сохраняли потом тоже самое в обратную сторону
Go to the top of the page
 
+Quote Post
Visor
сообщение Apr 12 2007, 17:13
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 240
Регистрация: 23-03-07
Пользователь №: 26 428



Цитата(BigCoster @ Apr 12 2007, 21:13) *
РАБОТА
-едим, сколько сохранили
-проехали, остановились, постояли некоторое время
и так столько, сколько раз сохраняли потом тоже самое в обратную сторону

Чтоб энкодер был реверсивный, нужно два датчика, смещенные на полшага. Иначе ошибка на смене направления обеспечена, да и с двумя датчиками можно считать туда-сюда, определяя направление вращения. Так устроены фирменные энкодеры.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- BigCoster   Энкодер и дребезг   Apr 11 2007, 18:24
- - Visor   Цитата(BigCoster @ Apr 11 2007, 23:24) По...   Apr 11 2007, 18:44
|- - BigCoster   Цитата(Visor @ Apr 11 2007, 18:44) Ошибка...   Apr 11 2007, 18:49
|- - Visor   200Гц довольно много. Крыльчатка правильно рассчит...   Apr 11 2007, 18:58
- - scifi   Надо посмотреть осциллографом. Тогда будет понятне...   Apr 11 2007, 19:21
- - CD_Eater   Цитатадатчик положения (у меня крыльчатка + оптиче...   Apr 11 2007, 19:22
- - Dog Pawlowa   Цитата(BigCoster @ Apr 11 2007, 18:24) По...   Apr 11 2007, 22:00
|- - Линь   Цитата(Dog Pawlowa @ Apr 12 2007, 02:00) ...   Apr 2 2014, 02:23
|||- - Dog Pawlowa   Цитата(BigCoster @ Apr 12 2007, 16:13) Чт...   Apr 12 2007, 16:51
|||- - Stas633   Цитата(BigCoster @ Apr 12 2007, 17:13) Ал...   Apr 12 2007, 17:03
|||- - Stas633   Цитата(Visor @ Apr 12 2007, 18:13) Чтоб э...   Apr 12 2007, 18:14
|||- - Visor   Цитата(Stas633 @ Apr 12 2007, 23:14) Вним...   Apr 12 2007, 19:08
||||- - Stas633   Цитата(Visor @ Apr 12 2007, 20:08) ....на...   Apr 13 2007, 10:36
||||- - Visor   Цитата(Stas633 @ Apr 13 2007, 15:36) Если...   Apr 13 2007, 19:38
|||- - Dog Pawlowa   Цитата(Stas633 @ Apr 12 2007, 18:14) [b]....   Apr 12 2007, 19:20
||- - Stas633   Цитата(BigCoster @ Apr 12 2007, 16:30) Пр...   Apr 12 2007, 15:55
|- - Visor   Цитата(Stas633 @ Apr 12 2007, 20:13) прог...   Apr 12 2007, 15:51
- - bgc   много раз делал подобные схемы - заводил на вход т...   Apr 12 2007, 09:49
- - ZAO   Цитата(BigCoster @ Apr 11 2007, 19:24) Я ...   Apr 12 2007, 10:27
|- - BigCoster   Цитата(ZAO @ Apr 12 2007, 10:27) Как раз ...   Apr 12 2007, 10:40
|- - ZAO   Цитата(BigCoster @ Apr 12 2007, 11:40) Вс...   Apr 12 2007, 10:46
|- - BigCoster   Цитата(ZAO @ Apr 12 2007, 10:46) А что за...   Apr 12 2007, 11:00
- - ZAO   Вы вполне можете завести одно таймерное прерывание...   Apr 12 2007, 11:41
|- - BigCoster   Цитата(ZAO @ Apr 12 2007, 11:41) Вы вполн...   Apr 12 2007, 11:55
|- - ZAO   Цитата(BigCoster @ Apr 12 2007, 12:55) То...   Apr 12 2007, 13:05
|- - rx3apf   Цитата(BigCoster @ Apr 12 2007, 12:55) То...   Apr 12 2007, 13:28
- - BigCoster   Вот осцилограмма работы датчика, записанная в Soun...   Apr 12 2007, 14:04
|- - Stas633   Цитата(BigCoster @ Apr 12 2007, 15:04) .....   Apr 12 2007, 14:43
|- - BigCoster   Цитата(Stas633 @ Apr 12 2007, 14:43) Поло...   Apr 12 2007, 15:10
- - _artem_   если есть механичекое дрожение крыльчатки при оста...   Apr 12 2007, 14:13
- - _Sam_   ЦитатаВот осцилограмма работы датчика ........ Из ...   Apr 12 2007, 23:03
|- - BigCoster   Цитата(_Sam_ @ Apr 12 2007, 23:03) Конечн...   Apr 13 2007, 10:23
- - _Sam_   ЦитатаДело в том что импульсы от датчика считает с...   Apr 13 2007, 11:32
|- - BigCoster   Цитата(_Sam_ @ Apr 13 2007, 11:32) Полнос...   Apr 13 2007, 15:44
- - BigCoster   ещё допишу... отображать совсем точно значения не ...   Apr 13 2007, 17:30
- - _Sam_   Наверное я не так понял программу. А что вы делает...   Apr 13 2007, 18:27
|- - BigCoster   Цитата(_Sam_ @ Apr 13 2007, 18:27) Наверн...   Apr 13 2007, 19:14
- - _Sam_   Вроде дошло. Попробуйте скачать какую-нибудь тер...   Apr 13 2007, 19:48
|- - BigCoster   Цитата(_Sam_ @ Apr 13 2007, 19:48) Вроде ...   Apr 13 2007, 20:09
|- - Dog Pawlowa   Цитата(BigCoster @ Apr 13 2007, 20:09) ...   Apr 14 2007, 10:03
|- - Stas633   Цитата(Dog Pawlowa @ Apr 14 2007, 11:03) ...   Apr 14 2007, 19:44
- - Visor   'BigCoster' Я сторонник отладки частями, и...   Apr 13 2007, 19:51
- - BigCoster   Спасибо всем за ответы, многие из них очень информ...   Apr 18 2007, 14:28
|- - mandr   Имею по работе проекты, в которых используются дат...   May 17 2007, 14:46
- - BigCoster   Я для себя решил, что без осциллографа схему менят...   May 17 2007, 15:36
|- - OlegIvanov   1. Двухканальный энкодер (о чем упоминалось выше),...   May 23 2007, 22:51
- - MaslovVG   Просмотрел ветку. Мое мнение. Подавить дребезг при...   May 24 2007, 06:06
- - vladimir_orl   Тема конечно устарела, но сейчас столкнулся с тем ...   Sep 3 2013, 05:44
|- - Tarbal   Цитата(vladimir_orl @ Sep 3 2013, 09:44) ...   Sep 4 2013, 20:02
|- - A. Fig Lee   Цитата(Tarbal @ Sep 4 2013, 16:02) ... Да...   Sep 10 2013, 01:07
|- - Tarbal   Цитата(A. Fig Lee @ Sep 10 2013, 05:07) К...   Sep 11 2013, 00:05
|- - A. Fig Lee   Цитата(Tarbal @ Sep 10 2013, 20:05) Я на ...   Sep 11 2013, 02:14
|- - Tarbal   Цитата(A. Fig Lee @ Sep 11 2013, 06:14) М...   Sep 13 2013, 13:30
- - Genadi Zawidowski   Какая скорость прихода импульсов с валкодера? Разр...   Sep 9 2013, 18:13
|- - Tarbal   Цитата(Genadi Zawidowski @ Sep 9 2013, 22...   Sep 9 2013, 19:35
|- - A. Fig Lee   Цитата(Genadi Zawidowski @ Sep 9 2013, 14...   Oct 3 2013, 20:53
- - A. Fig Lee   Добил. В принципе, избавлятся от дребезга в енкод...   Oct 4 2013, 19:27
- - A. Fig Lee   Состряпал hardware схемку. Не тестировал, правда. ...   Oct 4 2013, 20:28
- - Tarbal   Подавитель дребезга на стейт машине не давит дребе...   Oct 8 2013, 13:36


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 17:00
Рейтинг@Mail.ru


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