прошу помощи с сервой

vitix
Offline
Зарегистрирован: 18.09.2015

добрый день, помогите пожалуйста с сервой, задача следующая:

имеется 2 цифровых входа по умолчянию  лог. 0 на обоих

если вход1=0   и вход2=0    тогда серва на 80 (начальная позиция)

если вход1 = 1 тогда серва на 150 (как только пропадает лог.1 серва возращается на начало (80))

если вход2 = 1 тогда серва на 10  (как только пропадает лог.1 серва возращается на начало (80))

 

попытался написать с одним входом работает, с двумя нет, 

 

#include <Servo.h> 
Servo myservo; 
              
 
 
const int inputPin1 = 5;     //вход 1
const int inputPin2 = 6;     //вход 2
int inputState1= 0;         
int inputState2 = 0;   
    
void setup() 
{ 
  myservo.attach(9);  
} 


 
void loop() 
{ 
   inputState1 = digitalRead(inputPin1);
  if (inputState1 == HIGH) {
myservo.write(130);
  }
  else {
myservo.write(80);
} 
}

 

 

vitix
Offline
Зарегистрирован: 18.09.2015

вот с таким кодом вроде работает, хочу выслушать Ваши коментарии, и укажите как можно оптимизировать и сделать проще.

спасибо

#include <Servo.h> 
Servo myservo; 
              
 
 
const int inputPin1 = 5;     //вход 1
const int inputPin2 = 6;     //вход 2
int inputState1= 0;         
int inputState2 = 0;   
    
void setup() 
{ 
  myservo.attach(9);  
    myservo.write(90);
} 


 
void loop() 
{ 
  if ((digitalRead(inputPin1)==0) && (digitalRead(inputPin2)==1)){

  myservo.write(130);
  }
 
  else if ((digitalRead(inputPin1)==1) && (digitalRead(inputPin2)==0)){

 myservo.write(30);
    }
  
  else {
myservo.write(80);
} 
}