pokud cokoliv posílám přes BT tak servo cuká, nemusím ani na straně BT "poslouchat" a servo pocukává.
delay má vliv na cukání ale neodstraní ho, zkoušel jsem použít jiný pin k ovládání serva ale nepomohlo, zkusil jsem změnit baudrate BT z 9600 na 19200 ale taky nepomohlo.
Níže uvedený kód funguje bezchybně (BT.print je zakomentované)
Jakmile použiju BT.print tak servo cuká. Má někdo nějaký nápad?
Je to jen část kódu, jinak celé to bude sloužit k testování modelářských BLDC motorů. Ovládání motoru přes ESC, měření odběru proudu, napětí, teploty, zobrazení na LCD + zasílání přes BT do PC (tabletu) a tvorba grafu. Posílání dat přes BT i na LCD bylo ok, měření proudu, teploty taky ok. A když jsem připojil servo a jeho kód tak jsem narazil na problém. Tak jsem to celé začal stavět obráceně, nejprve kód pro servo + HW a vše ok, potom jsem začal přidávat další části kódu a u BT jsem narazil.
Kód: Vybrat vše
#include <SoftwareSerial.h>
#include <Servo.h>
Servo ESC; // create servo object to control the ESC
int potValue; // value from the analog pin
SoftwareSerial BT = SoftwareSerial(10,11);
void setup() {
// Attach the ESC on pin 9
ESC.attach(9,1000,2000); // (pin, min pulse width, max pulse width in microseconds)
BT.begin(19200);
Serial.begin(9600);
}
void loop() {
potValue = analogRead(A3); // reads the value of the potentiometer (value between 0 and 1023)
potValue = map(potValue, 0, 1023, 0, 180); // scale it to use it with the servo library (value between 0 and 180)
ESC.write(potValue); // Send the signal to the ESC
Serial.println(potValue);
// BT.print("Ahoj"); //Servo cuká
// BT.print(potValue); //Servo cuká
delay(100);
}