Arduino schéma - arduino.sk

ovladanie serv cez softwareserial

Programovanie arduina
Príspevky: 11
Registrovaný: Uto 25. Feb 2014 15:44:32

ovladanie serv cez softwareserial

Poslaťod Jaroslav1 » Ned 04. Okt 2015 17:46:02

Chcel by som sa spytať či neviete v čom može byť chyba. Jedno UNO má na analogových vstupoch potenciometre a ich hodnoty posiela do druhého UNO. Druhé UNO tieto parametre spracuje a zapisuje ich hodnotu do serv. Lenže servá stále skáču ako splašené.


// vysielač
#include <SoftwareSerial.h>
SoftwareSerial mySerial(11, 10); // RX, TX

int a,b,c,d;

void setup(void) {

Serial.begin(9600);
mySerial.begin(9600);


}


void loop() {

a = analogRead(A0);
b = analogRead(A1);
c = analogRead(A2);
d = analogRead(A3);

mySerial.print("a");mySerial.print(a);mySerial.print(",");

mySerial.print("b");mySerial.print(b);mySerial.print(",");

mySerial.print("c");mySerial.print(c);mySerial.print(",");

mySerial.print("d");mySerial.print(d);mySerial.println(",");


}
----------------------------------------------------------------------------------------------
// prijímač
#include <Servo.h>
#include <SoftwareSerial.h>
int led = 13;
SoftwareSerial mySerial(10, 11); // RX, TX


char inchar;
int a,b,c,d;
int c1,c2,c3,c4;
Servo CH1;
Servo CH2;
Servo CH3;
Servo CH4;


void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
mySerial.begin(9600);
Serial.println("startujem:");
CH1.attach(2);
CH2.attach(3);
CH2.attach(4);
CH2.attach(5);
pinMode(led, OUTPUT);


}

void loop() { // run over and over
if (mySerial.available()) {digitalWrite(led, HIGH);
inchar=mySerial.read();

}else {digitalWrite(led, LOW);}


if(mySerial.find("a")){
a = mySerial.parseInt();
mySerial.find("b");
b = mySerial.parseInt();
mySerial.find("c");
c = mySerial.parseInt();
mySerial.find("d");
d = mySerial.parseInt();
}

c1= map(a,0,1023,0,179);
c2= map(b,0,1023,0,179);
c3= map(c,0,1023,0,179);
c4= map(d,0,1023,0,179);

CH1.write(c1);
CH2.write(c2);
CH3.write(c3);
CH4.write(c4);



}

Príspevky: 174
Registrovaný: Ned 16. Mar 2014 23:22:00

Re: ovladanie serv cez softwareserial

Poslaťod posjirka » Ned 04. Okt 2015 20:24:44

1, zkusil bych serva někde jinde (včera jsem dělal servotester a zkoušel čínské mikro servo - totálně mi zmrvilo signál z NE555 a chaoticky skákalo, na osciloskopu bez serva vše ok)
2, zkusil bych přímo na 1 unu vše mimo seriové komunikace
3, na prvním unu s potenciometry bych rovnou přepočítal polohu potenciometru na uhel a poslal jej jako "char", může se stát, že ti reaguje na nízský i vysoký bit.
4, zkusi si poslat zpátky co vlastně čte dřív než to pošle na servo.
5, možná ta čárka na konci každého příkazu ... jen tipuji

Príspevky: 11
Registrovaný: Uto 25. Feb 2014 15:44:32

Re: ovladanie serv cez softwareserial

Poslaťod Jaroslav1 » Pon 05. Okt 2015 10:00:04

ďakujem za rýchlu odpoveď

1 - serva sú v poriadku, otestované priamu na prvom UNE, kde som posiela na serva priamo analogread, a ide to krásne bez žiadnych trasení
2 - vyskúšané v poriadku
3 - toto ešte vyskúšam len sa mi zdá byť jedno na ktorej strane to prepočíta
4 - prijaté data som si zobrazoval priamo cez IDE na PC, ale tam sa len zriedka objavilo niečo iné ako malo
5 - čiarka na konci je koli parseint, kde pri vykonaní príkaz číta data až po čiarku, či chápem to zle?

Príspevky: 174
Registrovaný: Ned 16. Mar 2014 23:22:00

Re: ovladanie serv cez softwareserial

Poslaťod posjirka » Pon 05. Okt 2015 18:50:07

add 3.
myslel jsem to tak, že když pošleš číslo 1000 tak ti jej rozdělí na 3 (x255) a 245 (píšu po paměti), tak aby ti nereagoval na číslo 3 a hned na to na číslo 254. Když pošeš přímo úhel bude to do velikosti 1 byte.

Príspevky: 174
Registrovaný: Ned 16. Mar 2014 23:22:00

Re: ovladanie serv cez softwareserial

Poslaťod posjirka » Pon 05. Okt 2015 18:56:08

mám to ....
https://translate.google.cz/translate?h ... rev=search

obě knihovny využívají stejný časovač, proto mají problém spolupracovat.


zkus použít:
https://code.google.com/p/arduino-ppm-s ... 253Dclosed

návod je tu.
https://code.google.com/p/arduino-ppm-s ... 253Dclosed

Príspevky: 174
Registrovaný: Ned 16. Mar 2014 23:22:00

Re: ovladanie serv cez softwareserial

Poslaťod posjirka » Pon 05. Okt 2015 18:56:38


Späť na Software