Jump to content
Текстильный принтер это просто!
mihali4

Планшелтник на базе Epson L120

Recommended Posts

Приветствую всех. Решил собрать планшетник на одной из дешевых и распространенных принтеров L120. Всеми процессом сборки буду делиться здесь. Наблюдение, исходники программ, фото.  Думаю получиться бюджетно. А то тот же юник А4 на его базе стоит 43 000 рублей без учета пересылки в мой регион (в Казахстан). Исходник же мне обошелся в 6 раз дешевле. Вернее обойдется в течении года, я вчера его забрал в рассрочку. Постараюсь сделать, чтобы смог повторить каждый.

Share this post


Link to post
Share on other sites

Итак все переделывать поэтапно:

Этап 1 прошел снял крышку и посмотрел какие сенсоры есть, чтобы "мозги" работали по прежнему при этом бумаги по факту не было. Краску в новый принтер я заливать не стал чтобы было удобно его верететь как хочешь и не бояться что что-то выльется.

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

Второй датчик (обычная оптопара) я нашел на плате по умолчанию она перекрыта и открывается примерно на 1,75 оборота  (кругового энкодера) после начала забора бумаги.  По времени я не могу сказать сколько это проходит, я буду ориентироваться не на время  а именно на движение энкодера.  И снова закрывается незадолго до выхода бумаги (1,5 оборота энкодера или 3-5 см печати).

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

Если взять базовое положение, чтобы разблокировать парковку головки надо  ее подать в крайнее правое положение и прокрутить энкодер на 1/12 оборота

По идее потом головка отъезжает на центр (или левый край тут не важно) главное чтобы отъехала от своего парковочного места.

В таком положении уже можно осуществлять осуществлять процесс захвата листа, для этого прокрутить энкодер немного назад  и потом как обычно - начнется процесс захвата листа бумаги (чисто механически).

После печати блокировка головки на парковке также осуществляется обратным поворотом энкодера на 1/12 оборота.

В общем принято решение - считывать энкодер и писать программу  для ардуино, которая будет управлять столом и датчиком присутствия бумаги. 

Inked20200224_134120_LI.jpg

 

Share this post


Link to post
Share on other sites

2 этап. подключаю ардуино к оптопаре энкодера. Припаиваю провода по следующей схеме (мультиметр в помощь)248002732_-.thumb.jpg.9c12d89fa658fa0d8ccf0b552927f416.jpg

А и В к второму и третьему цифровому входу ардуино Нано и соеденить минусы питания.

 

В нано набросал и залил такой код:

 

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

void setup() {
  Serial.begin(115200);
 attachInterrupt(0,blink1, CHANGE);
attachInterrupt(1, blink, CHANGE);
}

void loop() {
  if (Pold!=P) {Serial.println(P, DEC);
    Pold=P;
  }
  int buff = Serial.parseInt();
  if (buff == 1) { Pold=0;  P=0; }
 

}


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

 

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

 

Продолжение следует.

 

Share this post


Link to post
Share on other sites

Обещал фото 

 

Так подключился к потопаре533161347_.thumb.JPG.572ca87e92627693160075c6bf8f6d47.JPG

Так подключил к ардуино

266059409_.thumb.JPG.2b2b8d1456b915d4644e165d3bba0dbc.JPG

 

При включении (подождал до режима ожидания/ошибки и выключил ) получил следующий "лог" в терминале

16:19:20.018 -> -32000
16:19:25.000 -> -32000
16:19:26.008 -> -32002
16:19:28.028 -> -32002
16:19:30.022 -> -21500
16:19:31.030 -> -19134
16:19:35.006 -> -11615
16:19:36.014 -> 16553
16:19:37.021 -> 22535
16:19:51.017 -> 22330
16:19:53.035 -> 22331
16:19:55.024 -> 22488
16:19:56.034 -> 24026
16:19:57.043 -> -29568
16:19:59.030 -> -28251
16:20:00.037 -> -26554
16:20:02.022 -> -26759
16:20:03.032 -> -26760

