Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

относно де-баунсване на енкодер
http://mcu-bg.com/mcu_site/viewtopic.php?f=4&t=13699
Страница 1 от 1

Автор:  trakon [ Сря Апр 08, 2015 1:23 am ]
Заглавие:  относно де-баунсване на енкодер

Добър ден, въпроса ми може да прозвучи глупаво на вас професионалистите , но "кво да праим" :) , на зор съм
и го задавам - та опитвам се да изградя проста схема за хардуерно дебаунсване на двата изхода от квадратурен енкодер
към микро контролер съгласно схемата препоръчана от производителя на енкодера. Ето тази схема:

Изображение

Прерових стотици страници с общи приказки в интернет и така и не намерих категоричен отговор какъв тип трябва да е
10nF кондензатора заграден с червено - електролитен или керамичен.
Предварително благодаря , ако някой реши да си загуби времето с мен, като ме светне по въпроса.
Със здраве .

Автор:  timt [ Сря Апр 08, 2015 6:44 am ]
Заглавие:  Re: относно де-баунсване на енкодер

Не е електролитен и се слага против претрепване на контакта. 10нф малък ми се вижда а и 10 ком.

Автор:  mitko_el [ Сря Апр 08, 2015 8:18 am ]
Заглавие:  Re: относно де-баунсване на енкодер

В момента съм настъпал баш тая мотика... Енкодера затуй си има изходи А , В (има и С ама това не е важно в случая) .Следят се и 2-та сигнала (дори и само в една посока да го въртиш) , ако искаш да си ок.
Пък кондензатор 10nF електролитен , не знам да съществува.

Автор:  ike [ Сря Апр 08, 2015 11:51 am ]
Заглавие:  Re: относно де-баунсване на енкодер

trakon написа:
Добър ден, въпроса ми може да прозвучи глупаво на вас професионалистите , но "кво да праим" :)

Слагаш само един 47кОм резистор и ползваш софтуерен де-баунс.

Автор:  trakon [ Сря Апр 08, 2015 7:18 pm ]
Заглавие:  Re: относно де-баунсване на енкодер

Благодаря на отзовалите се. Значи щом не съществува 10nF електролитен ( то и аз не намерих такъв де ), остава да е керамичен. Досега си дебаунсвах бутоните на Ардуиното софтуерно, нещо от сорта:

int buttonFive, buttonFiveOld;
void setup() { }
void loop() {
buttonFive=digitalRead(5);
if (buttonFive!=buttonFiveOld) {
delay(15);
buttonFive=digitalRead(5); if(buttonFive==HIGH) { .....} else { ...... }
buttonFiveOld=buttonFive }


Сега обаче трябва да накача осем енкодера , по две линии -А и Б всеки на Ардуино, което в реално време чете сериен порт и движи три стъпкови моторчета. Имам усещането, че като завъртя енкодера и като ми започнат едни delay -и , моторчетата ще започнат да буксуват, а и с учебна цел искам да се науча да ги правя тея хардуерни дебаунсвания.
За сега съм закачил два доста качествени енкодера и дори не ги дебаунсвам , работят си доста добре , отчитат си на всеки детент . Чета ги по следния начин:

encoderPinA=digitalRead(2); encoderPinB=digitalRead(3);
if(((encoderPinA != encoderPinALast)&&(encoderPinB != encoderPinA)) || ((encoderPinB != encoderPinBLast) && (encoderPinB == encoderPinA))) { ....... }
else if(((encoderPinA != encoderPinALast) && (encoderPinB == encoderPinA) || (encoderPinB != encoderPinBLast) && (encoderPinB != encoderPinA))) { ..... }
encoderPinALast=encoderPinA; encoderPinBLast=encoderPinB;

Сега обаче съм взел по "ефтинджос", енкодери, но с повече функции и си искат дебаунсването.

@timt , такива ги предписва пройзводителя на енкодера, ще работи на пет волта . Ако били по- големи, имало опасност веригата да стане много бавна и да не отчита всяко прещракване ма енкодера, но като го направя, ще се чуе, и ако има проблеми ще пробвам различни стойности.

Автор:  stefan63 [ Сря Апр 08, 2015 7:41 pm ]
Заглавие:  Re: относно де-баунсване на енкодер

И за хардуерно , и за софтуерно - първо трябва да се сметне максималната честота на импулсите.

Автор:  timt [ Сря Апр 08, 2015 8:58 pm ]
Заглавие:  Re: относно де-баунсване на енкодер

@timt , такива ги предписва пройзводителя на енкодера, ще работи на пет волта . Ако били по- големи, имало опасност веригата да стане много бавна и да не отчита всяко прещракване ма енкодера, но като го направя, ще се чуе, и ако има проблеми ще пробвам различни стойности.
Както писа колегата stefan63 трябва да се тръгне от честотата на импулсите или по точно от спецификацията на енкодера. (бързината на действие)
Предположих че енкодера ти е обикновен от тия ръчните а то май се оказа промишлен за което най вероятно е 10 нф инак за малките стойността е по голяма.

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/