arduino Serial

Ravor
Offline
Зарегистрирован: 22.02.2016

Всем привет , имею 3 модуля hc-05 , пытался связать 2 из них для передачи данных с дуины на дуину , и вращение сервы . Мучался 3 дня и наконец сделал , думая что наконец разобрался с Serial соединением . Как попал в просак , в общем как не пытался но передать данные с 1 потенциометра на другую дуину , проканало только с помощью 3-х сериал портов . т.к. с 2-мя не работало. 

Вот в чём проблема . для реализации использовал UNO (для сбора и передачи) и MEGA (для приёма и обработки) суть в том , что мне нужно что бы система работала наоборот , данные MEGи передавались на UNO . 

Как такое реализовать ? Я совсем запутался в Serial соединение после этого.

1 дуина

// потенциометр подключон к А0
int pot = A0;
void setup() {
pinMode(pot, INPUT);
// Открываю сериал порт
Serial.begin(38400);
}
void loop(){
  //считываю данные с потенциометра
int val= analogRead(pot);
// преобразую в 8-битное значение
int x = map(val , 0 , 1023 , 0 , 255);
//отправляю
Serial.println(x);
delay(100);
}

код мега дуины

#include <Servo.h>
Servo SER;
// создаю переменную х 
int x ; 
void setup() {
  SER.attach(8);
  SER.write(0);
  Serial.begin(38400); //порты Serial и Serial1
  Serial1.begin(38400);

}

void loop() {
// проверяю пришли ли данные на порт Serial1
 if (Serial1.available() > 0){ 
  // читаю данные 
    x = Serial1.parseInt(); 
    // переношу данные в порт Serial
    Serial.println(x);
    // перевожу значение в градусы для сервы
  int val = map (x , 0 , 254 , 0 ,179);
  delay(50);
  int vor = val ;
  SER.write(vor);
  }
  }

 

Ravor
Offline
Зарегистрирован: 22.02.2016

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

#include <Servo.h>
Servo SER;
// создаю переменную х 
int x ; 
void setup() {
  SER.attach(8);
  SER.write(0);
  Serial.begin(38400); //порты Serial и Serial1
  

}

void loop() {
// проверяю пришли ли данные на порт Serial1
 if (Serial.available() > 0){ 
  // читаю данные 
    x = Serial.parseInt(); 
    // переношу данные в порт Serial
    // перевожу значение в градусы для сервы
  int val = map (x , 0 , 254 , 0 ,179);
  delay(50);
  int vor = val ;
  SER.write(vor);
  }
  }