#1 2016-05-13 01:29:23

manhetan
Учасник
Зареєстрований: 2016-05-13
Повідомлень: 10

Помогите пожалуйста !!

Помогите пожалуйста новичку!
Как сделать задержку включения ledPin1?
Что бы при нажатии buttonPin1 проходило 10 сек. а только потом включался ledPin1 но ledPin2 включался сразу!!

#define ledPin1 11    //пин выхода LED1
#define ledPin2 12    //пин выхода LED2

#define buttonPin1 7  //пин кнопки 1
#define buttonPin2 8 //пин кнопки 2

unsigned long previousMillis1 = 0;      //храним время последнего Включения светодиода 1
unsigned long previousMillis2 = 0;      //храним время последнего Включения светодиода 2
unsigned long interval = 60000;         //интервал работы светодиодов (10 секунд)
unsigned long interva2 = 70000;         //интервал работы светодиодов (10 секунд)


void setup() 
{
  //задаем режим выхода для порта, подключенного к светодиоду
  pinMode(ledPin1, OUTPUT);     
  pinMode(ledPin2, OUTPUT);
}

void loop()
{
  delay(10);

  //Нажимаем кнопку 1 - включаеться светодиод 1
  if (digitalRead(buttonPin1) == HIGH)
  {
    digitalWrite(ledPin1, HIGH);
    digitalWrite(ledPin2, HIGH);
    previousMillis1 = millis();
    previousMillis2 = millis();  // каждый раз при нажатии кнопки отсчёт отсрочки начинаеться сначала...
  }
  // Прошло время выключаем светодиод 1
  if(millis()-previousMillis1 >= interval) 
  {
    digitalWrite(ledPin1, LOW);
    }
  if(millis()-previousMillis2 >= interva2){  
    digitalWrite(ledPin2, LOW);
  }
  
  //Нажимаем кнопку 2 - включаеться светодиод 2
  if (digitalRead(buttonPin2) == HIGH)
  {
    digitalWrite(ledPin2, HIGH);
    previousMillis2 = millis(); // каждый раз при нажатии кнопки отсчёт отсрочки начинаеться сначала...
  }
  // Прошло время выключаем светодиод 2
  if(millis()-previousMillis2 >= interva2)
  {
    digitalWrite(ledPin2, LOW);
  }
}

Неактивний

#2 2016-05-13 07:53:47

vvr
Учасник
Зареєстрований: 2015-04-12
Повідомлень: 878

Re: Помогите пожалуйста !!

нажали кнопку - запускается таймер
прошло 10 сек - загорелся светик, значение таймера обнулили

ну и код в таком виде не читаемый...

Остання редакція vvr (2016-05-13 07:54:58)

Неактивний

#3 2016-05-13 15:32:27

manhetan
Учасник
Зареєстрований: 2016-05-13
Повідомлень: 10

Re: Помогите пожалуйста !!

#define ledPin1 11    //пин выхода LED1
#define ledPin2 12    //пин выхода LED2

#define buttonPin1 7  //пин кнопки 1
#define buttonPin2 8 //пин кнопки 2

unsigned long previousMillis1 = 0;      //храним время последнего Включения светодиода 1
unsigned long previousMillis2 = 0;      //храним время последнего Включения светодиода 2
unsigned long interval = 60000;         //интервал работы светодиодов (10 секунд)
unsigned long interva2 = 70000;         //интервал работы светодиодов (10 секунд)


void setup()
{
  //задаем режим выхода для порта, подключенного к светодиоду
  pinMode(ledPin1, OUTPUT);     
  pinMode(ledPin2, OUTPUT);
}

void loop()
{
  delay(10);

  //Нажимаем кнопку 1 - включаеться светодиод 1
  if (digitalRead(buttonPin1) == HIGH)
  {
    digitalWrite(ledPin1, HIGH);
    digitalWrite(ledPin2, HIGH);
    previousMillis1 = millis();
    previousMillis2 = millis();  // каждый раз при нажатии кнопки отсчёт отсрочки начинаеться сначала...
  }
  // Прошло время выключаем светодиод 1
  if(millis()-previousMillis1 >= interval)
  {
    digitalWrite(ledPin1, LOW);
    }
  if(millis()-previousMillis2 >= interva2){ 
    digitalWrite(ledPin2, LOW);
  }
 
  //Нажимаем кнопку 2 - включаеться светодиод 2
  if (digitalRead(buttonPin2) == HIGH)
  {
    digitalWrite(ledPin2, HIGH);
    previousMillis2 = millis(); // каждый раз при нажатии кнопки отсчёт отсрочки начинаеться сначала...
  }
  // Прошло время выключаем светодиод 2
  if(millis()-previousMillis2 >= interva2)
  {
    digitalWrite(ledPin2, LOW);
  }
}

Неактивний

#4 2016-05-13 15:34:01

manhetan
Учасник
Зареєстрований: 2016-05-13
Повідомлень: 10

Re: Помогите пожалуйста !!

А так ?
У меня чего то не получается таймер задержки включения прикрутить !!

Неактивний

#5 2016-05-13 16:16:38

vvr
Учасник
Зареєстрований: 2015-04-12
Повідомлень: 878

Re: Помогите пожалуйста !!

почитайте как правильно опрашивать кнопку с защитой от дребезга и соответственно код доработайте, а я вам таймер запущу)))))

Неактивний

#6 2016-05-13 16:42:18

manhetan
Учасник
Зареєстрований: 2016-05-13
Повідомлень: 10

Re: Помогите пожалуйста !!

Кнопки подтянуты к земле через резистор .или в коде надо прописать ?

Остання редакція manhetan (2016-05-13 16:47:53)

Неактивний

#7 2016-05-13 16:50:15

vvr
Учасник
Зареєстрований: 2015-04-12
Повідомлень: 878

Неактивний

#8 2016-05-13 16:54:07

manhetan
Учасник
Зареєстрований: 2016-05-13
Повідомлень: 10

Re: Помогите пожалуйста !!

pinMode(buttonPin, INPUT); ?

Неактивний

#9 2016-05-13 17:08:10

vvr
Учасник
Зареєстрований: 2015-04-12
Повідомлень: 878

Re: Помогите пожалуйста !!

я вам ссылки сбросил
почитать и разобраться не хочется видно....

Неактивний

#10 2016-05-13 17:15:38

manhetan
Учасник
Зареєстрований: 2016-05-13
Повідомлень: 10

Re: Помогите пожалуйста !!

Не заметил ! Сейчас прочту ! Спасибо

Неактивний

#11 2016-05-13 17:27:52

manhetan
Учасник
Зареєстрований: 2016-05-13
Повідомлень: 10

Re: Помогите пожалуйста !!

pinMode(buttonPin, INPUT);
digitalRead(buttonPin, LOW);

Неактивний

#12 2016-05-13 17:59:38

vvr
Учасник
Зареєстрований: 2015-04-12
Повідомлень: 878

Re: Помогите пожалуйста !!

да, видно не разобрался

Неактивний

#13 2016-05-13 18:38:56

manhetan
Учасник
Зареєстрований: 2016-05-13
Повідомлень: 10

Re: Помогите пожалуйста !!

Наверное да !не могу понять что там не так ?

Неактивний

#14 2016-05-13 19:00:44

manhetan
Учасник
Зареєстрований: 2016-05-13
Повідомлень: 10

Re: Помогите пожалуйста !!

Это пробный код .поидеи там кнопок не будет ,будет  приходить  +5 в.от другого блока !

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму