Передача данных между двумя Arduino
- Войдите на сайт для отправки комментариев
Пт, 16/05/2014 - 14:14
Есть Mega и Uno
К уно подсоединен энкодер и запущен тестовый скетч библиотеки Encoder.h
#include <Encoder.h> Encoder myEnc(11, 12); void setup() { Serial.begin(9600); } int oldPosition = -999; void loop() { int newPosition = myEnc.read(); if (newPosition != oldPosition) { oldPosition = newPosition; Serial.println(newPosition); } }
Работает хорошо, выдает при повороте в монитор порта значения при повороте по часовой стрелке от 0 и по возрастанию, когда крутишь в другую сторону уменьшает до 0 и далее уходит в минус.
Мега должна получать эти значения, но выдает вместо положенного вот такое((( причем на один щелчок энкодера сразу несколько значений, которые не соответствуют уно.
I received: 10
I received: 55
I received: 55
I received: 13
Код Мега
int incomingByte=0;// переменная для хранения полученного байта int rotateByte = 0; void setup() { Serial.begin(9600); // устанавливаем последовательное соединение Serial1.begin(9600); // устанавливаем последовательное соединение } void loop() { if (Serial1.available() > 0) { incomingByte = Serial1.read(); if (incomingByte!=-1) { // отсылаем то, что получили Serial.print("I received: "); Serial.println(incomingByte); }}}
Подскажите что не так, и как лучше наладить передачу данных?
В скетче для уно
Serial.write(newPosition); вместо print
Не стал заводить другую тему. Ситуация такая. Как у ТС есть мега и уно, мега передает
а уно принимает
по проводу все прекрасно. Но при замене провода между дуинами передатчиком 433мгц и приемником на ту же частоту. Приема не происходит. Приемник без уно все принимает, по осцилу принимаемый сигнал идентичен передаваемому
http://www.ebay.com/itm/STX882-ASK-Transmitter-Module-SRX882-Superheterodyne-Receiver-Module-Antenna-/331173237111 радио такое.
Уровни? Может приёмник не раскачивает TTL на такую нагрузку? Или питание там не то, или пины не те.
Вешаю светодиод на выход приемника, мигает. По осцилу амплитуда 5в. Как только ширяю в дуину, диод зажигается и горит т.к. Serial в ожидании 1, и встроенный диод RX молчит . Пины приемника VCC, GND, CS, DATA. CS спящий режим 1-ENABLE, 0-DISABLE. На Уно 0-RX, или любой при использовании SoftwareSerial. Основная фигня в том, что даже закомментив идентификатор пакета if(Seria.read()=='D'). Просто принять, что угодно не выходит.
Решил таки проверить уровни. В роли передатчика тини2313 с тем же кодом. Полевик на дата приемника расставил точки над "ё". Усе завелось. Спасибо.
Хм, интересное кино. Кстати, не дороговат комплект 7 баксов? Видел по 2.
https://www.tindie.com/search/?q=srx
та не, эт я ссылку как картинку вставлял, покупал на али за 150р.
по 2 видел только на сверхгенераторе.
Ну вон на тинде тик в тик ваш. Правда доставка 140 рублей :)
В общем, эпопея закончилась предусилителем на КТ315Б и полевиком, в итоге получаю то что отправлял.
Я так понимаю, зря я купил себе эту пару? =D В итоге, если это на полевике, то какая схема получилась? Возможно начертить?
А какая конечная задача решается двумя этими девайсами? Я хотел логгировать на комп и иметь возможность иногда подправить прошивку, не разбирая устройства и не поднося его к компу. В итоге идеально подошла связка арудино с распберри. Хотя я тут подумываю, что и так все датчики можно напрямую на распберри навесить.