Диапозон регулировки ШИМ от 40% до 80%

Strawman
Offline
Зарегистрирован: 13.06.2020

Всем доброго времени суток. Подскажите пожалуйста как сделать регулировку ШИМ от 40% до 80%. Сначала идет плавный старт до 40%, с последующим изменением скорости с помощью потенциометра.

if (workMode == 1){
   for (int i=1; i<=102; i++)

	 {

	analogWrite(PUMP, i);
 
	delay(100);
      
     if (i==102) 
    workMode=3;
    

	  }
  }
    
    if (workMode == 3){ 
    if(ms<ms_old){
      if(ms>ms_blink+150){
          digitalWrite(LED_GREEN, LOW);
          ms_blink = ms;
      }     

    if (ms>ms_blink+50){
          digitalWrite(LED_GREEN, HIGH);
      }
    } else {
      if(ms>ms_blink+350){
          digitalWrite(LED_GREEN, LOW);
          ms_blink = ms;
      } 

      if (ms>ms_blink+100){
          digitalWrite(LED_GREEN, HIGH);
          digitalWrite(LED_RED, LOW);
      }
      
      speed = map(analogRead(PUMP_CONTROL), 1023*0.4, 1023, 0, 255*0.8);
    }
         
    
  	analogWrite(PUMP, speed);
  } else {
  	speed = 0;
  }

 

b707
Offline
Зарегистрирован: 26.05.2017

Попытайтесь четче сформулировать вопрос, непонятно в чем у вас проблема

Bruzzer
Offline
Зарегистрирован: 17.03.2020

Может быть в коде есть и другие ошибки, но точно надо заменить

speed = map(analogRead(PUMP_CONTROL), 1023*0.4, 1023, 0, 255*0.8);

на

speed = map(analogRead(PUMP_CONTROL), 0, 1023, 255*0.4, 255*0.8);

если надо "сделать регулировку ШИМ от 40% до 80%"

Strawman
Offline
Зарегистрирован: 13.06.2020

Так нужно ограничивать обороты двигателя? map(analogRead(PUMP_CONTROL), 1023*0.4, 1023, 0, 255*0.8);