типа данных int явно не хватает поскольку один оборот энкодера это примерно 4308 срабатываний датчика энкодера (диапазон данного типа чисел -32*1024  + 32*1024)

 

при использовании float типа данных явно идут пропуски ардуина не справляется

float не пойдет - пропуски
16:21:53.470 -> -32000.0000000000
16:21:57.474 -> -31999.0000000000
16:21:59.471 -> -20380.0000000000
16:22:00.480 -> -19130.0000000000
16:22:05.093 -> -16661.0000000000
16:22:06.104 -> -6856.0000000000
16:22:20.094 -> -7060.0000000000
16:22:24.105 -> -6621.0000000000
16:22:25.117 -> 3496.0000000000
16:22:26.097 -> 6577.0000000000
16:22:28.113 -> 9587.0000000000
16:22:31.105 -> 9382.0000000000

 

Надо думать над  переделкой и усовершенствование программы

 

 

Share this post


Link to post
Share on other sites

мне кажется надо взять платку    с     " народным контролёром"   STM32F103C8T6  

использовать два таймера в режиме чтения квадратурного энкодера

первый  таймер будет выдавать данные о положении  каретки ( автоматически , разрядности хватает)

второй  таймер ( используя прерывания) данные о положении вала протяжки бумаги

 

Share this post


Link to post
Share on other sites

Вызов сериал порта тормозит процессор. Если закоментировать, тормозить не должен.

Share this post


Link to post
Share on other sites
2 часа назад, Sentiurev сказал:

Вызов сериал порта тормозит процессор. Если закоментировать, тормозить не должен.

У вас ошибка в понимании принципов работы вашего скетча,  а не в том,  что что то тормозит

Share this post


Link to post
Share on other sites
10 часов назад, qwer-31 сказал:

мне кажется надо взять платку    с     " народным контролёром"   STM32F103C8T6  

использовать два таймера в режиме чтения квадратурного энкодера

первый  таймер будет выдавать данные о положении  каретки ( автоматически , разрядности хватает)

второй  таймер ( используя прерывания) данные о положении вала протяжки бумаги

 

Ну пока ардуина справляется со своей функцией корректно отчитывает данные энкодера, если не хватит скорости буду скорей всего переходить на Orange Pi, поскольку она есть в наличии и  есть опыт работы с GPIO на ней. А вот ни STM32F103C8T6  самой ее нет не опыта под нее писать нет. А с учетом что заказ ее с Китая будет идти не меньше месяца - пока не буду вообще рассматривать данный вариант.   

Share this post


Link to post
Share on other sites
11 часов назад, qwer-31 сказал:

мне кажется надо взять платку    с     " народным контролёром"   STM32F103C8T6  

использовать два таймера в режиме чтения квадратурного энкодера

первый  таймер будет выдавать данные о положении  каретки ( автоматически , разрядности хватает)

второй  таймер ( используя прерывания) данные о положении вала протяжки бумаги

 

Кстати о положении каретки. Я тоже думал читать ленточный энкодер для расчета положения каретки, но для этого надо использовать еще +2 прерывания, а значить подойдет из ардуино только Мега (там 6 выводов с прерываниями), но думаю зачем лишние заморочки и расчеты и решил поставить 2 простые оптопары, которые будут фиксировать положение парковки и самое крайнее правое положении,  когда каретка уходит на разблокировку "замка" парковки. На каретку надо лишь закрепить 2 флажка, которые будут закрывать установленные оптопары (места для крепления самих оптопар на металлический корпус предостаточно).    Оптопарами я также в дальнейшем буду ограничивать положение движения столешницы.   В качестве донора оптопар  смонтированных на небольших платах  я разобрал один из имеющихся в наличии сломанных HP 1020.  

Share this post


