Skocz do zawartości

Arduino a drukarka termiczna na RS232


Pomocna odpowiedź

Napisano

Mam taki problem(pytanie, czy to w ogóle ma szansę ruszyć). Posiadam drukarkę termiczną, która służyła kiedyś do drukowania czasów z chronometru. Zakupiłem przejściówkę TTL<->RS232. Jednak gdy podłączę ją do odpowiednich pinów w arduino i otworze serial monitor (oczywiście ustawiona odpowiednia prędkość transmisji) to drukarka nie daje oznak życia. Dodam, że gdy podłączę chronometr przez tę samą przejściówkę to w serial monitorze jestem w stanie zobaczyć to samo co normalnie było przesyłane na drukarkę gdy ta była do tego chronometru podłączona.

Podsumowując: kupiłem przejściówkę i umiem odbierać sygnał wysyłany do niej jednak gdy ja mam coś przez nią nadać to nie daje to efektu

Zrobiłem coś takiego: podłączyłem usb-->arduino-->zakupiona przejściówka TTL-RS232->przejsciówka rs232 usb-->kolejne usb

uruchomiłem 2 razy program arduino i dwa serial monitory, wiadomości przechodzą...także to nie wina przejściówki...dziwna sytuacja

aston729, trochę mało szczegółów. Możesz podać co to konkretnie za drukarka?

Czy jest sprawna na 100%? Jeśli tak, to czy podłączając ją przez przejściówkę do komputera możesz wysyłając z niego odpowiednie dane sterować drukarką?

Typowe problemy z RS232 to po pierwsze prędkości - upewnij się, że Arduino wysyła z odpowiednią prędkością. Drugi problem to linie RX<->TX. Kabelek musi być skrosowany, tak żeby to co wychodzi z arduino (TX) docierało do linii odbierania (RX) drukarki.

Właśnie oglądam dokumentację drukarki - czy w niej nie jest od razu zamienione RX z TX? Czyli kabelek powinien być prosty?

Jaki program jest wgrany do Arduino?

Próbowałem również zmienić RX z TX - bez skutku

Dużo czasu nad tym spędziłem próbując różne opcje, dlatego postanowiłem zapytać na forum czy ktoś nie wpadnie na coś co mogłem pominąć...

Np. coś takiego:

void setup() {
Serial.begin(9600);
}

void loop(){
  Serial.println("test");
   delay(1000);

}

próbowałem też z Serial.print i dodać \n

Można spróbować print, ale z \r\n na końcu, czyli

Serial.print("test\r\n")

Kolejna sztuczka to drobna zmiana prędkości, np. na 9605 lub 9595.

Nie programuję Arduino, ale z tego co widzę w manualu to pojedyńcze znaki wysyła się tak:

Serial.write(0x1B);
Serial.write(0x40);

Nie wiem czy HEX można tak wpisywać w Arduino. Gdyby nie działało spróbuj z wartościami w systemie dzięsiętnym.

Serial.write(27);
Serial.write(64);

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...