Срабатывание пищалки при загорании одного из нескольких светодиодов
- Войдите на сайт для отправки комментариев
Здравствуйте!
Имею 32 светодиода, 16 кнопок, и один зуммер.
К каждой кнопке завязаны 2 светодиода - красный и желтый. При удерживании кнопки более определенного времени загорается красный светодиод, при отсутствии нажатий определенное аремя - загорается желтый. Если нажимать кнопку в пределах определенного интервала времени - то ни один светодиод не загорится.
И таких вот 16 независимых узлов.
Скетч я вроде бы написал - работает со светодиодами, а вот с зуммером - беда прямо....
При загорании любого из 32 светодиодов должна срабатывать пищалка.
Третьи сутки мучаюсь, и так и сяк пытаюсь и переменными и суммированием - не выходит.
Укажите направление пожалуйста!!!
PS с языком программирования знаком суток 5, изучал все с нуля, так что не ругайтесь.
Заранее благодарен.
Вы в курсе, что экстрасенсы выступают на канале ТНТ, а не тут?
ТНТ и ткаого уровня передачи мне не интересны, я обращаюсь к знающим людям, а не к экстрасенсам.
Чудак! Это был намек, что код не выложен. И выкладывай про правилам форума.
Здравствуйте!
Имею 32 светодиода, 16 кнопок, и один зуммер.
К каждой кнопке завязаны 2 светодиода - красный и желтый. При удерживании кнопки более определенного времени загорается красный светодиод, при отсутствии нажатий определенное аремя - загорается желтый. Если нажимать кнопку в пределах определенного интервала времени - то ни один светодиод не загорится.
И таких вот 16 независимых узлов.
Скетч я вроде бы написал - работает со светодиодами, а вот с зуммером - беда прямо....
При загорании любого из 32 светодиодов должна срабатывать пищалка.
Третьи сутки мучаюсь, и так и сяк пытаюсь и переменными и суммированием - не выходит.
Укажите направление пожалуйста!!!
PS с языком программирования знаком суток 5, изучал все с нуля, так что не ругайтесь.
Согласно вашей логике при отсутствии нажатия определенное время должны гореть 16 желтых св-диодов? Решите вопрос на аппаратном уровне, объедините св-диоды в логическое ИЛИ и выход подайте на пищалку
ЗЫ за знакомство с языком я отсидел реальных двое суток :)
ОК. Сейчас подробно обрисую ситуацию и выложу код программы, который имею.
Попробую более подробно описать ситуацию...
Я фермер, занимаюсь выращиванием зерновых культур, одной из таковых является хорошо знакомая всем пшеница. Данная культура высевается зерновыми сеялками. Обрисую весь процесс: семена засыпаются в бункер, через сужение они пападают в высевающий аппарат, цель которого дозировтаь норму семян, далее семена через воронку попадают в семяпровод - это условно круглый шланг по которому сыпятся семена для дальнейшей заделки в почву. Бункер большой и один, а к нему по ширине подсоединено 16 высевающих аппаратов. Выкладываю схематическое и фактические изображения сеялки:
Во времена СССР во время посева на сеялке находился сеяльщик, который визуально следил за процессом работы сеялки. Семена в сеялке в виду многих причин имеют свойство образовывать заторы, они бывают либо в бункере перед попаданием в высевающий аппарат - там сужение, либов в семяпроводе. сеялщик следил за данными заторами и устранял их. Но в наше время мало кто хочет стоять в пыли и грязи, поэтому на смену сеяльщикам пришла электроника - Система контроля высева, которая стоит приличных денег, да и не на все сеялки она подойдет. Так вот и загорялся я идеей при помощи ардуино зделать простую систему контроля высева.
Аппаратная часть состоит из ардуино Мега, по числу высевающих аппаратов - 16 оптических датчиков, 16 красных светодиодов, 16 желтых светодиодов и одной пищалки. Оптический датчик крепится на воронке, в месте указанном на схеме и фиксирует поток семян. Эксперимент на практике я проводил с помошью датчика и реле - датчик реагирует на поток семян и очень часто моргает, так как за секунду через зону его чувствительности проходит примерно 60-70 семян.
Алгоритм следующий:
Если затор образовался в семяпроводе, то семена наполняют его и закрывают датчик - датчик подает непрерывный сигнал.Если с оптического датчика высевающего аппарата "А" поступает сигнал, то засекаем время непрерывного сигнала, если оно превышает уставовленный параметр, то выводим сигнал на красный светодиод данного высевающего аппарата и общий зуммер.
Если затор образовался в бункере перед входом в высевающий аппарат, то зерно перестает сыпатся в воронку через датчик и тот не подает ни каких сигналов. Если с оптического датчика высевающего аппарата "А" не поступает сишнал, то засекаем время отсутствия сигнала, если оно превышает установленный параметр, то выодим сигнал на желтый светодиод данного высевающего аппарата и общий зуммер.
Другими словами сигнал должен иметь прерывание с частотой в заданных рамках
и такой алгоритм на каждый высевающий аппарат, так как они полностью независимы. А вот Зуммер один.
Написать скетч по диодам у меня получилось, в эмулятрое Virtual Breadboard все работает как часы, а вот с общим зуммером беда прям. то в бесконечный цикл впадает, то не гаснет, то не загорается, и переменные вводил и функиции.
Выложил код, на 4 датчика. Посоветуйте пожалуйста, как мне заставить работать зуммер, можно-ли оптимизировать код?
Спасибо.
Добавь переменную, которой присваивай, при возникновении необходимости пищать, текущее время + время пищания пищалки и включай пищалку. В конце цикла сравнивай запомненное время и текущее. Если текущее больше, выключай пищалку.
С предыдущим оратором согласен. Оптимизировать можно - массивами и циклами. Мега тут не нужна, всё влезет во что угодно, даже в Mini, только нужно слегонца "увеличить" аппаратными решениями количество выводов под индикаторы.
При загорании любого из 32 светодиодов должна срабатывать пищалка.
Ну, так и делайте. Выделите "загорание" в отдельную фнукцию с однм параметром - номер пина светодиода. Везде вместо digitalWrite(NNN, HIGH); вызывайте своб функцию. А уж внутри этой функции включайте пищалку. И ничего ни с каким заморочками мудрить не надо.
Вроде получилось. Сделал просто. Присвоил дополнительные переменные и в случае загорания светодиода присваивал им 1, потом суммировал их и если сумма больше 1 то запускал пищалку
Это даже не через жопу гланды, это через разрез на пятке...
Я знаком с языком программирования 5 дней, и то вечерами сижу. Мне некогда углубляться и эксперементировать, мне важен был результат, так как это не хобби и времени у меня на это нет. Результата я добился и сэкономил 150 000 - именно столько стоит система контроля высева у диллера. Вот такие пирожки
Уважаю. Теперь предстоит заставить работать это в полевых условиях.
Уважаю. Теперь предстоит заставить работать это в полевых условиях.
Попрошу без оскорблений, умный человек. Я уже ни у кого ни чего не прошу. Сам решил свой вопрос.
По ходу здесь в большинстве своем умники, которые чисто поржать да постебаться над другими собрались.
Когда меня просят о помощи не владеющие знанием в моем направлении люди, я с удовольствием помогаю, а не стебаюсь и не умничаю. Даю дельные конкретные советы и указываю аргументированно на конкретные недостатки.
Хотя что я.... Вам 18 хоть стукнуло, ведь стиль речи определяет возрастные рамки не выше 16. Взрослые и серьезные люди так не разговаривают.
А вы не знаете специфики данной области, как я вижу. Вот вы перед тем, как дельный совет дать, выезжаете на чужое поле, засеваете-растите и жнете? В программировании именно так все и происходит - для того, чтобы дать дельный совет - нужно все самому сначала сделать и смоделировать, иначе это не совет будет, а посыл... в библиотеку.
Видите , зерновые люди начали выращивать давно. Давно начали вводить механизацию в посев. Опять же сеялки тоже появились не вчера. И убрать человека с сеялки тоже не вчера пытались. Опять же электроника, появилась не вчера. И опять же она тоже развивалась. А теперь для дедушки-ага, почему ему приходится заниматься этим. Видно из всего человечества только дедушка остался самым мудрым, но все же впал в МАРАЗМ. Потому что если бы МАРАЗМ не съел его мозг, то давно понял, что в зерне есть пыль. И эта пыль не только делает работу на сеялке неприятной, но и забивает все датчики. А вашу электронику покроет такой пылью, что заскопки Трои станут обычной рутиной.
Добрый день, подскажите тип оптического датчика который вы использовали. (т.к. такая проблема есть у знакомых, на старых сеялках при развороте было видно сеет или не сеет сошник, а на новой все закрыто и видно только через несколько недель в поле по всходам ))) и было такое что наверно с утра забился один сошник и только вечером обнаружили)
Скажите пожалуйста а зачем нужно 32 светодиода? Я так понимаю что если любой из них загорится, то нужно останавливаться и устранять затор. Если это так то хватит и двух диодов - красного и желтого или нужно знать конкретный бункер?
он все правилно делает, надо к краю доехать и что бы система сама показала какой сошник забит
32 светодиода необходимы, для того чтобы видеть какой именно выесевающий аппарат не работает
16 высевающих аппаратов, по 2 светодиода на каждый высевающий - красный и желтый. Красный если забился семяпровод и желтый - если отсутствует подача семян. При срабатывании механизатор будет знать, с каким высевающим и что случилось, в итоге экономия времни. А то загориться один свеодиод и пойди гадай, что да где сработало.
Система должна чработать через несколько секунд или минут после закупорки зерна, как настроишь
Скетч написать это плевая задача. Но реальность она не только в написании скетча. Узкий вопрос сеялок это оптическая система, которая банально забиватся пылью. Так что датчик помещается в пылезащищеный корпус. Но если сделать защитное стекло, то через некоторое время оно покроется пылью. А если сделать длиную трубку, то поработает дольше, но через некоторое время забъется грязью и перестанет показвать. Подведем итог: убирая человека с сеялки мы создаем рабочее место для чистильщика и сменщика оптических датчиков на сеялке. И у этого человека должна быть квалификация повыше и денег возьмет побольше. Хотя может обслуживать больше сеялок.
Я знаю что это будет не легко, поверте мне и не такие проблемы решали. Бюджет 3 тысячи, так что стоит попробывать. Вся аппаратная чать будет находится в тракторе в герметичном корпусе с отдельным преобразователем напряжения, а в тракторе чисто и кондеры стоят- не как раньше было. На сеялке будут стоять только датчики, а именное сами передатчи и приемник сигнала. Да возможно запыление датчиков, но пару раз в день пробежаться и тряпочкой протереть, думаю минуты 3-5 займет. Все равно заправки семенами и удобрениями раз 2 часа. В общем я понимаю что сразу все гладко не пойдет, будут доработки, переделки, главное желание...
Думаю овчинка выделки стоит, так как проблема с пропусками серьезная, от этого потери урожая большие.
типично русский ГиП. Смиялсо.
По теме запыления. Датчики хорошо встают там, где будет непосредственный контакт зерна и преимников-передатчиков сигнала, а зерно хороший шлифовачный материал. По маршруту хода зерна всегда идеально чисто, грязь там, где оно не текет. Вот от этого и будем плясать....
Писсимист ищет проблему, а оптимист - решение...
Оптический обычный колхозный китайский.
В инете полно профессиональных датчиков для различного рода Систем контроля высева
Вот так выглядят датчики, даже на мой взгяд далекий от с/х http://www.dnepragro.com/datchik-kontrolya-vyseva/
ты шо, Винни, это дорахо...
ты шо, Винни, это дорахо...
Типичный датчик на СКВ, крепится на семяпровод, семяпроводы полиэтиленовые и пропускают сигнал.
Но у меня другая сеялка в воронку сыпятся и с одного края семена, с другого удобрения, в семяпроводе они уже сыпятся вместе и система не сработает в случае отказа по семенам, так как удобрения будут давать сигнал. На импортных сеялках система другая.
ты шо, Винни, это дорахо...
Я и не уверждаю что все получится на 100%%, но потерь ни каких...
PS а посмотри пожалуйста, где твой ноут и телефон собраны
Вот посмотрите на два датчика - если подойдет поаналогии можно размножить
[quote=vosara]
Вот посмотрите на два датчика - если подойдет поаналогии можно размножить
Спасибо БОЛЬШОЕ, обязательно попробую
Результата я добился и сэкономил 150 000 - именно столько стоит система контроля высева у диллера. Вот такие пирожки
Хреновые пирожки. Можно было не лохматить бабушку, и сэкономить 100 тысяч, заказав за 50 (максимум) нормальное качественное исполнение. Впрочем, раз вы довольны - ну и ладушки.
типично русский ГиП. Смиялсо.
Во, и я о том же подумал. На все руки мастера эти гусские, только почему-то в стране папуасия.
типично русский ГиП. Смиялсо.
Во, и я о том же подумал. На все руки мастера эти гусские, только почему-то в стране папуасия.
Еще раз повторяю, для моей марки сеялки Системы контроля высева не производятся, так как она механическая и высевающий аппарат комбинирован с туковым аппаратом - т.е. параллельным высевом удобрений.
Все импортные и отечественные посевные комплексы нового поколения пневматические с раздельными бункерами, там система высева другая - туда и идут все системы контроля высева. На мои площади такие комплексы не нужны.
По поводу цены. Выкладываю фото Системы контроля высева под названием ДаринаУ, для пропашных сеялок (посев семечек, кукурузы), которую тоже по идее надо покупать. Она стоит 50 000!!! Вы посмотрите, разве это может стоить 50 000??? импортные идут от 130 000, самая дешевая Украинская Нива за 47 и то на пропашную сеялку. Я более чес уверен, что там ардуино внутри сидит.
На Зерновые сеялки с 16 высевающими аппаратами как у меня система контроля высева Скиф стоит примерно 147 тысяч. Их тоже модификаций полно. Так что приходится кому в попуасии, а кому на Родине рассматривать все варианты. Тем более сейчас зима, сижу дома, время до всены есть, почему бы не заняться.
Предполагаю код из 10 поста крайний?
Просто перечислю, а там сам смотри. Вообще и тебе, и другим кто смотрит твой код будет проще
1. Пины объявляй через define
2. Структурируй, чтообы глазу было за что зацепится, проще будет читать код
3. Однотипные и структурно одинаковые переменные можно объявлять группами
Насколько терпения хватило поправил))
Далее у тебя вроде абсолютно одинаковые куски кода в количестве 4 шт. Тогда пины и переменные объявить в массивы, у каждого типа свой. И цикл на 4 повторения, и внутри будет твой одинаковый код
самая дешевая Украинская Нива за 47
Это где такие цены? В Украине она стоит 8-8,5 тыс. грн. ( 16-17 тышшч деревянными). Может бизнес замутить, продавать их вам, скажем, по 30 ?
Я фигею от таких простыней...
Что, никто не слышал про массивы и циклы?
Применение классов в простейшем случае приводит к увеличению объема текста исходников. Снижение трудозатрат происходит лишь при эффективном использовании наследования и полиформизма.
А вот применение средств структурного программирования приводит к уменьшению трудозатрат практически всегда. Да и поддерживается в любом из современных ЯП в отличие от ООП.
Человек целых 5 ( а, нет, уже 6) дней в С крутица, а вы набросились, тролли. На 9-й день он до классов дайдеть.
самая дешевая Украинская Нива за 47
Это где такие цены? В Украине она стоит 8-8,5 тыс. грн. ( 16-17 тышшч деревянными). Может бизнес замутить, продавать их вам, скажем, по 30 ?
Ну так люди и мутят.Только не все так просто. Потенциальный покупатель в большинстве своем у кого попало брать не будет, только у диллера завода, имеющего сопровождение, и предоставляющего гарантию. Данный товар - не пирожки. Берут сезонно и штучно, так что оборот капиталла долгий. В итоге наценка идет порядка 100%. Ну и за 8,5 тыс гривен пологаю минимальная комплектация идет, там вроде есть без датчика скорости варианты и с датчиком скорости, который считает площадь.
jeka_tm Спасибо!!!
Вечером обязательно попробую!!!!
Вот тоже самое только по другому - на 3 датчика. Пробуйте
vosara, добавьте третий массив для пинов датчиков, уберите все define кроме buser (buzzer?) и выполните собственные рекомендации в setup и loop.
Пусть человек сначала убедится что ему подходит, а потом он сам или поможем оптимизировать.
В сетуп я бы вообще DDR поставил, и вместо диодов можно использовать дисплей - хотябы 16х2. в первой строчке 16 брусков -желтые а вторая строчка красные, сколько пинов можно с экономить!!
А вот так начинается проектирование через классы. И опять вылезла проблема, на которую ТС забил. Вкл зумера есть. А вот вык кнопкой нет.
ПС: Почему я рекомендую писать через классы и пользуясь приемами ООП. Так легче выявлять и устранять косяки ТЗ. Но вот освоить эти навыки надо затратить много мозговых усилий. Что тяжко.