2016-09-28 2 views
0

입력에 따라 스테퍼 ​​모터를 켜기 위해 직렬 모니터에서 사용자 입력을 얻으려고합니다. 그러나 내 코드는 원래 입력 대신 ASCII 값을 반환합니다. 그냥 "타입 변환"문제가 될 경우Arduino에서 ASCII를 int로 변환

#include <Stepper.h> 

Stepper small_stepper(steps_per_motor_revolution, 8, 10, 9, 11); 

void setup() { 
    // Put your setup code here, to run once: 
    Serial.begin(9600); 
    Serial.println("Ready"); 
} 


void loop() { 

    // Put your main code here, to run repeatedly: 
    int Steps2Take = Serial.read(); 
    Serial.println(Steps2Take); // Printing 
    if (Steps2Take == -1) 
    Steps2Take = 0; 
    else { 
    small_stepper.setSpeed(1000); // Setting speed 
    if (Steps2Take > 0) 
     small_stepper.step(Steps2Take * 32); 
    else 
     small_stepper.step(-Steps2Take * 32); 
    delay(2); 
    } 
} 
+2

https://www.arduino.cc/en/Serial/Read –

+1

https://www.arduino.cc/en/Serial/ParseInt 블록,하지만 것입니다 실제 시나리오에 방해가되면 ... – datafiddler

+0

당신이 새롭기 때문에 나는 원한다면 대답을 받아들이는 것이 가능하다. 녹색이 될 작은 "팁"이 있습니다. :) – Leos313

답변

-1

,이 같은 것을 사용할 수 있습니다 : 그것은 here을 지적

int a_as_int = (int)'a'; 

또는

#include <stdlib.h> 

int num = atoi("23"); //atoi = ascii to integer 

했다한다.

문제가 해결 되었습니까?

0

그냥 .toInt() 함수를 사용하십시오.

시리얼에서 문자열을 읽은 다음 정수로 변환해야합니다.

Serial.print(Serial.readString().toInt()); 
데모의 경우 단지 좋은