Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   854 / 854
(#) kormika hozzászólása 0:33 /
 

Mit rontok el?

Sziasztok!
Egy egyedi gép vezérlését építem, egy joystick segítségével van vezérelve kettő lineáris aktuátor és az egyik gombbal egy villanymotor van indítva, leállítva PWM szabályzással, teljes fordulaton egy relé kiiktatja a FET-et. A motor gombos indítása, megállítása működik (a programban a PTO kezdetű változókat és ki-bemeneteket használó rész), az egyik aktuátor szabályzása, forgásirány váltása működik ( a programban az UD kezdetű változók és ki-bemenetek tartoznak ide), de a másik aktuátornál csak a forgásirány váltó relék kimenetei változnak a joystick mozgatásának megfelelően, pwm jelet sehogysem sikerül kicsalnom, hiába írom át a 11-es pint bármelyik PWM képes lábra, nem működik... Mit nem veszek észre, vagy mit rontok el? Kérlek segítsetek!
  1. int PTOButton = 4;
  2. int UDin = A0;
  3. int LRin = A1;
  4. const int LPin = 12;
  5. const int RPin = 13;
  6. const int UPin = 8;
  7. const int DPin = 7;
  8. const int PTOPin = 9;
  9. const int PTORelay = 2;
  10. const int UDPin = 10;
  11. const int LRPin = 11;
  12. int Rpm = 0;
  13. int PTOLatch =0;
  14. int Buttonlast = 0;
  15. int UD = 0;
  16. int UDduty = 0;
  17. int LR = 0;
  18. int LRduty = 0;
  19.  
  20. void setup() {
  21.  
  22. pinMode(PTOButton, INPUT);
  23. pinMode(PTOPin, OUTPUT);
  24. pinMode(PTORelay, OUTPUT);
  25. pinMode(UDin, INPUT);
  26. pinMode(UDPin, OUTPUT);
  27. pinMode(DPin, OUTPUT);
  28. pinMode(UPin, OUTPUT);
  29. pinMode(LRin, INPUT);
  30. pinMode(LRPin, OUTPUT);
  31. pinMode(LPin, OUTPUT);
  32. pinMode(RPin, OUTPUT);
  33.  
  34. }
  35.  
  36. void loop() {
  37.    
  38.     if(digitalRead(PTOButton) == LOW && Buttonlast == 1){
  39.         PTOLatch = !PTOLatch;
  40.         }
  41.     if(PTOLatch == 1){
  42.       if(Rpm < 255){
  43.         Rpm++;
  44.         analogWrite(PTOPin, Rpm);
  45.         delay(5);
  46.       }
  47.       if(Rpm == 255){
  48.         digitalWrite(PTORelay, HIGH);
  49.       }
  50.        
  51.   }
  52.    
  53.         if(PTOLatch == 0){
  54.         digitalWrite(PTORelay, LOW);
  55.         if(Rpm > 0){
  56.         Rpm --;
  57.         analogWrite(PTOPin, Rpm);
  58.         delay(5);
  59.         }
  60.      
  61.     }
  62.    Buttonlast = digitalRead(PTOButton);
  63.     delay(5);
  64.    
  65.     UD = analogRead(UDin);
  66.     if(UD > 525){
  67.     digitalWrite(DPin, HIGH);
  68.     digitalWrite(UPin, LOW);
  69.     UDduty = map(UD, 525, 1023, 1, 255);
  70.     if(UDduty < 25){
  71.         UDduty = 0;
  72.         analogWrite(UDPin, UDduty);
  73.     }
  74.     analogWrite(UDPin, UDduty);
  75.   }
  76.    
  77.     if(UD < 500){
  78.     digitalWrite(DPin, LOW);
  79.     digitalWrite(UPin, HIGH);
  80.     UDduty = map(UD, 500, 0, 1, 255);
  81.     if(UDduty < 25){
  82.         UDduty = 0;
  83.         analogWrite(UDPin, UDduty);
  84.     }
  85.     analogWrite(UDPin, UDduty);
  86.   }
  87.    
  88.   LR = analogRead(LRin);
  89.    
  90.     if(LR < 525){
  91.     digitalWrite(LPin, HIGH);
  92.     digitalWrite(RPin, LOW);
  93.     LRduty = map(LR, 525, 1023, 1, 255);
  94.     if(LRduty < 25){
  95.         LRduty = 0;
  96.         analogWrite(LRPin, LRduty);
  97.     }
  98.     analogWrite(LRPin, LRduty);
  99.   }
  100.     if(LR > 500){
  101.     digitalWrite(LPin, LOW);
  102.     digitalWrite(RPin, HIGH);
  103.     LRduty = map(LR, 500, 0, 1, 255);
  104.     if(LRduty < 25){
  105.         LRduty = 0;
  106.         analogWrite(LRPin, LRduty);
  107.     }
  108.     analogWrite(LRPin, LRduty);
  109.   }
  110. }
Következő: »»   854 / 854
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem