arduino Serial
- Войдите на сайт для отправки комментариев
Ср, 20/07/2016 - 22:08
Всем привет , имею 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);
}
}
такс разобрался , проблема была в меге , похоже у неё порты коряво работают.
В общем этот код запустился на 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); } }