Почему не работает функция map()?

codingMike
Offline
Зарегистрирован: 14.12.2017

Здравствуйте!

Помогите, пожалуйста!

Что не так с кодом? С обычным потенциометром всё ок, а с ползунковым - не работает. 

void setup() {                
  
  pinMode(A0, INPUT);
 
  Serial.begin(9600);
}



void loop() {
  
  int val = analogRead(A0);
  map(val, 0, 1023, 0, 60);
  constrain(val, 0, 60);
  delay(30);
  Serial.println(val);
  

Выдает значение между 0 и 692...

Заранее спасибо!

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Вы не присваиваете значений, возвращаемых функцией map - НИ-КУ-ДА.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014
val=map(val, 0, 1023, 0, 60);
val=constrain(val, 0, 60);

 

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

brokly пишет:

val=map(val, 0, 1023, 0, 60);
val=constrain(val, 0, 60);

при наличии первой вторая строка явно избыточна

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

b707 пишет:

brokly пишет:

val=map(val, 0, 1023, 0, 60);
val=constrain(val, 0, 60);

при наличии первой вторая строка явно избыточна

Не факт.

По приведенному фрагменту кода этого утверждать нельзя.

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

andriano пишет:

b707 пишет:

при наличии первой вторая строка явно избыточна

Не факт.

По приведенному фрагменту кода этого утверждать нельзя.

Вот вы зануда:)

Исходный код был такой, и в нем - таки можно, кмк

int val = analogRead(A0);
val=map(val, 0, 1023, 0, 60);
val=constrain(val, 0, 60);