• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Sterowanie Microserwem
#1
Dzień dobry.
Za pomocą Arduino UNO potrzebuje sterować dwoma mikroserwami. Pracować będą na zmianę, asynchronicznie. Nie jestem programistą ale poczytałem trochę i napisałem kod który na symulatorze działa.

Obawiam się tylko o zmienną unsigned  Czas = 500; którą mam zamiar kontrolować za pomocą microstyka.
Działa ale w sposub mało precyzyjny. Jak to można poprawić ?

I 2 pytanie :

Po wykonaniu cyklu przez 1 i 2 mikroserw proces zaczynam od nowa używając 
    delay(Czas);
    CzasPoczatku = millis();} 


    delay(Czas) zatrzymuje cały proces i w tym czasie nie można regulować częstotliwości za pomocą microstyku ... Jak inaczej mogę ustalić czas pracy drugiego mikrostyku?


Cytat:int Motor1 = 12;
int Motor2 = 11;
int przycisk1 = 0;
int przycisk2 = 1;


unsigned long CzasPoczatku ;
unsigned  Czas = 500;

void setup() {
  pinMode(Motor1, OUTPUT);
  pinMode(Motor1, OUTPUT);
  pinMode(0, INPUT_PULLUP);
  pinMode(1, INPUT_PULLUP);
}
void loop() {
 
  if (digitalRead (przycisk1) == LOW) {(Czas = Czas +1);}
  if (digitalRead (przycisk2) == LOW) {(Czas = Czas -1);}

  if (millis() - CzasPoczatku < Czas)
  {
   
    digitalWrite(Motor1, HIGH);
    digitalWrite(Motor2, LOW);}
 
 
  if (millis() - CzasPoczatku >= Czas)
  {
    
    digitalWrite(Motor1, LOW);
    digitalWrite(Motor2, HIGH);
    delay(Czas);
    CzasPoczatku = millis();}
  }


Rysunek układu TUTAJ pod linkiem
 
  


Wiadomości w tym wątku
Sterowanie Microserwem - przez zoltar.szczecin@gmail.com - 22-06-2020, 09:25
RE: Sterowanie Microserwem - przez kaczakat - 22-06-2020, 20:14
RE: Sterowanie Microserwem - przez Jarewa0606 - 22-06-2020, 23:03
RE: Sterowanie Microserwem - przez kaczakat - 23-06-2020, 00:17
RE: Sterowanie Microserwem - przez kaczakat - 23-06-2020, 00:45

Skocz do:


Przeglądający: 1 gości