Сколько линий на энкодере

Вытащил энкодеры у струйных принтеров Epson и HP, черный с отверстиями просто был. Хочу выбрать и применить на самодельном токарном станочке.





Может у кого есть скетч, для Ардуино с выходом на дисплей, что бы определить количество линий, на круглом и плоском энкодерах, родные датчики есть, Ардуино есть, 1602 с адаптером есть, мелочевка есть .
Зашить скетч могу, а написать пока тяму нет, новичок я.
Буду весьма признателен за помощь!

А зачем они тебе в токарном?
Управлять оборотами двигателя лучше частотником, а обороты отслеживать можно кучей более простых способов.

1 лайк

я так понял он не обороты хочет регулировать, а гитару двигать с их помощью, не?

Откуда я знаю? Спрашивай у ТС. Я как вопрос понял - так и ответил. Но предварительно всё-таки спросил:

Не?))

Да, электронную гитару, резьбы нарезать, да и электронная линейка не помешает.
Для оборотов у меня частотник.

Для ваших задач лучше не энкодеры брать а штангенциркуль электронный, и уже с него брать данные и обрабатывать микроконтроллером


Там сверху есть крышечка под которой есть контакты к которым можно подключить ардуину, для получения данных в мм (0,00 мм) сразу. Сам штанген крепите на своём станке. Заодно пригодится и не только смотреть на риски , а сразу движение вашей гитары.

1 лайк

:wink:
“Электронная гитара” это на профессиональном жаргоне обозначает устройство, которое может синхронизировать вращение передней бабки токарного станка и вращение винта главное продольной подачи суппорта. Суппорт - это место крепления резцов. Продольная подача - подача вдоль оси вращения заготовки.

Слово гитара используется потому, что при механической синхронизации вращения шпинделя и вала используется шестеренчатый редуктор, так как возможно вращение в противоположенных направлениях, в составе редуктора есть паразитная шестерня, и весь комплект из шестеренок на вид напоминает гитару. Картинки - в интернете.

Теперь понимаешь, почему штангенциркуль тут ни при чем совершенно? И для чего нужен хороший энкодер, не менее 2000 линий на оборот?
При электрической синхронизации мы получаем данные о положение и вращении шпинделя и сообразно я данными включаем шаговый мотор продольной подачи. Продвинутые электронные гитары умеют еще и поперечную подачу и малую продольную контролировать. Это позволяет точить очень много интересного. Даже шар, если “э. гитара” двух-трех координатная. Важно иметь хороший абсолютный энкодер на всех координатах, так как шаговый мотор может пропустить шаг при большом сопротивлении резанию, и мы испортим заготовку. То есть нельзя полагаться исключительно на счет шагов мотора.

Объяснил? Если ты это все уже знал - извини. Просто штанген тут совсем не при делах.


Добавлю:
на простом китайце или самодельном станке, если установка линейки не предусмотрена, но конусную резьбу, часто необходимую для штуцеров гидравлики, выточить просто нереально без электрогитары. Если есть длинные заготовки, то спасает смещение задней бабки, но это не всегда возможно и не всегда есть длинный пруток латунный.
Очень опытный токарь может нарезать такое обратной установкой резца и руками “поддавливать” при резке. Я это делал, у меня опыта для нормальной резьбы не хватает в таких “танцах”. Деталь конечно выходит, но говенная. И резцы ломаются. Но я и не токарь. :wink:
А на электроподаче ты просто можешь резать конусную резьбу либо малой продольной, либо в двух координатах - на каждый оборот заготовки смещение вдоль- для шага резьбы и поперек- для конуса.

Так пусть для начала это поставит и попробует. Оно закрытое и не будет засираться и сломать сложно. И параметры его известны. А когда все начнет получаца можно и поинтереснее что то помтавить.
Опять же можно муфточку нацепить которая погрешности установки скушает

1 лайк

Так как раз жестко и закрепить штаеген на суппорте одним концом и вторым на станине. Я так понял у него нет даже шаговика, который двигает суппорт туда/сюда. Как раз обратная связь от штангена, без всяких мудрений с шестеренками может обеспечивать любой шаг резьбы. И через контроллер можно добиться более точной синхронизации со скоростью шпинделя. Даже датчики не придётся никакие ставить.

Спасибо за подробное описание, я бы и сам не смог так изложить суть задачи.
Народ делает электронные гитары и электронные линейки на основе энкодеров от принтеров. Есть готовые решения и написанные скетчи под Ардуино, но надо знать количество линий на энкодерах, чтоб внести изменения в готовый скетч. Каждый делает исходя из того что попалось из принтеров вытащить, вот получается разное числи линий, сигнал синусоида или меандр да и длина разная та же диаметр. Вот для этого понадобилось прилада на которой можно это определить и выбрать то что лучше подходит.
Токарник собрал себе что то проточить, подогнать, обрезать, точность меня устраивает. Теперь хочу улучшить его функционал, поставить энкодер на вал, на продольной подаче предусмотрен шаговый двигатель и будет мне резьба. Ну и в дальнейшем поставить на продольную и поперечную подачу электронные линейки, а поперечкой тоже управлять шаговиком. Штанген меня не устраивает, мне надо на продольной и поперечной подаче 300 мм рабочего хода.
До весны хочу подготовить электронную часть, летом установить. Станочком пользуюсь на даче в летний период, там его и делал, там он и стоит.
Как пример выложу вариант электронной линейки svoll на металлическом форуме.

#include <Arduino.h>
#include <U8g2lib.h>
#include <SPI.h>
#include <Wire.h>

