подключение Arduino UNO к оборудованию с rs232 разъемом

Нет ответов
azamat alimkhan
Offline
Зарегистрирован: 17.02.2016

Добрый день!

Есть необходимость подключить ардуино к оборудованию и подцепить LED экран через rs232. есть контроллер adm3202, который преобразует 12В на 5В грубо говоря(rs232 работает на 12 В). оборудование работает на скорости 115200, ардуино на 9600. для начало подключил к ардуино rs232 через adm3202, скорость 9600 - работает

 

byte rx = 6;
byte tx = 7;
byte SWval;

void setup() {
  pinMode(rx,INPUT);
  pinMode(tx,OUTPUT);
  digitalWrite(tx,HIGH);
  delay(2);
  digitalWrite(13,HIGH); //turn on debugging LED
  SWprint('h');  //debugging hello
  SWprint('i');
  SWprint(10); //carriage return
}

void SWprint(int data)
{
  byte mask;
  //startbit
  digitalWrite(tx,LOW);
  delayMicroseconds(bit9600Delay);
  for (mask = 0x01; mask>0; mask <<= 1) {
    if (data & mask){ // choose bit
     digitalWrite(tx,HIGH); // send 1
    }
    else{
     digitalWrite(tx,LOW); // send 0
    }
    delayMicroseconds(bit9600Delay);
  }
  //stop bit
  digitalWrite(tx, HIGH);
  delayMicroseconds(bit9600Delay);
}

int SWread()
{
  byte val = 0;
  while (digitalRead(rx));
  //wait for start bit
  if (digitalRead(rx) == LOW) {
    delayMicroseconds(halfBit9600Delay);
    for (int offset = 0; offset < 8; offset++) {
     delayMicroseconds(bit9600Delay);
     val |= digitalRead(rx) << offset;
    }
    //wait for stop bit + extra
    delayMicroseconds(bit9600Delay); 
    delayMicroseconds(bit9600Delay);
    return val;
  }
}

void loop()
{
    SWval = SWread(); 
    SWprint(toupper(SWval));
}

 

Как только подключаюсь параллельно к оборудованию терминал ничего не выдает, не реагирует ни на что, то есть одновременно может работать только один serial. Вопрос можно ли это как то решить?