Помогите разобраться с ошибкой в скетче.

Gapash
Offline
Зарегистрирован: 15.04.2020

Здравствуйте господа!
С ардуинкой знаком два дня и до этого нигде не программировал. Взял стандартный скетч для клавиатуры с пин-кодом. 

Все работает. Теперь стоит задача, что бы при правильно введенном пин-коде зуммер(я так понимаю пассивный) начал пищать на частоте 5500 в течении 40 секунд с изменением количества писков в секунду. Тоесть что бы по истечению времени количество писков нарастало. Я накидал скетч, но конечно же неправильно. Быть может, укажите на ошибку?Или, я прям чувствую что такое есть, на конкретный интрефейс или функцию для подобной задачи?
Заранее спасибо!)

 


#include <Password.h> 
#include <Keypad.h> 

Password password = Password( "7355608" );

int DelaySound = 1000;
int DelaySound1 = 750;
int DelaySound2 = 500;
int DelaySound3 = 333;
int DelaySound4 = 250;
int DelaySound5 = 150;
const byte ROWS = 3; 
const byte COLS = 4; 
char keys[ROWS][COLS] = {
  {'3','6','9','#'},
  {'2','5','8','0'},
  {'1','4','7','*'},
};
byte rowPins[ROWS] = {4, 8, 6}; 
byte colPins[COLS] = {7, 2, 9, 5}; 


Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup(){

  Serial.begin(9600);
  keypad.addEventListener(keypadEvent);
}

void loop(){
  keypad.getKey();
}

void keypadEvent(KeypadEvent eKey){
  switch (keypad.getState()){
    case PRESSED:
	Serial.print("Pressed: ");
	Serial.println(eKey);
	switch (eKey){
	  case '*':
	    checkPassword();
        password.reset();
	    break;
	  
	  case '#':
	    password.reset();
	    break;
      
	  default:
	    password.append(eKey);
     }
  }
}

void checkPassword(){
  if (password.evaluate()){
    Serial.println("Bomb has been planted");
    void setup(){
    }
    void loop()
    {
  tone(11, 5500);  
  delay(DelaySound);  
  tone(11, 5500); 
  delay(DelaySound);
  tone(11, 5500); 
  delay(DelaySound);
  tone(11, 5500); 
  delay(DelaySound);
  tone(11, 5500); 
  delay(DelaySound);
  tone(11, 5500); 
  delay(DelaySound);
  tone(11, 5500); 
  delay(DelaySound);
   tone(11, 5500); 
  delay(DelaySound);
   tone(11, 5500); 
  delay(DelaySound);
   tone(11, 5500); 
  delay(DelaySound);
  tone(11, 5500);  
  delay(DelaySound1);  
  tone(11, 5500); 
  delay(DelaySound1);
  tone(11, 5500); 
  delay(DelaySound1);
  tone(11, 5500); 
  delay(DelaySound1);
  tone(11, 5500); 
  delay(DelaySound1);
  tone(11, 5500); 
  delay(DelaySound1);
  tone(11, 5500); 
  delay(DelaySound2);
   tone(11, 5500); 
  delay(DelaySound2);
   tone(11, 5500); 
  delay(DelaySound2);
   tone(11, 5500); 
  delay(DelaySound2);
  tone(11, 5500);  
  delay(DelaySound2);  
  tone(11, 5500); 
  delay(DelaySound2);
  tone(11, 5500); 
  delay(DelaySound3);
  tone(11, 5500); 
  delay(DelaySound3);
  tone(11, 5500); 
  delay(DelaySound3);
  tone(11, 5500); 
  delay(DelaySound3);
  tone(11, 5500); 
  delay(DelaySound3);
   tone(11, 5500); 
  delay(DelaySound3);
   tone(11, 5500); 
  delay(DelaySound4);
   tone(11, 5500); 
  delay(DelaySound4);
  tone(11, 5500);  
  delay(DelaySound4);  
  tone(11, 5500); 
  delay(DelaySound4);
  tone(11, 5500); 
  delay(DelaySound4);
  tone(11, 5500); 
  delay(DelaySound4);
  tone(11, 5500); 
  delay(DelaySound4);
  tone(11, 5500); 
  delay(DelaySound4);
  tone(11, 5500); 
  delay(DelaySound5);
   tone(11, 5500); 
  delay(DelaySound5);
   tone(11, 5500); 
  delay(DelaySound5);
   tone(11, 5500); 
  delay(DelaySound5);
  tone(11, 5500, 1500); 
  noTone(9); 
  }else{
    Serial.println("error");
  }
}

 

MaksVV
Offline
Зарегистрирован: 06.08.2015

убрать сетап и луп из функции checkPassword  и избавится от delay 

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

Gapash пишет:

С ардуинкой знаком два дня
до этого нигде не программировал.
накидал скетч ...  для клавиатуры с пин-кодом.

Два дня и сразу на форум - "памагити"? Может самому поработать хотя бы полгодика? Язык изучить, попрактиковаться "на кошках мигании светодиодами"?

Вы правда думаете, что можно зайти с улицы и сразу начать программировать?

"Накидайте" лучше мигание светодиодом (ну, или навоз на клумбу).

-NMi-
Offline
Зарегистрирован: 20.08.2018

шо_апять?           ))))))))))))))))))))))))))

Gapash
Offline
Зарегистрирован: 15.04.2020

Так без delay, функция tone будет непрерывна(((

Gapash
Offline
Зарегистрирован: 15.04.2020

что опять?

Gapash
Offline
Зарегистрирован: 15.04.2020

Мне нужна одна конкретная задача от ардуинки. В чем проблема подсказать?

Ох***евшие программисты пошли. Я же не говорю всем, кто спрашивает меня «а как приготовить вкусный шашлык?а как варить пасту до состояния альденте?а как пожарить сочный ангус стейк дома?» может сначала отучишься в универе 4 года, потом поработаешь на производстве и в рестиках 5 лет и сам во всем разберешься?

Я почему-то беру и подсказываю человеку и прикинь, я еще как то не умер от этого.

MaksVV
Offline
Зарегистрирован: 06.08.2015

Gapash пишет:

Так без delay, функция tone будет непрерывна(((

ленивый всегда найдёт отговорку. Ох..евший "программист" это как раз про тебя . 

nik182
Offline
Зарегистрирован: 04.05.2015

Как готовить шашлык знают все. Поэтому при подсказках по шашлыку не надо вдаваться в детали. Достаточно немного подсказать. Для меня первый ответ совершенно понятен и совершенно справедлив. Его достаточно что бы исправить ошибки. Это именно ответ на уровне подсказки по шашлыку. Почему такая обида? Читать лекции по основам программирования это точно задача не форума, а института.     

b707
Offline
Зарегистрирован: 26.05.2017

Gapash пишет:

Я почему-то беру и подсказываю человеку и прикинь, я еще как то не умер от этого.

так тебе уже тоже подсказали.