24-03-2016, 22:56
(Ten post był ostatnio modyfikowany: 25-03-2016, 09:31 przez CEO.
Powód edycji: Używamy znaczników kodu
)
Witam, dopiero zaczynam przygodę z Arduino Mega 2560 i najprawdopodobniej mój problem jest trywialny dlatego proszę o wyrozumiałość. Mam problem z równoległym sterowaniem dwoma serwomechanizmami. Serwomechanizmy mają rozpoczynać pracę podczas gdy odległość przedmiotu od czujnika ultradźwiękowego będzie większa od 10cm. Problem w tym że po wgraniu programu najpierw porusza się servo nr.1 a gdy skończy to wówczas servo nr.2. Przesyłam kod programu.
Kod:
#include <Servo.h>
#define trig 2
#define echo 3
Servo myservo;
int pos = 0;
Servo myservoo;
int posi = 180;
void setup()
{
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
myservo.attach(9);
myservoo.attach(10);
Serial.begin(9600);
}
void loop()
{
int czas, dist;
digitalWrite(trig, HIGH);
delayMicroseconds(1000);
digitalWrite(trig, LOW);
czas = pulseIn(echo, HIGH);
dist = (czas/2) / 29.1;
Serial.println(czas);
Serial.println(dist);
if(dist > 10){
for(pos = 0; pos <= 180; pos += 1)
{
myservo.write(pos);
delay(10);
}
for(pos = 180; pos>=0; pos-=1)
{
myservo.write(pos);
delay(10);
}
for(posi = 180; posi>=0; posi-=1)
{
myservoo.write(posi);
delay(10);
}
for(posi = 0; posi <= 180; posi += 1)
{
myservoo.write(posi);
delay(10);
}
}
}