Сервопривод

himikat
Offline
Зарегистрирован: 21.06.2016
const int buttonPin = 12;     // номер входа, подключенный к кнопке
                                           // переменные
int buttonState = 0;         // переменная для хранения состояния кнопки
long prevmillis = millis();
long interval = 10000;
#include <Servo.h> //используем библиотеку для работы с сервоприводом
Servo servo; //объявляем переменную servo типа Servo
void setup() {
  Serial.begin(9600);
  servo.attach(9); //привязываем привод к порту 9
  // инициализируем пин, подключенный к кнопке, как вход
  pinMode(buttonPin, INPUT);
}
void loop(){
  buttonState = digitalRead(buttonPin);// считываем значения с входа кнопки
  if (buttonState == HIGH) {     // проверяем нажата ли кнопка
                                 // если нажата, то buttonState будет HIGH:
                                // включаем светодиод
Serial.println("Button on");                 // вывести открыть 
servo.write(0);               //ставим вал под 0(открытие сервы)
delay(3000);                    //ждем 3 секунды
servo.write(99);               //ставим вал под 99 ( закрытие)
delay(3000);                  //ждем 3 секунды
  }
else if
  (( millis() - prevmillis) > interval){ // если прошедшее время с начала запуска скетча > интервала
     prevmillis = millis();                 // вновь обнуляем время счетчика
    servo.write(0);                         //ставим вал под 0(открытие сервы)
    Serial.println("Open");                 // вывести открыть 
    delay(5000);                            //ждем 5 секунды
    servo.write(99);                       //ставим вал под 99 ( закрытие)
    Serial.println("Close");                 // вывести закрытие
    delay(5000);//ставим вал под 0 (закрытие закрытие)
}
}

 

himikat
Offline
Зарегистрирован: 21.06.2016

Здравствуйте вот код скетча на открывание сервы и закрывание , проблема в том , что нажатие кнопки не реагирует .Точнее если закоментировать блок нажатия кнопки на открытие и закрытие сервы , то работает код ниже на открытие и закрытие и также наоборот. А вот вместе они не работаю, точнее что при нажатии серва не открывается а она тупо работает по 2 ому блоку  Подправьте мой скетч, подскажите что делать, чтобы работало как и от нажатия кнопки так и от таймера. Премного благодарен  

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А в сериал что выводит?

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Или на входе кнопки резистор 5-20 килоом на землю
или кнопку на землю , вход INPUT_PULLUP и срабатывать на его LOW

himikat
Offline
Зарегистрирован: 21.06.2016

Если не нажимать кнопку то Open , Close  когда срабатывает серва

himikat
Offline
Зарегистрирован: 21.06.2016

не совсем понял ?

himikat
Offline
Зарегистрирован: 21.06.2016

у меня резистор на 10 кОМ , одна нога с сигнала другая в землю

himikat
Offline
Зарегистрирован: 21.06.2016

himikat
Offline
Зарегистрирован: 21.06.2016

Вот так организованно подключение

himikat
Offline
Зарегистрирован: 21.06.2016

Если не нажимать кнопку то Open , Close  когда срабатывает серва