Что я делаю не так ?

Misha_DLS
Offline
Зарегистрирован: 24.12.2018

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

int butt1 = 3;
int butt2 = 4;
int butt3 = 5;
int butt4 = 6;
int butt5 = 7;
int led = 8;

void setup() {
pinMode(butt1, INPUT_PULLUP);
pinMode(butt2, INPUT_PULLUP);
pinMode(butt3, INPUT_PULLUP);
pinMode(butt4, INPUT_PULLUP);
pinMode(butt5, INPUT_PULLUP);
pinMode(led, OUTPUT);
Serial.begin (9600);
  }
  void loop(){
   butt1 = !digitalRead(3);
   butt2 = !digitalRead(4);
   butt3 = !digitalRead(5);
   butt4 = !digitalRead(6);
   butt5 = !digitalRead(7);

   if(butt1 == 1){
    tone (led, 500);
    Serial.println ("b1");
    delay (50);
   }
   else{
    noTone(led);
    Serial.println ("b1n");
    }
       if(butt2 == 1){
        tone (led, 600);
        Serial.println ("b2");
        delay (50);
        }
        else
        {noTone(led);
        Serial.println ("b1n");
        }
       if(butt3 == 1){
    tone (led, 329);
    Serial.println ("b3");
    delay (50);
   }
   else
   {noTone(led);
   Serial.println ("b1n");
   }
       if(butt4 == 1){
        tone (led, 349);
        Serial.println ("b4");
        delay (50);
        }
        else
        {noTone(led);
        Serial.println ("b1n");
        }
       if(butt5 == 1){
    tone (led, 392);
    Serial.println ("b5");
    delay (50);
  }
else
   {noTone(led);
   Serial.println ("b1n");
   }
    }

inspiritus
Онлайн
Зарегистрирован: 17.12.2012

Проверьте 38 строку :/

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

Misha_DLS
Offline
Зарегистрирован: 24.12.2018

Всмысле вот так ?

int butt1 = 3;
int butt2 = 4;
int butt3 = 5;
int butt4 = 6;
int butt5 = 7;
int led = 8;

void setup() {
pinMode(butt1, INPUT_PULLUP);
pinMode(butt2, INPUT_PULLUP);
pinMode(butt3, INPUT_PULLUP);
pinMode(butt4, INPUT_PULLUP);
pinMode(butt5, INPUT_PULLUP);
pinMode(led, OUTPUT);
Serial.begin (9600);
  }
  void loop(){
   butt1 = !digitalRead(3);
   butt2 = !digitalRead(4);
   butt3 = !digitalRead(5);
   butt4 = !digitalRead(6);
   butt5 = !digitalRead(7);

   if(butt1 == 1)
   {
    tone (led, 500);
    Serial.println ("b1");
    delay (50);
   }
   else
   {
    noTone(led);
    }
       if(butt2 == 1)
       {
        tone (led, 600);
        Serial.println ("b2");
        delay (50);
        }
        else
        {
          noTone(led);
        }
       if(butt3 == 1)
       {
    tone (led, 329);
    Serial.println ("b3");
    delay (50);
   }
   else
   {
    noTone(led);
   }
        if(butt4 == 1)
       {
        tone (led, 349);
        Serial.println ("b4");
        delay (50);
        }
        else
        {
          noTone(led);
        }
        if(butt5 == 1)
       {
    tone (led, 392);
    Serial.println ("b5");
    delay (50);
  }
  else
  {
    noTone(led);
   }
    }

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Нет, не так.

Misha_DLS
Offline
Зарегистрирован: 24.12.2018

А как ? Я просто первый раз вообще сам пишу что то , и посему ищё не шарю в этих делах :(

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016
Misha_DLS
Offline
Зарегистрирован: 24.12.2018
А что не так с else ?

kalapanga
Offline
Зарегистрирован: 23.10.2016

Заодно напишите, а что у Вас происходит? У Вас же там вывод в сериал есть - выводит-то то что нужно? А чем пищать подключили? 

 

Misha_DLS пишет:

А что не так с else ?

Вы юмор не поняли. Вставте код как положено (ссылку Вам дали), а то без номеров строк как его обсуждать-то?

 

Misha_DLS
Offline
Зарегистрирован: 24.12.2018

По задумке , есть 5 кнопок , при нажатии на левую крайнюю воспроизводиться звук , и с остольными так-же . Вывод в сериал я сделал для проверки нажатий , ну так , чтобы было . Чем пищать , подключил , бузер , у китайцев брал.

Misha_DLS
Offline
Зарегистрирован: 24.12.2018
int butt1 = 3;
int butt2 = 4;
int butt3 = 5;
int butt4 = 6;
int butt5 = 7;
int led = 8;

void setup() {
pinMode(butt1, INPUT_PULLUP);
pinMode(butt2, INPUT_PULLUP);
pinMode(butt3, INPUT_PULLUP);
pinMode(butt4, INPUT_PULLUP);
pinMode(butt5, INPUT_PULLUP);
pinMode(led, OUTPUT);
Serial.begin (9600);
  }
  void loop(){
   butt1 = !digitalRead(3);
   butt2 = !digitalRead(4);
   butt3 = !digitalRead(5);
   butt4 = !digitalRead(6);
   butt5 = !digitalRead(7);

   if(butt1 == 1)
   {
    tone (led, 500);
    Serial.println ("b1");
    delay (50);
   }
   else
   {
    noTone(led);
    }
       if(butt2 == 1)
       {
        tone (led, 600);
        Serial.println ("b2");
        delay (50);
        }
        else
        {
          noTone(led);
        }
       if(butt3 == 1)
       {
    tone (led, 329);
    Serial.println ("b3");
    delay (50);
   }
   else
   {
    noTone(led);
   }
        if(butt4 == 1)
       {
        tone (led, 349);
        Serial.println ("b4");
        delay (50);
        }
        else
        {
          noTone(led);
        }
        if(butt5 == 1)
       {
    tone (led, 392);
    Serial.println ("b5");
    delay (50);
  }
  else
  {
    noTone(led);
   }
    }
    

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Оно и не будет работать. На один tone() четыре noTone(). Кто победит - как считаете?

Misha_DLS
Offline
Зарегистрирован: 24.12.2018

noTone победит , возможно я понял как это исправить ...

 

Misha_DLS
Offline
Зарегистрирован: 24.12.2018
int butt1 = 3;
int butt2 = 4;
int butt3 = 5;
int butt4 = 6;
int butt5 = 7;
int led = 8;

void setup() {
pinMode(butt1, INPUT_PULLUP);
pinMode(butt2, INPUT_PULLUP);
pinMode(butt3, INPUT_PULLUP);
pinMode(butt4, INPUT_PULLUP);
pinMode(butt5, INPUT_PULLUP);
pinMode(led, OUTPUT);
Serial.begin (9600);
  }
  void loop(){
   butt1 = !digitalRead(3);
   butt2 = !digitalRead(4);
   butt3 = !digitalRead(5);
   butt4 = !digitalRead(6);
   butt5 = !digitalRead(7);

   if(butt1 == 1)
   {
    tone (led, 500);
    Serial.println ("b1");
    delay (50);
   }
   if(butt1 == 0)
   {
    noTone(led);
    }
       if(butt2 == 1)
       {
        tone (led, 600);
        Serial.println ("b2");
        delay (50);
        }
        if(butt2 == 0)
   {
    noTone(led);
    }
       if(butt3 == 1)
       {
    tone (led, 329);
    Serial.println ("b3");
    delay (50);
   }
   if(butt3 == 0)
   {
    noTone(led);
    }
        if(butt4 == 1)
       {
        tone (led, 349);
        Serial.println ("b4");
        delay (50);
        }
        if(butt4 == 0)
   {
    noTone(led);
    }
        if(butt5 == 1)
       {
    tone (led, 392);
    Serial.println ("b5");
    delay (50);
  }
  if(butt5 == 0)
   {
    noTone(led);
    }
    }
    

 

Misha_DLS
Offline
Зарегистрирован: 24.12.2018

А нет , потом

 

Misha_DLS
Offline
Зарегистрирован: 24.12.2018
int butt1 = 3;
int butt2 = 4;
int butt3 = 5;
int butt4 = 6;
int butt5 = 7;
int led = 8;

void setup() {
pinMode(butt1, INPUT_PULLUP);
pinMode(butt2, INPUT_PULLUP);
pinMode(butt3, INPUT_PULLUP);
pinMode(butt4, INPUT_PULLUP);
pinMode(butt5, INPUT_PULLUP);
pinMode(led, OUTPUT);
Serial.begin (9600);
  }
  void loop(){
   butt1 = !digitalRead(3);
   butt2 = !digitalRead(4);
   butt3 = !digitalRead(5);
   butt4 = !digitalRead(6);
   butt5 = !digitalRead(7);

   if(butt1 == 1)
   {
    tone (led, 500);
    Serial.println ("b1");
   }
       if(butt2 == 1)
       {
        tone (led, 600);
        Serial.println ("b2");
        }
       if(butt3 == 1)
       {
    tone (led, 329);
    Serial.println ("b3");
   }
        if(butt4 == 1)
       {
        tone (led, 349);
        Serial.println ("b4");
        }
        if(butt5 == 1)
       {
    tone (led, 392);
    Serial.println ("b5");
  }
  
  if(butt1 == 0 && butt2 == 0 && butt3 == 0 && butt4 == 0 && butt5 == 0)
   {
    noTone(led);
    }
    }

 

Misha_DLS
Offline
Зарегистрирован: 24.12.2018

Так лучше ?

sadman41
Offline
Зарегистрирован: 19.10.2016

Если работает так, как задумывалось, то конечно лучше. 

Один совет - нажимайте ^T в Arduino IDE.