Народ помогите с написанием программы, надо чтоб серва делала поворот от 0 до 180 и обратно и число таких циклов задавалось с переменного резистора( потенциометра) тоесть повернул ручку резистора а серва сделал одинг цикл еще повернул 2 и так далее
Код (C): #define SERVO_TIME 2000 #define MAX_LOOP_NUM 20 #define SERVO 9 #define POT 8 int servCnt; void setup() { myservo.attach(SERVO); servCnt = map(analogRead(POT),0,1023,0, MAX_LOOP_NUM); ; } void loop() { int cServCnt = map(analogRead(POT),0,1023,0, MAX_LOOP_NUM); if(cServCnt != servCnt) { for(int i = 0;i<cServCnt;i++) { myservo.write(180); delay(SEVO_TIME); myservo.write(0); delay(SEVO_TIME); } servCnt = cServCnt ; } }
немного подправлю код: Код (C): #define SERVO_TIME 2000 #define MAX_LOOP_NUM 20 #define SERVO 9 #define POT 8 int servCnt; void setup() { myservo.attach(SERVO); servCnt = map(analogRead(POT),0,1023,0, MAX_LOOP_NUM); ; } void loop() { int cServCnt = map(analogRead(POT),0,1023,0, MAX_LOOP_NUM); if(cServCnt != servCnt) { for(int i = 0;i<cServCnt;i++) { myservo.write(180); delay(SEVO_TIME); myservo.write(0); delay(SEVO_TIME); } cServCnt = map(analogRead(POT),0,1023,0, MAX_LOOP_NUM); servCnt = cServCnt ; } } в первом варианте, если повернуть потенциометр во время работы сервы, то она сразу же пойдет на новый цикл поворотов