Próbowałem przerobić kod, który powoduje, że ramię idzie do końca, po czym szybciej wraca do pozycji początkowej i ponownie wykonuje to samo.
Kod: Zaznacz cały
#include <Servo.h> //Biblioteka odpowiedzialna za serwa
Servo serwomechanizm; //Tworzymy obiekt, dzięki któremu możemy odwołać się do serwa
int pozycja = 0; //Aktualna pozycja serwa 0-180
int zmiana = 6; //Co ile ma się zmieniać pozycja serwa?
void setup()
{
serwomechanizm.attach(9); //Serwomechanizm podłączony do pinu 9
}
void loop()
{
if (pozycja < 180) { //Jeśli pozycja mieści się w zakresie
serwomechanizm.write(pozycja); //Wykonaj ruch
} else { //Jeśli nie, to powrót na początek
pozycja = 0;
}
pozycja = pozycja + zmiana; //Zwiększenie aktualnej pozycji serwa
delay(200); //Opóźnienie dla lepszego efektu
}
Kod: Zaznacz cały
#include <Servo.h> //Biblioteka odpowiedzialna za serwa
Servo serwomechanizm; //Tworzymy obiekt, dzięki któremu możemy odwołać się do serwa
int pozycja = 0; //Aktualna pozycja serwa 0-180
int zmiana = 6; //Co ile ma się zmieniać pozycja serwa?
int blokada = 0;
void setup()
{
serwomechanizm.attach(9); //Serwomechanizm podłączony do pinu 9
}
void loop()
{
if (pozycja < 180) { //Jeśli pozycja mieści się w zakresie
serwomechanizm.write(pozycja); //Wykonaj ruch
} else { //Jeśli nie, to powrót na początek
blokada = 0;
}
pozycja = pozycja + zmiana; //Zwiększenie aktualnej pozycji serwa
delay(200); //Opóźnienie dla lepszego efektu
blokada = 1;
}
Po prostu określone zadanie wykonywane jest jeden raz, z tego co widziałem łatwo byłoby to zrobić dodając do projektu switch ale właśnie chodzi o to aby zrobić to bez żadnego switcha jedynie z czasem zamiast zewnętrznego programatora dodałbym moduł zegarka DS3231.
Może ktoś będzie w stanie jakoś rozwiązać ten problem?