Что я делаю не так ?
- Войдите на сайт для отправки комментариев
Я не знаю почему но оно не работает . При нажатии на разные кнопки должна проигроваться разные ноты , проверьте , и помогите , пожалуйта .
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");
}
}
Проверьте 38 строку :/
когда задолбает считать прочитайте правила размещения кода
Всмысле вот так ?
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);
}
}
Нет, не так.
А как ? Я просто первый раз вообще сам пишу что то , и посему ищё не шарю в этих делах :(
вот так
Заодно напишите, а что у Вас происходит? У Вас же там вывод в сериал есть - выводит-то то что нужно? А чем пищать подключили?
Вы юмор не поняли. Вставте код как положено (ссылку Вам дали), а то без номеров строк как его обсуждать-то?
По задумке , есть 5 кнопок , при нажатии на левую крайнюю воспроизводиться звук , и с остольными так-же . Вывод в сериал я сделал для проверки нажатий , ну так , чтобы было . Чем пищать , подключил , бузер , у китайцев брал.
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); } }Оно и не будет работать. На один tone() четыре noTone(). Кто победит - как считаете?
noTone победит , возможно я понял как это исправить ...
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); } }А нет , потом
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); } }Так лучше ?
Если работает так, как задумывалось, то конечно лучше.
Один совет - нажимайте ^T в Arduino IDE.