Link to post
Share on other sites
8 часов назад, Sentiurev сказал:

Вызов сериал порта тормозит процессор. Если закоментировать, тормозить не должен.

тормозиит не печать на сериал порт, а опрос

вернее вот эта часть

 int buff = Serial.parseInt();
  if (buff == 1) { Pold=0;  P=0; }

 Причем прерывания отвечающие за чтения энкодера отрабатываются нормально,

Ардуино полностью пока хватает для работы эмуляции. 

6 часов назад, Kochevnik сказал:

У вас ошибка в понимании принципов работы вашего скетча,  а не в том,  что что то тормозит

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

Share this post


Link to post
Share on other sites

Заняться работой над модернизацией принтера почти не получается в рабочие дни буду заниматься в основном в выходные.

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

На ближайшую выходные планирую следующее: 

1. Заправляю принтер чернилами. 

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

Для знатоков сразу вопрос TTL уровень на платах Epson какой 3,3 вольта или 5 ? Или вообще не стоит туда подавать напряжение (чтобы не спалить плату) и например для закрытия открытия датчика наличия бумаги использовать маленький сервопривод?

3. Устанавливаю 2 датчика и 2 оптопары на положение каретники.

4. Пробую различные варианты поведения принтера и  печати и делаю лог журнал. 

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

Для движения стола собираюсь использовать следую связку:

StepStick A4988 драйвер шагового двигателя с радиатором

Шаговый двигатель 17HS1352-P4130 12В-24В, 1.3А, 0.26N.m

использую ременную передачу через шкиф Шкив GT2-6 мм (20 зубьев, 5 мм)

Как считаете такой двигатель справиться с нагрузкой стола формата А4, но с учетом того,  что там будут не футболки а возможно и "бревно" весом в 0,5- 1,5 кг?

 

 

 

Share this post


Link to post
Share on other sites
2 часа назад, mihali4 сказал:

вопрос TTL уровень на платах Epson какой 3,3 вольта или 5 ?

Ну это ж просто тестером ткнуть - 3.3в

2 часа назад, mihali4 сказал:

Как считаете такой двигатель справиться с нагрузкой стола формата А4, но с учетом того,  что там будут не футболки а возможно и "бревно" весом в 0,5- 1,5 кг?

С мелким шкивом гт2 справится

  • Like 1

Share this post


Link to post
Share on other sites
14 часов назад, mihali4 сказал:

Ардуино полностью пока хватает для работы эмуляции. 

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

Share this post


Link to post
Share on other sites
16 часов назад, mihali4 сказал:

4. Пробую различные варианты поведения принтера и  печати и делаю лог журнал. 

кусочек из мануала

L200_L100_series_A 42-43.pdf

  • Like 1

Share this post


Link to post
Share on other sites
7 часов назад, qwer-31 сказал:

кусочек из мануала

L200_L100_series_A 42-43.pdf

За мануал спасибо!  К сожалению в нем не прописаны временные или шаги сдвига энкодера для проверки наличия датчика бумаги, на сколько (измеряя в оборотах или тактах энкодера) необходимо продвигать бумагу до начала печати,в какой момент датчик наличия бумаги закрывается и т.д. и т.п. И поэтому надо это все анализировать, чтобы знать, когда закрыть тот же датчик наличия бумаги, знать в какой момент начать двигать стол (точно определить момент начала печати, а не просто движения головки) и т.д. 

Вчера вечером получилось уделить немного времени проекту и подключил датчики для анализа положения головки и дублирующий датчик наличия бумаги.

DSC03572.thumb.JPG.f4053e94f13614a0d326375c4640be5a.JPGDSC03577.thumb.JPG.20c414aa66bd7eef5899a6d05b8db8f4.JPGDSC03571.thumb.JPG.3a3be37f539ec3ca4df333dd5764c1c3.JPG

    Исходник датчиков брал из HP 1020.

