Перенастроить порты на mege под Bluetooth.
- Войдите на сайт для отправки комментариев
Пт, 24/06/2016 - 13:19
Добрый день уважаемые форумчани. Опять бьюсь на ровном месте! Во всех примерах что нашел по умолчанию используется tx0 и rx0. мне нужно использовать другие три на свой выбор - не могу перенастоить хоть убей! Второй час бьюсь головой. Сделал чтоб с компа в телефон отправляло команды- идет без проблемм с этим кодом
#include <SoftwareSerial.h> // Software Serial Port #define baudRate 9600 /* ********** Define Arduino PINs usage ********** */ #define TxD 14 #define RxD 15 // SoftwareSerial PINs declaration /* ********** End of PINs usage definition ********** */ SoftwareSerial btSerial(RxD,TxD); // Define logging #include <stdarg.h> void log(char* format, ...) { char line[512]; va_list args; va_start(args, format); vsnprintf(line, sizeof(line), format, args); va_end(args); Serial.print(line); } void setup() { Serial.begin(baudRate); // initialize serial communication at 9600 bits per second: /* ********** SoftwareSerial setup ********** */ pinMode(RxD, INPUT); pinMode(TxD, OUTPUT); btSerial.begin(9600); //Set bluetooth HC-05 BaudRate to default baud rate 9600 /* ********** End of SoftwareSerial setup ********** */ log("Begin:\n"); } void loop() { char recvChar; if(btSerial.available()) { recvChar = btSerial.read(); log("bluetooth: recv: %u\n", recvChar); } if(Serial.available()) { recvChar = Serial.read(); log("bluetooth: send: %u\n", recvChar); btSerial.write( recvChar ); } }
а вот чтоб взять эти же порта и тупо с телефона мигать 13 пином- нихрена не идет.. (((
к примеру
#include <SoftwareSerial.h> #define baudRate 9600 #define TxD 14 #define RxD 15 // SoftwareSerial PINs declaration SoftwareSerial btSerial(RxD,TxD); char incomingByte; // входящие данные int LED = 13; // LED подключен к 12 пину void setup() { pinMode(LED, OUTPUT); SoftwareSerial btSerial(RxD,TxD); } void loop() { if (Serial.available() > 0) { //если пришли данные incomingByte = Serial.read(); // считываем байт if(incomingByte == '0') { digitalWrite(LED, LOW); // если 1, то выключаем LED } if(incomingByte == '1') { digitalWrite(LED, HIGH); // если 0, то включаем LED } } }
У меги четыре аппаратных UART, зачем вы юзаете SoftwareSerial, когда есть Serial1, Serial2, Serial3 ? Помимо собственно Serial?
Хорошо! я сделаю как скажете- только скажите как в скетче изменить ноги!!))
и неиспользовать библиотеку SoftwareSerial.h раз и без нее все проще
Serial1, Serial2 и Serial3 уже настроены на свои ноги меги, там ничего специально указывать не надо: подключаете модуль блютуза к нужному аппаратному UART, в скетче юзаете соответствующий Serial, profit.
так, стоп! я ведь как раз и использую Serial 3. Вы подскажите как мне в скетче это реализовать? Просто при опросе указывать Serial 3?
Да, именно так и пишете:
Да, именно так и пишете:
"Есть много в мире, друг Горацио, такого, что и не снилось нашим мудрецам!"
Вы хоть иногда заглядывайте в справочный раздел Программирование
http://arduino.ru/Reference/Serial
http://arduino.ru/Serial/Begin
Там упоминается Мега с её несколькими Serial.
тх, рх любые три на свой выбор. пиши номера ног и используй, кто мешает?
и запомните: Карл Маркс и Фридрих Энгельс это не муж и жена - это четыре разных человека!
если надо 3 сериала измини название ног для сериалов и самих сериалов. а не пиши для всех рх, тх
Вы хоть иногда заглядывайте в справочный раздел Программирование
http://arduino.ru/Reference/Serial http://arduino.ru/Serial/Begin
Там упоминается Мега с её несколькими Serial.
а зачем? тут болшинство ардуину программируют и даташит на атмегу не открывали, при упоминании ATMega считают что это одна из ардуин.
Да ладно вам! разошлись, прекрасно я понимаю что это за контроллер, поделки и раньше паял на АВР и пиках . Вот программы не писал. Брал готовые решения, здесь же почувствовал полную свободу теперь! Сам порты могу назначить, разводки и травление не нужно! В общим прелести понравились. Но грабли они есть грабли- надо биться. Иногда сложное сьедаю быстро а елементарщина не дается. С меню к примеру начинал с таким гемором, потом сам взял и состряпал.
Раз уж в теме знающие тогда подскажите какое ограничение в скорости в библиотеке ацелстепер, дело в том что 1/16 попробовал, в итоге пришлось убирать перемычку до 1/8. Скорость естественно в два раза возросла но гудит неприятно. Так понимаю есть ограниченные в ней. Прерываниями я ещё не осилю движке вращать на заданное расстояние, только через библиотеку