Witam, chciałbym się przywitać jako Świeżak
Mam arduino uno, do którego za pomocą portu szeregowego przesyłam dane do arduino.
Przykład:
(000000000000000000000000111111111111111111111110000000000000000000011111111111111111100000000000000)
zera świadczą o spoczynku, ale gdy dostaję jedynki chcę aby servo zrobiło ruch ale tylko raz gdy jest zestaw jedynek.
to co udało mi się zrobić to, ile jedynek dostanie tyle razy się porusza, a przy zestawie jedynek ma zrobić to tylko raz, poźniej po np. 10 zerach gdy znów dostanie np.10 jedynek pod rząd ma znów zrobić raz ruch.
Cyfry są wysyłane od nowej lini
Potrzebuję kodu np:
Gdy jest 10 jedynek jedna z drugą, serwo.write(20), delay(500) serwo.write(100), i czekaj, gdy znów będzie 10 jedynek pod rząd znów wykonaj raz ruch.
Przepraszam za niezrozumienie, ale troszkę ciężko mi to wytłumaczyć.
Dzięki i pozdrawiam
Mam arduino uno, do którego za pomocą portu szeregowego przesyłam dane do arduino.
Przykład:
(000000000000000000000000111111111111111111111110000000000000000000011111111111111111100000000000000)
zera świadczą o spoczynku, ale gdy dostaję jedynki chcę aby servo zrobiło ruch ale tylko raz gdy jest zestaw jedynek.
to co udało mi się zrobić to, ile jedynek dostanie tyle razy się porusza, a przy zestawie jedynek ma zrobić to tylko raz, poźniej po np. 10 zerach gdy znów dostanie np.10 jedynek pod rząd ma znów zrobić raz ruch.
Cyfry są wysyłane od nowej lini
Potrzebuję kodu np:
Gdy jest 10 jedynek jedna z drugą, serwo.write(20), delay(500) serwo.write(100), i czekaj, gdy znów będzie 10 jedynek pod rząd znów wykonaj raz ruch.
Kod:
#include <Servo.h>
Servo myservo;
String odebraneDane = ""; //Pusty ciąg odebranych danych
void setup() {
Serial.begin(9600); //Uruchomienie komunikacji
myservo.attach(3);
}
void loop() {
if(Serial.available() > 0) { //Czy Arduino odebrało dane
odebraneDane = Serial.readStringUntil('\n'); //Jeśli tak, to odczytaj je do znaku końca linii i zapisz w zmiennej odebraneDane
Serial.println(odebraneDane); //Wyświetl komunikat
if(odebraneDane == "1") {
delay(1000);
myservo.write(20);
delay(500);
myservo.write(120);
}
}
}
Przepraszam za niezrozumienie, ale troszkę ciężko mi to wytłumaczyć.
Dzięki i pozdrawiam