Датчики положения каретки  закрепил на двухстороний скотч вместе со "шторкой". Возможно они так и останутся  после всех анализов, тогда их надо будет перенести на лицевую часть каретки там есть место, здесь они будут мешать закрытию верхней пластиковой крышкой (ее я планирую в финале оставить на заводском месте).

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

 

Share this post


Link to post
Share on other sites

Если вдруг кому-то интересно распиновка датчика из HP1020 следующая DSC03574.thumb.JPG.9f8911f564bb369a8b73407f0fe22550.JPG

Share this post


Link to post
Share on other sites
В 12.03.2020 в 06:00, mihali4 сказал:

Если вдруг кому-то интересно распиновка датчика из HP1020 следующая DSC03574.thumb.JPG.9f8911f564bb369a8b73407f0fe22550.JPG 

А вот распиновка обычной оптопары это уже 100% эксклюзив. Держите нас в курсе!

Share this post


Link to post
Share on other sites

Не обращайте внимания (просто игнорируйте и не ведитесь) на этого странного типа, от которого никакой пользы и один словесный бред во всех темах и делитесь информацией.  Я думаю иногда даже такие простые вещи будут новичкам полезны! 

  • Like 1

Share this post


Link to post
Share on other sites

По оптопарам от HP 1020 оказался косячок +3,3 вольта напрямую им оказалось много сгорели они у меня через несколько минут работы. Расковырял еще один сломанный HP 1020 и подключил от него оптопары их все через резисторы 470 ом. Вроде полет нормальный. Для корректной работы  оптопары через ардуино надо порт инициализировать с подтягивающим резистором например pinMode(4, INPUT_PULLUP);

Сегодня удалось сделать все подключения и получить логи принтера в процессе работы (печати страницы).

Вот пример:

лог печати
============================================
10:18:25.036 -> P1=0  D=0
10:18:25.036 -> P1=-1  NAPR GHANGE=0
10:18:25.036 -> P1=-1  С=1
10:20:12.537 -> P1=-1  NAPR GHANGE=1
10:20:15.151 -> P1=12867  С=0
10:20:18.192 -> P1=12867  С=1
10:20:20.795 -> P1=13249  D=1
10:20:21.027 -> P1=13633  D=0
10:20:22.967 -> P1=13633  С=0
10:20:23.135 -> P1=13632  NAPR GHANGE=0
10:20:23.203 -> P1=11721  NAPR GHANGE=1
10:20:23.503 -> P1=16578  С=1
10:20:23.571 -> P1=18381  E=1
10:20:23.671 -> P1=20698  NAPR GHANGE=0
10:20:23.772 -> P1=16147  NAPR GHANGE=1
10:20:23.941 -> P1=20093  NAPR GHANGE=0
10:20:23.974 -> P1=18425  NAPR GHANGE=1
10:20:23.974 -> P1=18424  NAPR GHANGE=0
10:20:24.041 -> P1=16406  NAPR GHANGE=1
10:20:24.175 -> P1=18326  С=0
10:20:24.607 -> P1=19300  NAPR GHANGE=0
10:20:24.706 -> P1=19301  NAPR GHANGE=1
10:20:29.386 -> P1=38986  NAPR GHANGE=0
10:20:29.386 -> P1=38987  NAPR GHANGE=1
10:20:31.522 -> P1=45796  E=0
10:20:33.556 -> P1=61868  С=1
конец печали

 

 

Share this post


Link to post
Share on other sites

В логе P1- такты считывание энкодера

Датчики:

D - парковка (самое крайнее правое положение  каретки для блокировки разблокировки замка)
С - правое положение каретки на паковочном месте или нет
Е - датчик наличия бумаги

NAPR GHANGE=1 - енкодер меняет направление,  и начинает сдваиваться по ходу печати (по часовой стрелке).

NAPR GHANGE=0 - енкодер меняет направление,  и начинает сдваиваться по ходу печати (против часовой стрелки).