U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0);

boolean A;
boolean B;
int P;
float M;

void setup() {
// put your setup code here, to run once:
pinMode(12,INPUT_PULLUP);
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
//pinMode(2, INPUT);
//pinMode(3, INPUT);

attachInterrupt(0,blinkl,CHANGE);
attachInterrupt(1,blik,CHANGE);
u8g2.begin();
P=0;
M=0;
Serial.begin(115200);

}

void loop() {

if (digitalRead(12) == LOW)
{
P=0;
}

M=(P/28.25); // 28,25 - рассчетный коэффециент отношения длины к количеству импульсов с енкодера на этой длине.
u8g2.clearBuffer();
u8g2.setFont(u8g2_font_logisoso28_tr);
u8g2.setCursor(0,30);
Serial.println(M);
u8g2.print(M);
// u8g2.print(P/2);
u8g2.sendBuffer();

}

void blinkl()
{
A=digitalRead(2);
B=digitalRead(3);
if (B==A) P=P+1;
else P=P-1;
}

void blik()
{
A=digitalRead(2);
B=digitalRead(3);
if (B!=A) P=P+1;
else P=P-1;
}
Я не программист, пока пытаюсь понять что к чему.
Из этого скетча хотелось получить возможность считывать линии вперед и назад, наверно он должен быть попроще. Электроника у меня есть, в том числе и шаговые двигатели на продольную и поперечную подачу.

длину окружности знаешь. посчитай сколько линий в 10мм и будет тебе счастье

За время обсуждения я бы эти линии на энкодере пальцем пересчитал…

2 лайка

Понял, что код я вставил не правильно, если не получится извините.

Хорошие подсказки, но мне надо не палец что бы считал, а Ардуино!
Хорошо бы подсказать, можно этот скетч поправить, или новый надо писать,

```cpp

#include <Arduino.h>
#include <U8g2lib.h>
#include <SPI.h>
#include <Wire.h>

U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0); 


boolean A;
boolean B;
int P;
float M;


void setup() {
  // put your setup code here, to run once:
pinMode(12,INPUT_PULLUP);
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
//pinMode(2, INPUT);
//pinMode(3, INPUT);

attachInterrupt(0,blinkl,CHANGE);
attachInterrupt(1,blik,CHANGE);
u8g2.begin();
P=0;
M=0;
Serial.begin(115200);

}

void loop() {
  
if (digitalRead(12) == LOW)
{
  P=0;
}

  M=(P/28.25); // 28,25 - рассчетный коэффециент отношения длины к количеству импульсов с енкодера на этой длине.
u8g2.clearBuffer();
   u8g2.setFont(u8g2_font_logisoso28_tr);
   u8g2.setCursor(0,30);
   Serial.println(M);   
   u8g2.print(M);
  // u8g2.print(P/2);
   u8g2.sendBuffer();
   
}

void blinkl()
{
  A=digitalRead(2);
  B=digitalRead(3);
  if (B==A) P=P+1;
  else P=P-1;
    }

void blik()
{
  A=digitalRead(2);
  B=digitalRead(3);
  if (B!=A) P=P+1;
  else P=P-1;
    }

Понятно, что мой ответ отчасти шутка, но только отчасти. Каков был вопрос, таков и ответ. Вы уже знаете, как этот конкретный энкодер к ардуине подключить? Где у него что? Если нет, то надо сначала с этим разбираться. Если знаете, то почему не подключить и не посмотреть, что этот Ваш скетч выдаст?
А программирование всё равно осваивать нужно. Вряд ли Вам будет достаточно того, что скетч на экран циферки выдаёт. Наверное ещё и управлять чем-то в зависимости от этих циферок потребуется?

Знаю где у него что и знаю как подключить, как раз сейчас рисую платочку на которой будет стоять и бегать по линейке датчик.
На плате предусмотрю установку формирователя если будет синусоида или будет трех вольтовый, впаяю. Энкодеры сразу установил в посадочные места, чтобы не изгадить ленту или диск. Два струйника лишились энкодеров, два стоят ждут своей участи, выбирай не хочу. Осциллограф есть, мелочевка тоже.

Программирование надо осваивать однозначно, все равно даже в готовых решениях надо вносить параметры своего станочка.
На данном этапе я ноль и поэтому обращаюсь к форумчанам, может кто то писал, что то подобное, или можно подогнать , что есть.

Нет никакого смысла делать энкодеры из принтеров.
У китайцев можно купить вполне вменяемые энкодеры по вменяемым ценам (1000-1500р)

1 лайк

Нет никакого смысла делать токарный, народ делает и это им нравится.
Энкодера надо не один, а три, да линейные стоят совсем другие деньги.
Один принтер стоит одну шоколадку.

Я хз что у вас в голове, но уци с тремя линейками, с дискретностью 1мкм, стоит у китайцев 15-20тр.
Если вам хочется трахаться “за шоколадку”, это сугубо ваше желание.

А какое разрешение у линейки “за шоколадку” ?

Оффтоп: в токарном станке самое важное станина, потому что все остальное сменные детали, легко покупаемые на Али или ещё где. И моторы и вал и шестерни и бабка. Ещё шпиндельный узел с подшипниками можно попридумывать для уменьшения биений.
Но проще купить китайца и его апгрейдить. Так как все равно главное - СТАНИНА. Остальное в принципе фигня.

Станина у меня чугуняка еще та, лучше чем у китайца и любого настольного.
Суппорт от ТВ320 стал как влитой.

У народа, от струйного цветного типа - Epson, разрешение 0,035мм.