Перенастроить порты на 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. Скорость естественно в два раза возросла но гудит неприятно. Так понимаю есть ограниченные в ней. Прерываниями я ещё не осилю движке вращать на заданное расстояние, только через библиотеку