Погонял несколько листов с разными вариантами печати. Везде принтер ведет себя одинаково положение энкодера + - 20-50 тактов но все идентично.

На пол ученых логов сделал выводы и порядок поведение принтера получился следующий:

прокрутил вал вперед P1=12867 (разблокировка замка)
каретка выехала
каретка заехала
каретка заехала на блок парковки
каретка покинула блок парковки
каретка покинула положения парковки (С=0 В=0 E=0 Направление=1 P1=13632) = режим подготовки печати
Смена направления движения на = 0 (С=0 В=0 E=0 Направление=0 P1=13632) -начала взвода механизма захвата бумаги
прокрутка назад до P1=11721 (С=0 В=0 E=0 Направление=0 P1=11721) - взвода механизма бумаги завершен
Смена направления на = 1 (С=0 В=0 E=0 Направление=1 P1=11721) - начата протяжки бумаги
Головка уехала на парковку  (С=1 В=0 E=0 Направление=1 P1=16578) - идет режим протяжки бумаги
Откырытие датчика наличия бумаги  (С=1 В=0 E=1 Направление=1 P1=18381) - момента Открытия датчика наличия бумаги!!!!! 
далее еще немного потянуло бумагу до P1=20698 (С=1 В=0 E=1 Направление=1 P1=20698) идет режим протяжки бумаги
Смена направления на = 0 (С=1 В=0 E=1 Направление=0 P1=20698) начало установки  бумаги назад на нулевое положение
прокрутка назад до P1=16147 (С=1 В=0 E=1 Направление=0 P1=16147)  установка бумаги на нулевое положение назад !!!!
протянула вперед до P1=20093
потом назад до  P1=18425 (пауза или +1)
и еще назад до P1=16406
потом вперед до P1=18326
В положении P1=18326 каретка покидает положение С=0 (С=0 В=0 E=1 Направление=0 P1=18326) начало печати и запуск движение стола с этого момента!!!!!!!
С этого момента каждый такт движения энкодера передается на движение двигателя стола!!!
во время печати бывает незначительно отклонение направления (смена направления и сдвиг назад на такт или несколько (до 3-х) назад)
думаю стоит их пока игнорировать.
Когда значение P1=45796 (С=1 В=0 E=0 Направление=1 P1=45796) момента Закрытия датчика наличия бумаги!!!!!  
стол продолжаем двигать вместе с энкодером до ХХХ - пока не известно??? (можно до закрытия оптопары конца выезда листа, чтобы забирать готовый напечатаный объект - футболку/доску и т.д.)
по идее какое-то время (количества тактов) возможно еще идет печать потом идет выплевывание листа из принтера.
Затем головка становится на парковочное место.
P1=61868  С=1 (С=1 В=0 E=0 Направление=0 P1=61868) - конец режима печати.

На основании лога буду дальше писать программу для Ардуино.

Share this post


Link to post
Share on other sites

Листинг программы для анализа поведения принтеров другой модели может кому-то пригодиться:

 

boolean A, B, C, D, E, Cold, Dold, Eold, Napr, Naprold;
// Napr напревление вращения
int P, Pold, Pdelta;
long P1;
float M;

void setup() {
  Serial.begin(115200);
  pinMode(4, INPUT_PULLUP);
  pinMode(5, INPUT_PULLUP);
  pinMode(6, INPUT_PULLUP);
  P = 0;   Pold= 1;   P1=0;   Cold = 0;   Dold = 1;   Eold = 0;
  Napr=0; Naprold=1;
  attachInterrupt(0, blink1, CHANGE);
  attachInterrupt(1, blink, CHANGE);
}

