Официальный сайт компании Arduino по адресу arduino.cc
Нужна помощь добрых людей-программистов
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Сб, 22/10/2016 - 18:00
Доброго времени суток, уважаемые программисты.
Решил я вначале создать элементарный I2C термометр, который при достижении опеределлной температуры включает вентилятор, потом захотелось усложнить проект и поставить на это всё еще и сигнализацию. Подключил к arduino обычный геркон и звуковой динамик и при открытии двери должен был идти звук и надпись на дисплее менялась на Alert, а при закрытии двери, опять бы показывалась температура. Но, к сожалению всё выглядит немного не так и чуточку обидненько.
А вот собственно и сам код
Усложнили проект. Вот вам результат. Поймите чем сложнее код , тем сложнее вылавливать ошибки. То есть ваше умение программировать должно перейти от количественного в качественное, или ... погрязнуть под слоем кода и ошибок в нем.
Просто нужно в одном устройстве много всего))
Я всегда использую такую структуру, что в сложных, что в простых конструкциях. Простые почему-то усложняются.
ПС: А там в конце как будут выглядить программы в этом стиле.http://arduino.ru/forum/programmirovanie/takhometr-na-arduino-pro-mini-ot-datchika-kholla-na-lcd1602i2c
qwone, в твоем коде в строках 21, 28, 35 заложены ошибки, и ты их с завидной регулярностью всем новичкам предлагаешь. Может тебе сначала подучить матчасть.....
И в чем ошибки?
Почитай про переполнение, много раз обсуждалось, вот например:
http://arduino.ru/forum/programmirovanie/arduino-perepolnenie-millis-i-m...
Это из бредовых фантазий "теоретиков программистов". Коллапс 2000 наблюдал? Переход в новое тысячелетие. Где крушение человечества, конец света и прочее. Много вони и все. Так вот у меня раз в 48дней длительностью в 1000(200,100) когда в future1,future2,future3 переполнится и станет почти нулем цикл loop() будет работать без сдержки , пока millis() не станет тоже 0. А дальше все нормализуется и ничего страшного не произойдет. Но это такая малость, если можно засунуть в ардуину кучу функций и подключить кучу устройств практически без конфликтно.
Ты к себе здесь на Вы обращаешься, да?
Коллапс 2000 наблюдал?
Не напоминай. Больше года работы отдела и все равно ряд клиентов огреб проблемы, хоть и по собственной невнимательности. Особый кайф был в новогоднюю ночь отвечать на звонки с Дальнего Востока.
Я с тех пор COBOL возненавидел и сейчас залажу в него только в обмен на отгулы.
Не напоминай.
А многие тогда столько бабла на лоховских страхах подняли.
Может к моему вопросу немного вернемся?))
Может к моему вопросу немного вернемся?))
А чего к нему возвращаться? Ответ не нужен даже Вам самому, а нам-то он зачем?
Если бы Вам нужен был ответ, то вместо "всё выглядит немного не так и чуточку обидненько" Вы бы написали толком в чём Ваша проблема. Смотреть кучу картинок и видео и догадываться по картинкам и видео о Вашей проблеме мне лень.
Вам нужна помощь - объясните в чём проблема. Не хотите объяснять - значит помощь не нужна.
Может к моему вопросу немного вернемся?))
Ну минимум я могу переписать ваш код под себя , а потом всовывать дополнительные устройства. Но вам же не это надо.
Когда открывается дверь необходимо снять сигнализацию и чтобы опять начала показываться температура.
Помогите с программным кодом уж...
Лови. Погоняй его.
qwone, учи матчасть, прежде чем раздавать новичкам код с багами. Они же потом придут с вопросом "Почему работает х..во?"
qwone, учи матчасть, прежде чем раздавать новичкам код с багами. Они же потом придут с вопросом "Почему работает х..во?"
Что каждому Моцарту по Сольери. А вы не набивайтесь мне в Сольери. Я все же не Моцарт. А если вы считаете себя правым, то нарисуйте ТС свой код. А то получается , мертвые не потеют ... (простите) бездельники не ошибаются, потому что ничего не делают. Но советов от бездельников можно получить море.
Ошибка в 110 строке((
ПС: Вам нужна кнопка отключения сигнализации. Дверь открылась, включилась сигнализация, нажали на кнопку, сигнализация отключилась. А то в этом варианте дверь открылась - сигнализация дверь закрылась сигнализация отключилась.
Конечно не Моцарт, и даже не дилетант, дилетанты хотя бы прислушиваются к советам, ты лошара.
Тебе же русским языком сказали так нельзя:
Это ведет к неминуемой ошибке, пусть через 50 дней, но к ошибке.
Но ты ведь даже не способен этого понять.
А если так:
Не напоминай.
А многие тогда столько бабла на лоховских страхах подняли.
Там реально проблемы были. Код, который писался еще на древних EC-ках, начиная с 60-х годов прошлого века. Сплошняком по одну байту на год в двоично-десятичном формате. Сам то формат хранения мы передлывали только в редких случаях. Например, когда должен храниться год ввода основного средства в эксплуатацию. ЛЭП могли и в 20-х годах в эксплуатацию ввести и до сих пор только ремонтировать и модернизировать. Раньше 1917 только не встречалось. Остальные правки были только для сравнения дат и их сортировки, чтобы 00 было больше 99.
А, кто мешает сделать Serial и тестировать программу.
Там реально проблемы были.
Сколько было реальных проблем, и сколько напуганных лохов? Несравнимо.
Это ведет к неминуемой ошибке, пусть через 50 дней, но к ошибке.
Чоэта? А тип future1 указан же unsigned long. Значит в нем есть переполнение, так же как в millis(), значит можно складывать-умножать сколько влезет. Не? Чем тогда лучше код
?
Не ну так. если вы настаиваете что мат. операции над меткой времени из миллиса это ошибка.
А почитать по ссылке выше или поискать на форуме про переполнение....? Религия не позволяет или интеллект?
bboykazbek
Вы надпись "ALERT" выводите с 6 позиции, а значение температуры с 8 позиции. Вот у Вас одно на другое и наползает. При выводе "ALERT" Вы экран очищаете, по этому надписи
которые выводятся один раз в setup() пропадают.
Фигурные скобки в строках 106 и 119 ни к чему не привязаны, их можно убрать.