Skocz do zawartości

Zlecę napisanie programu Arduino


karpa

Pomocna odpowiedź

Może ta poprawka pomoże:

#include "CytronMotorDriver.h"

CytronMD motor(PWM_DIR, 3, 4);

// piny przyciskow
#define przycisk1 A0
#define przycisk2 A1

// predkosc maksymalna i minimalna
int smax = 128;
int smin = -128;

int pr = 0;
int p = 0;

void setup() {
  pinMode(przycisk1, INPUT_PULLUP);
  pinMode(przycisk2, INPUT_PULLUP);

}

void loop() {
  if (digitalRead(przycisk1)==HIGH){
    pr = smax;
  }
  if (digitalRead(przycisk1)==LOW){
    pr = 0;
  }
  if (digitalRead(przycisk2)==HIGH){
    pr = smin;
  }
  if (digitalRead(przycisk2)==LOW){
    if(not pr > 0){
      pr = 0; 
    }
  }
  
  if(p<pr){
    p++;
  }
  if(p>pr){
    p--;
  }
  
  if(p > smax){
    p = smax;
  }
  if(p < smin){
    p = smin;
  }
  motor.setSpeed(p);
}

 

Link do komentarza
Share on other sites

zmiana programu na następującą wersję 

CytronMD motor(PWM_DIR, 3, 4);  // PWM = Pin 3, DIR = Pin 4.

int smax = 128;
int smin = -128;

int pr = 0;
int p = 0;

void setup() {
  pinMode(8, OUTPUT); //Dioda kontrola przycisków
  pinMode(A0, INPUT_PULLUP);
  pinMode(A1, INPUT_PULLUP);
  digitalWrite(8, HIGH); 
}



void loop() {
    if (digitalRead(A0) == LOW){
  digitalWrite(8, HIGH);
  pr = smax;  
      } 
      if (digitalRead(A0) == HIGH){
    digitalWrite(8, LOW);
  pr = 0;
  }
    if (digitalRead(A1) == LOW){
  digitalWrite(8, HIGH);
  pr = smin;  
        } 
        if (digitalRead(A1) == HIGH){
    digitalWrite(8, LOW);
  pr = 0;  
}
motor.setSpeed(pr);
}

powoduje że znów działają obroty tylko z przycisku2

dzieje się tak dlatego, że parametr pr definiujemy najpierw jako smax, a później w końcowej części definiujemu jako zero i przycisk1 faktycznie działa, ale w pętli wartoś pr zapisana zostaje z przycisku 2

poniżej na pogrubionym fragmencie kodu tracimy wartość pr


```cpp
  if (digitalRead(przycisk2)==LOW){
    pr = smin;
  }
  if (digitalRead(przycisk2)==HIGH){
    pr = 0;

  }
  
  if(p<pr){
    p++;
```
 

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.