void loop() {
  C = digitalRead(4);
  D = digitalRead(5);
  E = digitalRead(6);
  Pdelta= P-Pold;
 if (C != Cold)  { Serial.print("P1="); Serial.print(P1, DEC); Serial.print("  С="); Serial.println(C, DEC); Cold=C;}
 if (D != Dold)  { Serial.print("P1="); Serial.print(P1, DEC); Serial.print("  D=");  Serial.println(D, DEC); Dold=D;}
 if (E != Eold)  { Serial.print("P1="); Serial.print(P1, DEC); Serial.print("  E=");  Serial.println(E, DEC);  Eold=E;}   
 if (Pdelta > 0) {
      P1=P1+Pdelta;  Napr=1; P = 0;  Pold= 0;
      }
if (Pdelta < 0) {
      P1=P1+Pdelta; Napr=0 ;P = 0;  Pold= 0;
      }    
if (Napr != Naprold)  { Serial.print("P1="); Serial.print(P1, DEC); Serial.print("  NAPR GHANGE=");  Serial.println(Napr, DEC);  Naprold=Napr;}   
}


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

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

Он может показаться кое где на первый взгляд не очень правильный, но например  пременная P имеет размер только 2 байта, чтобы прерывания 100% обрабатывались и не было пропусков. Поскольку 2 байта мало для побсчета импулисов той-же протяжки листа ведена Pdelta, которая в моменты простоя программы свои значения уже передает в  перменную P1 (Long = 4 байта) с данным типом ардуина уже не так быстро справляется.

 

 

 

Share this post


Link to post
Share on other sites
16 часов назад, Kochevnik сказал:

Не обращайте внимания (просто игнорируйте и не ведитесь) на этого странного типа, от которого никакой пользы и один словесный бред во всех темах и делитесь информацией.  Я думаю иногда даже такие простые вещи будут новичкам полезны! 

Спасибо! Я и стараюсь, чтобы новички смогли самостоятельно повторить мои действия + не обязательно именно на данной модели принтера. Я тоже новичок,  я ни разу не модернизировал принтеры, с арудино опыта мало, но он есть и есть опыт в написании программ. Небольшой опыт  в радиотехнике. И порой элементарные вещи сложно найти даже в интернете.  Даже взять ту же оптопару с принтера В интернете полно их продаются, но нет схем подключения. Есть общие схемы (подключение любой пары), но конкретно на этой даже не написано какая часть отвечает за диод, какая за фототранзистор пары. По напряжению тоже не понятно. Диод обычно нормально переносит 3,3 вольта, а в этой оказалось - это много.  А идти покупать контретные модели под которые есть схема подключения не каждый может. Да и не в каждом (в том числе и в моем) городе есть место с богатым выбором компонентов. Много приходиться заказывать через интернет, а с учетом ажиотажа вокруг короновируса доставка явно тормозит, поэтому леплю из того, что имею.

 

Share this post


Link to post
Share on other sites

С учетом с того, что у Ардуино TTL=5V, а принтера TTL<5V решил пока ничего не паять на оптопару отвечающую за наличие бумаги (боюсь из-за кривобокости или случайно  подать туба 5В и спалить плату принтера). У меня есть небольшой сервопривод для  ардуино буду его использовать для открытия и закрытия датчика.

Share this post


Link to post
Share on other sites

Дополнение: Когда головка находится в положении дома (С=1) и идет активное движение энкодера в обратную сторону надо запускать насос прокачки памперса.  С большей долей вероятности это будет отдельный двигатель (обычный, подключенный через реле), поскольку у меня нет желания переносить всю ось с энкодером и основным двигателем (я ось просто обрежу). 

Share this post


Link to post
Share on other sites
32 минуты назад, mihali4 сказал:

С учетом с того, что у Ардуино TTL=5V, а принтера TTL<5V решил пока ничего не паять на оптопару отвечающую за наличие бумаги (боюсь из-за кривобокости или случайно  подать туба 5В и спалить плату принтера). У меня есть небольшой сервопривод для  ардуино буду его использовать для открытия и закрытия датчика.

зачем городить огород  используйте опторазвязку  например   ps817

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

  • Upvote 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×