Будет ли работать
- Войдите на сайт для отправки комментариев
Чт, 15/04/2021 - 20:49
Смысл создания данной темы в том, чтобы Наши гиганты мыслей подсказали:
будет данный скетч работать с заданными и описанными алгоритмами или нет
и дать свою оценку или же комментарии.
будет данный скетч работать с заданными и описанными алгоритмами или нет
А может отец русской демократии не поленится запустить сам, посмотреть работает или нет и нам рассказать? Не? Камасутра не позволяет?
Скетч этот подобен хлопку одной ладони.
Скетч этот подобен хлопку одной ладони.
А описанные алгоритмы? Чему подобны?
Тема для того чтобы неопытный программер не запорол ардуинку
или просто проблемы со скетчем
Скетч этот подобен хлопку одной ладони.
А описанные алгоритмы? Чему подобны?
Будде, созерцающему несовершенство мира.
созерцающему
Всё суетитесь? (С)
У меня ситуация следующая: хочу сделать беспроводной звонок на ардуинке с применением модулей dfplayer mini и приёмника rx480e-4, который будет отправлять однократный сигнал на определённый пин. При нажатии на кнопу выбора мелодий будет воспроизводить следующую композицию в течении 60 секунд и если кнопка выбора не нажата больше сохраняет заданную мелодию. При повторном нажатии на кнопку выбора мелодий до достижения 6о сек должна произойти очередная смена мелодии. Дополнил скетч описанием.
Вот скетч:
#include <SoftwareSerial.h> // подключение библиотеки программного порта RX, TX #include <DFPlayer_Mini_Mp3.h> // подключение библиотеки для работы с dfplayer mini SoftwareSerial mySoftwareSerial(10, 11); // RX, TX byte melody = 1; // переменная для номера мелодии byte knopkaVybora = 1; // кнопка выбора мелодий на пин 1 byte knopkaZvonka = 2; // нажатие кнопки радиопередатчика на пин 2 unsigned long raznitsaVremeni = 0; // для хранения последнего времени миллес byte drebezgPeriod = 20; // задержка для устранения дребезга контактов unsigned long vremyaMelody = 60000; // воспроизведение мелодии как в основном цикле, так и в функции vyborMelody void setup() { vyborMelody(); // создание функции vyborMelody для выбора мелодий mySoftwareSerial.begin(9600); // запуск порта с плеером mp3_set_serial (mySoftwareSerial); // открываем программный порт для dfplayer mini pinMode (knopkaVybora, INPUT_PULLUP); // кнопка выбора мелодий pinMode (knopkaZvonka, INPUT); // кнопка звонка mp3_set_volume(30); // уровень громкости 30 } void loop() { unsigned long tekuscheeVremya = millis(); // сохраняем текущее время работы программы if ((tekuscheeVremya - raznitsaVremeni) >= drebezgPeriod && digitalRead(knopkaVybora) == LOW) // организация задержки в 20 мс для устранения эффекта дребезга контактов { raznitsaVremeni = tekuscheeVremya; // присваиваем значение текущего времени vyborMelody(); // выполняем функцию выбора мелодий } if (knopkaZvonka) // если сигнал с приёмника от передатчика {if ((tekuscheeVremya - raznitsaVremeni) <= vremyaMelody) // проигрывать трек 60 секунд (переменная vremyaMelody) { mp3_play (melody); // функция библиотеки с включением выбраного файла из плеера } else { mp3_stop (); // если прошло 60 секунд остановить трек } } } void vyborMelody(){ mp3_play (melody); // функция библиотеки с включением выбраного файла из плеера unsigned long tekuscheeVremya = millis(); // сохраняем текущее время работы программы if ((tekuscheeVremya - raznitsaVremeni) >= drebezgPeriod && digitalRead(knopkaVybora) == LOW) // организация задержки в 20 мс для устранения эффекта дребезга контактов { melody = melody++; // следующая мелодия if ((tekuscheeVremya - raznitsaVremeni) <= vremyaMelody) // проигрывать трек 60 секунд (переменная vremyaMelody) { mp3_play (melody); // функция библиотеки с включением выбраного файла из плеера } else { mp3_stop (); // если прошло 60 секунд остановить трек } } }Это мой первый скетч после прочтения кучи литературы и просмотров роликов, так что не судите строго
Вы уверены, что понимаете, что делаете в строке №40? Выглядит она как бред сивой кобылы, но формально так делать можно.
не судите строго
А вот этого я вообще не понимаю. Вы просите критики, но при этом запрещаете бред называть бредом? Тогда сами высказывайте мнение о коде.
Тема для того чтобы неопытный программер не запорол ардуинку
Т.е. чтобы навсегда остался неопытным. Ибо пока не запорет, опыт не появится.
Короче, приподнимаем ленивую задницу,запускаем и проверяем работает или нет. Мы это за Вас делать будем? С какого бодуна?
Что-то запороть можно только накосячив со схемой, да и там это нелегко. Ардуино это учебный инструмент.
Извините ЕвгенийП, не учёл Ваших замечаний и хотелось бы услышать ещё вашей критики насчёт этой строки, перевыложил скетч с более подробным описанием.