c++ - Serial I/O functions with Servo -


so i've hooked servo motor digital pin 6 on arduino. want type number serial port, , have servo rotate degree.

i'm trying make 2 functions,

1) asks , receives number serial port between 10 & 170. asks re-entry if invalid. returns when number good.

2) takes in degree argument, writes argument servo degree, prints out status: "servo moved x ticks y degrees."

#include <servo.h>  servo myservo;  int deg; int degree; int inputdeg;  int ang; int angle; int inputang;  int servomin = 10; int servomax = 175;  int recievenum(int inputdeg) {   inputdeg = serial.parseint();   if (inputdeg >= 0 && inputdeg <= 180) {      serial.println("you did great!");      return degree;   } else {      serial.println("hey! try giving me number between 0 , 180 time.");   }  }  int servotranslate(int inputang) {   angle = map(degree, 0, 180, servomin, servomax);   return angle; }  void setup() {   serial.begin(9600);   myservo.attach(6); }  void loop() {   if (serial.available() == 0) {}   else {     recievenum(deg);      int finalang = servotranslate(degree);      serial.print("  servo moved ");     serial.print(degree);     serial.print(" tick(s) ");     serial.print(finalang);     serial.println("º");      myservo.write(finalang);   } } 

i still pretty new c++, , think might matter of variables being mixed up. using pointers seems option haven't gotten far trying implement those.

this should work you:

function recievenum should return -1 indicator invalid input:

int recievenum(int inputdeg)  {   inputdeg = serial.parseint();   if (inputdeg >= 0 && inputdeg <= 180) {     serial.println("you did great!");     return degree;   } else {     serial.println("hey! try giving me number between 0 , 180 time.");   }   return -1;    ^^^^^^^^^ }  void loop()  {   if (serial.available() != 0)    {      if(-1 != recievenum(deg))      { // valid 'deg'        int finalang = servotranslate(degree);        serial.print("  servo moved ");        serial.print(degree);        serial.print(" tick(s) ");        serial.print(finalang);        serial.println("º");      }   }    myservo.write(finalang); } 

Comments

Popular posts from this blog

java - Run spring boot application error: Cannot instantiate interface org.springframework.context.ApplicationListener -

python - pip wont install .WHL files -

Excel VBA "Microsoft Windows Common Controls 6.0 (SP6)" Location Changes -