31-05-2024, 10:46
Witam.
Mam problem ze sterowaniem poprzez port RS232.
Idea działania programu: program napisany pod Arduino UNO. Do Arduino UNO podpiąłem konwerter RS232 oparty na MAX3232. Do RS232 podpięte mam urządzenie które mogę sterować poprzez port szerwegowy.
Parametry portu szeregowego do sterowania urządzeniem zewnętrznym to: 19200/8/1.
Rozkaz uruchomienia to: (PWR1)
Rozkaz wyłączenia to: (PWR0)
Dodatkowo podpiąłem dwa przyciski do portów 2 i 3 które maja wysyłać rozkaz po naciśnięciu przycisku.
Po naciśnięciu przycisków widzę że działają gdyż na arduino zapala się na chwilkę dioda TX czyli rozkaz jest wysyłany poprzez piny 0 i 1 (RX i TX) do konwertera, a na konwerterze miga dioda DS1 (więc rozkaz zostaje przyjęty według mnie).
W teorii "słowo-rozkaz " powinno więc wyjść do urządzenia i powinno się urządzenie załączyć. Niestety nie działa.
Czy ktoś jest w stanie pomóc i powiedzieć gdzie robię błąd?
oto KOD programu:
//////////////////////////////////////////////////////////////////////
const int powerOnButtonPin = 2;
const int powerOffButtonPin = 3;
int powerOnButtonState = 0;
int powerOffButtonState = 0;
void setup() {
pinMode(powerOnButtonPin, INPUT_PULLUP);
pinMode(powerOffButtonPin, INPUT_PULLUP);
Serial.begin(19200);
delay(100);
}
void loop() {
powerOnButtonState = digitalRead(powerOnButtonPin);
powerOffButtonState = digitalRead(powerOffButtonPin);
if (powerOnButtonState == LOW) {
Serial.write("(PWR1)");
delay(500);
}
if (powerOffButtonState == LOW) {
Serial.write("(PWR0)");
delay(500);
}
delay(100);
}
//////////////////////////////////////////////////////////////////////
z góry dziękuję za pomoc
PS. Dodam tylko, że inne sterowniki pracujące na rs232 bez problemu uruchamiają i wyłączają urządzenie, więc rozkaz jest poprawny, kabel jest sprawdzony i działa. Chciałbym po prostu to samo uzyskać z wykorzystaniem arduino.
Mam problem ze sterowaniem poprzez port RS232.
Idea działania programu: program napisany pod Arduino UNO. Do Arduino UNO podpiąłem konwerter RS232 oparty na MAX3232. Do RS232 podpięte mam urządzenie które mogę sterować poprzez port szerwegowy.
Parametry portu szeregowego do sterowania urządzeniem zewnętrznym to: 19200/8/1.
Rozkaz uruchomienia to: (PWR1)
Rozkaz wyłączenia to: (PWR0)
Dodatkowo podpiąłem dwa przyciski do portów 2 i 3 które maja wysyłać rozkaz po naciśnięciu przycisku.
Po naciśnięciu przycisków widzę że działają gdyż na arduino zapala się na chwilkę dioda TX czyli rozkaz jest wysyłany poprzez piny 0 i 1 (RX i TX) do konwertera, a na konwerterze miga dioda DS1 (więc rozkaz zostaje przyjęty według mnie).
W teorii "słowo-rozkaz " powinno więc wyjść do urządzenia i powinno się urządzenie załączyć. Niestety nie działa.
Czy ktoś jest w stanie pomóc i powiedzieć gdzie robię błąd?
oto KOD programu:
//////////////////////////////////////////////////////////////////////
const int powerOnButtonPin = 2;
const int powerOffButtonPin = 3;
int powerOnButtonState = 0;
int powerOffButtonState = 0;
void setup() {
pinMode(powerOnButtonPin, INPUT_PULLUP);
pinMode(powerOffButtonPin, INPUT_PULLUP);
Serial.begin(19200);
delay(100);
}
void loop() {
powerOnButtonState = digitalRead(powerOnButtonPin);
powerOffButtonState = digitalRead(powerOffButtonPin);
if (powerOnButtonState == LOW) {
Serial.write("(PWR1)");
delay(500);
}
if (powerOffButtonState == LOW) {
Serial.write("(PWR0)");
delay(500);
}
delay(100);
}
//////////////////////////////////////////////////////////////////////
z góry dziękuję za pomoc
PS. Dodam tylko, że inne sterowniki pracujące na rs232 bez problemu uruchamiają i wyłączają urządzenie, więc rozkaz jest poprawny, kabel jest sprawdzony i działa. Chciałbym po prostu to samo uzyskać z wykorzystaniem arduino.


