Форум
 

Вернуться   Форум "Фрикер Клуб" - кодграббер своими руками > Основной раздел > Микроконтроллеры

Важная информация

Ответ
 
Опции темы Опции просмотра
Старый 08.07.2016, 02:55   #1
iopq Меню Пользователя
Вступил в клуб
 
Регистрация: 07.08.2012
Сообщений: 38
По умолчанию термопринтер из кассового аппарата

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

и так ардуина управляет принтером всего по 7 проводам, 2 из которых это управление шаговым двигателем, 4 управление ТПГ и 1 подает питание на мотор и головку одновременно.
да я кстати в курсе что разрешение у него низкое и китайский принтер за 1500 руб печатает куда лучше но цели стать владельцем принтера не было а было желание понять как это работает
iopq вне форума   Ответить с цитированием
Старый 11.07.2016, 21:57   #2
Ploxoi Меню Пользователя
Вступил в клуб
 
Регистрация: 08.12.2011
Сообщений: 22
По умолчанию Re: термопринтер из кассового аппарата

а на исходник можно посмотреть?

Добавлено через 1 минуту
касса касби?
Ploxoi вне форума   Ответить с цитированием
Старый 12.07.2016, 00:47   #3
iopq Меню Пользователя
Вступил в клуб
 
Регистрация: 07.08.2012
Сообщений: 38
По умолчанию Re: термопринтер из кассового аппарата

Цитата:
Сообщение от Ploxoi
а на исходник можно посмотреть?

Добавлено через 1 минуту
касса касби?

нет. AMC 101Ф. хотел было продолжать да времени не было.
Код:
#include <Stepper.h>
Stepper stepper(4, 7, 6);
String s;
#define PRN   2
#define RXD   3
#define SCK   4
#define D_IN  5
#define POWER 8
void setup()
{
  pinMode(POWER,OUTPUT);
  pinMode(PRN,  OUTPUT);
  pinMode(RXD,  OUTPUT);
  pinMode(SCK,  OUTPUT);
  pinMode(D_IN, OUTPUT);
   digitalWrite(PRN,  HIGH); 
   digitalWrite(RXD,  HIGH); 
   digitalWrite(SCK,  LOW);
   digitalWrite(D_IN, LOW);
   digitalWrite(POWER,HIGH);
   Serial.begin(115200);
 stepper.setSpeed(1000);
}

void loop()
{
while (Serial.available() <= 0)
{
}
  s = Serial.readStringUntil(' ');
if (s == "Step")
{
  digitalWrite(POWER, LOW); 
  stepper.step(Serial.readStringUntil('step').toInt());
  Serial.println(' ');
}
else if (s == "Print")
{
  digitalWrite(POWER, LOW); 
  int fireTime = Serial.readStringUntil(' ').toInt();
  byte masks[16];
for (int i = 0; i < 16; ++i)
{
  masks[i] = Serial.readStringUntil(' ').toInt();
}
for (int i = 0; i < 16; ++i)
{
for (int j = 0; j < 8; ++j)
{
    digitalWrite(D_IN, bitRead(masks[i], j) != 0 ? HIGH : LOW);
    digitalWrite(SCK, HIGH);
    digitalWrite(SCK, LOW);
}
}
   digitalWrite(RXD, LOW);
   digitalWrite(RXD, HIGH);
   digitalWrite(PRN, LOW);
   delay(constrain(fireTime, 1, 10));
   digitalWrite(PRN, HIGH);
   digitalWrite(D_IN, LOW);
   digitalWrite(POWER, HIGH);
   Serial.println(' ');
}
}
iopq вне форума   Ответить с цитированием
Старый 12.07.2016, 03:34   #4
iopq Меню Пользователя
Вступил в клуб
 
Регистрация: 07.08.2012
Сообщений: 38
По умолчанию Re: термопринтер из кассового аппарата

почему нельзя редактировать сообщения? нашел критическую ошибку из-за которой можно спалить шаговый двигатель а исправить никак. ошибка заключается отсутствии перевода порта 8 в высокое состояние после шага мотора что снимает с него и головки питание 12 В. а в конце можно убрать т.к шаговый двигатель работает всегда после ТПГ. привожу исправленный код-
Код:
#include <Stepper.h>
Stepper stepper(4, 7, 6);
String s;
#define PRN   2
#define RXD   3
#define SCK   4
#define D_IN  5
#define POWER 8
void setup()
{
  pinMode(POWER,OUTPUT);
  pinMode(PRN,  OUTPUT);
  pinMode(RXD,  OUTPUT);
  pinMode(SCK,  OUTPUT);
  pinMode(D_IN, OUTPUT);
   digitalWrite(PRN,  HIGH); 
   digitalWrite(RXD,  HIGH); 
   digitalWrite(SCK,  LOW);
   digitalWrite(D_IN, LOW);
   digitalWrite(POWER,HIGH);
   Serial.begin(115200);
 stepper.setSpeed(1000);
}

void loop()
{
while (Serial.available() <= 0)
{
}
  s = Serial.readStringUntil(' ');
if (s == "Step")
{
  digitalWrite(POWER, LOW);                                //подаем +12 В на мотор и ТПГ
  stepper.step(Serial.readStringUntil('step').toInt());
  digitalWrite(POWER, HIGH);                               //отключаем +12 В
  Serial.println(' ');
}
else if (s == "Print")
{
  digitalWrite(POWER, LOW); 
  int fireTime = Serial.readStringUntil(' ').toInt();
  byte masks[16];
for (int i = 0; i < 16; ++i)
  masks[i] = Serial.readStringUntil(' ').toInt();

for (int i = 0; i < 16; ++i)
for (int j = 0; j < 8; ++j)
{
    digitalWrite(D_IN, bitRead(masks[i], j) != 0 ? HIGH : LOW);
    digitalWrite(SCK, HIGH);
    digitalWrite(SCK, LOW);
}
   digitalWrite(RXD, LOW);
   digitalWrite(RXD, HIGH);
   digitalWrite(PRN, LOW);
   delay(constrain(fireTime, 1, 10));
   digitalWrite(PRN, HIGH);
   digitalWrite(D_IN, LOW);
   Serial.println(' ');
}
}
iopq вне форума   Ответить с цитированием
Старый 13.07.2016, 22:30   #5
Ploxoi Меню Пользователя
Вступил в клуб
 
Регистрация: 08.12.2011
Сообщений: 22
По умолчанию Re: термопринтер из кассового аппарата

спасибо , поробую
Ploxoi вне форума   Ответить с цитированием
Старый 30.11.2016, 21:22   #6
glumator Меню Пользователя
Гость клуба
 
Регистрация: 30.11.2016
Сообщений: 1
По умолчанию Re: термопринтер из кассового аппарата

Здравствуйте. а есть схема подключения?
мне необходимо сделать принтер для датчика температуры. старая касса есть, не очень понимаю как подключать
glumator вне форума   Ответить с цитированием
Старый 08.01.2017, 23:58   #7
iopq Меню Пользователя
Вступил в клуб
 
Регистрация: 07.08.2012
Сообщений: 38
По умолчанию Re: термопринтер из кассового аппарата

Цитата:
Сообщение от glumator
Здравствуйте. а есть схема подключения?
мне необходимо сделать принтер для датчика температуры. старая касса есть, не очень понимаю как подключать

в исходнике же все понятно какой вывод куда. можете даже выводы менять как угодно
iopq вне форума   Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Текущее время: 15:29. Часовой пояс GMT +3.


vBulletin 4.1.0 Перевод: zCarot
(C) www.phreakerclub.com
Яндекс.Метрика