Случайное продолжение события
- Войдите на сайт для отправки комментариев
Ср, 27/07/2016 - 12:53
кроме всех прочих, столкнулся с проблемой - не совсем, вернее совсем, не понимаю как сделать так:
1. событие = сработал будильник.
2. для его отключения хочу применить датчик положения.
3. отключение будильника должно происходить по следующим сценариям:
3.1. потрясти будильник раз 5 медленно.
3.2. потрясти будильник раз 10 быстро.
3.3. вариант 3.1.+3.2.
3.4. вариант 3.2.+3.1.
так вот, не понимаю как сделать случайное отключение по одному из сценариев(3.1...3.4).
подскажите плз :)
Пусть будильник перед срабатыванием "бросает кубик", например, с помощью http://arduino.ru/Reference/Random
класс! спасибо!
вопросы:
в значениях можно указать case(в котором прописать условия), я правильно понимаю?
таким образом, если указать 4 условия то будет мне щастье?
:)
в значениях можно указать case(в котором прописать условия), я правильно понимаю?
Сделайте будильник на колесиках с датчиком расстояния до препятствия и пусть он "время от времени" от вашей руки убегает в сторону. :)
(давайте на "ты"?)
fogary,
я так думаю - создать некий case с условиями(кол-во маханий, их частота), потом на них в коде ссылаться.
что б каждый раз не повторять условия.
как-то так.
...или туплю нещадно?
Arhat109-2, не, мысль! не спорю. )))))))))))))
тока не для меня - я простого не могу освоить :(
Где-то перед запуском будильника определяем, как на этот раз его остановить :
СПОСОБ_ОТКЛЮЧЕНИЯ = random(1,4);
Дальше ждем действий подопытного и реагируем соответственно
if (СПОСОБ_ОТКЛЮЧЕНИЯ == 1)
{ ждём "потрясти будильник раз 5 медленно" и отключаем будильник }
else if (СПОСОБ_ОТКЛЮЧЕНИЯ == 2)
else if (СПОСОБ_ОТКЛЮЧЕНИЯ == 3)
{ ждём "потрясти будильник раз 5 медленно, потрясти будильник раз 10 быстро" и отключаем будильник }
А Ф И Г Е Т Ь Н Е В С Т А Т Ь !
Araris, этожжжжж почти код готовый!
спасибо ОГРОМЕННОЕ!
Вы излишне восторженны, там до готового кода ещё охо-хо как далеко.
Где-то перед запуском будильника определяем, как на этот раз его остановить :
СПОСОБ_ОТКЛЮЧЕНИЯ = random(1,4);
иначе функция будет возвращать значения в диапазоне от 1 до 3.
Не забудьте добавить в setup() добавить вызов функции randomSeed(), как описано в статье (по ссылке выше).
Если верить документации, то правильно будет так:
иначе функция будет возвращать значения в диапазоне от 1 до 3.
Да, каюсь, там действительно написано
Параметры
Возвращаемое значение
Случайное число между min и max-1. (long)
И зачем рандом там. Чел может
1-потрясти будильник раз 10 быстро
2 - потрясти будильник раз 5 медленно.
3-потрясти будильник раз 10 быстро
4 - спокойно лечь спать дальше.
Убегающие будильники где-то в сети уже готовые видел, ежели вчё .. пошукайте. :)
fogary, Araris
спасибо вам!
почему фигня?
"редкостная" и "если", вопросов не вызывают =)
вот, накодил, только не компилируется.
long
Trema_delay; -> unsigned
long
Trema_delay;
millis -> millis()
добавил.
но ругается на ";" и скобки, начиная с 30 строки. видать синтаксис нарушен.
Уберите ";" в строке 27.
У Вас в программе три переменных с названием "count" (строки: 3, 21, 27), причем две из них в приделах одной функции. Вы присваиваете им значения, но нигде, в приведенной программе, не используете. Зачем Вы используете присвоение этой переменной в условии проверки (строка 27), то же не понятно. Если Вам действительно нужны три переменные, то лучше их назвать по разному, хотя бы "count", "count1", "count2", но лучше дать более осмысленные имена.
спасибо, убрал ";" из 27 и ещё несколько ошибок.
но увы :(
про переменные - нужна одна (счётчик срабатываний датчика положения Trema).
так понимаю, что по своей сути датчик та же кнопка, смотрю примеры работы с кнопкой(обработка кол-ва нажатий) но что-то не получается...
вот, решил пока упростить - только датчик, и только выключение звука.
всё хорошо, только звук не отключается :(
Очень даже отключается, в строке 16.
А потом тут же включается, в строке 12. При каждом проходе loop().
а как сделать что б он после отключения не включался?
или это будет происходить сигналом на включение будильника?
как-то так:
1. датчик разомкнут, будильник НЕ сработал.
2. датчик разомкнут, будильник сработал. тут уж надо трясти =)
3. т.к время срабатывания будильника прошло, то при выключении звук не включится при следующем проходе loop.
я правильно понимаю?
А где бомба будильник?)
Буду надеяться на вас)))
так вот, делаю ж =)
а как сделать что б он после отключения не включался?
или это будет происходить сигналом на включение будильника?
как-то так:
1. датчик разомкнут, будильник НЕ сработал.
2. датчик разомкнут, будильник сработал. тут уж надо трясти =)
3. т.к время срабатывания будильника прошло, то при выключении звук не включится при следующем проходе loop.
я правильно понимаю?
В приведённом выше скетче нет даже следов какого-либо будильника, поэтому конкретно говорить пока не о чем.
Позвольте дать совет : сделайте для начала просто будильник с пищалкой и кнопкой (благо их много в Интернетах описано), а потом уже оснащайте его бантами, рюшами и проч.
да, логично.
получается мои рассуждения верны?
сейчас изучаю как заменить в одном полезном скетче Ds3231 на DS1302.