вопросы по программированию
- Войдите на сайт для отправки комментариев
при замене проводки решил сделать закладные под будущий умный дом в виде релюшек в щитке, ардуины и километра витухи по всей квартире. для управления светом на основе найденного в инете примера выдал вот такой вот код, пока под управление обычными выключателями:
void setup() { pinMode(29, OUTPUT); // свет большая комната 1 pinMode(28, OUTPUT); // свет большая комната 2 pinMode(27, OUTPUT); // свет маленькая комната pinMode(26, OUTPUT); // свет корридор pinMode(25, OUTPUT); // свет уборная // реле на пине 24 зарезервированно под вытяжку pinMode(23, OUTPUT); // свет кухня pinMode(33, INPUT); // выключатель большая комната 1 pinMode(37, INPUT); // выключатель большая комната 2 pinMode(41, INPUT); // выключатель маленькая комната pinMode(45, INPUT); // выключатель корридор pinMode(49, INPUT); // выключатель уборная pinMode(53, INPUT); // выключатель кухня digitalWrite(33, HIGH); // подтягивающие резисторы digitalWrite(37, HIGH); digitalWrite(41, HIGH); digitalWrite(45, HIGH); digitalWrite(49, HIGH); digitalWrite(53, HIGH); } void loop() { digitalWrite(29, !digitalRead(33)); digitalWrite(28, !digitalRead(37)); digitalWrite(27, !digitalRead(41)); digitalWrite(26, !digitalRead(45)); digitalWrite(25, !digitalRead(49)); digitalWrite(23, !digitalRead(53)); }
я весьма далек от программирования , но похоже это и есть пресловутый говнокод. проблема в том, что у меня уже имеется езернет шилд и пара-тройка датчиков, и я не совсем представляю себе как их интегрировать в код. скажем, ежели у меня есть три готовых скетча, как соеденить их в один?
кроме того мне необходимо чтобы при долгом нажатии кнопочного выключателя уборной включались свет и, примерно через минуту, вытяжка, которая должна отключаться минут через пять после выключения света. опять же как это реализовать -- чортъ его знает.
еще вопрос по применению встроенных у ардуину подтягивающих резисторов, отчего-то многие не рекомендуют их использовать. у меня с ними все заработало с первого раза, но при тестовом включении чип на езернет шильде порядком нагрелся, возможно нагрелась и сама ардуина, темературу точно не скажу, но палец на чипе чувствовал себя отнюдь не комфортно. это нормально или нет ?
Это нормально.
"Убежав из дома, Алиса увидела под старой яблоней большого белого кролика, одетого в куртку и жилет. Достав из кармана часы, кролик торопливо скрылся в подозрительно темной норе. Набравшись смелости, Алиса шагнула вслед за ним... и попала в чудесный сказочный мир, где сбываются самые несбыточные фантазии. Чтобы попасть обратно домой, Алисе придется совершить путешествие через весь этот странный и причудливый мир, в котором ее поджидают совершенно невероятные приключения и совершенно фантастические существа..."
И еще.
Читайте. Первоисточники. Например учебники. Или форум. Керниган и Ритчи Вам о чем нибудь говорит?
И еще кто те многие кто не рекомендует?
p.s. сама ардуина не греется, видимо шилд бракованный
p.p.s. при представленном выше скетче отчего-то горит светодиод "L", хотя триннадцатый порт нигде и не упоминается.
В ардуино есть встроенные подтягивающие резисторы (pull-up) которые можно включить программно, но я не советую их использовать.
Плохо.
Хорошие имена и книжка полезная. Хотя и не про ардуино.
А ув. nestandart там не пишет почему?
касаемо книжек, мне и по моей профильной специальности читать времени нет, на читалке уже гигабайт различных интересных и полезных монографий скопился, куда уж там вашим книжкам с хорошими именами...
касаемо ув. nestandart-a, просмотрел тему про кнопки, он пишет что подтягивающие резисторы, во-первых, тянут токмо "вверх", кроме того они не наглядны для новичков, и вообще, он не претендует на звание истины в последней инстанции.
но все же за повальными рекомендациями не использовать встренные резисторы должна стоять какая-то об'ективная причина?
Причина одна - визуальный контроль. С програмными резисторами можно и позабыть подключить, а внешние сразу видно.
Причина одна - визуальный контроль. С програмными резисторами можно и позабыть подключить, а внешние сразу видно.
возвращаюсь к своим предыдущим вопросам, во-первых, как об'единить несколько готовых скетчей в один? особливо ежели один из скетчек постоен на if-ах, а второй как у меня.
во-вторых, как сделать так чтобы при коротком нажатии на кнопку включалось одно реле, а при длинном нажатии сначала включалось первое реле, через энное количество времени второе, которое бы отключалось через несколько минут после первого. задача усложняется тем, что первым реле кроме кнопки будет управлять еще датчик движения.
p.s. ежели вас не затруднит, посоветуйте еще адекватный эмулятор под линукс (ну или нормально запускающийся под вайном), а то ардуина уже сегодня должна занять свое место в щитке, а вторую для экспериментов покупать жаба душит.
вы б хотя бы выложили программы, которые собираетесь объединять, а то не понятно о чем речь
эмулятора нормального лично я не видел, а так сложно купить вторую плату за 300-500р? на фоне проложенного километра витухи эта сумма как-то теряется. и какой смысл от нее в щитке, если у вас программы еще нет? или можно такую фишку на нее навесить http://www.kvminfo.ru/catalog/514.html
Парни, красавци, давно так не ржал. Причём с самого начала темы - прям с говнокода ))))))))))))
volk0001 мне напоминает себя, такой же лентяюга как и я (без обид). Один хрен изучать придётся, никуда не денешься. volk0001, у Вас слишком много вопросов, чтоб их вот так щелчком решили форумчане и не одного, почти, примера.
Коды смешивайте в кучу так: всё что вне тела setup и loop, записываете вне тела setup и loop. Всё что в теле setup? запишите в тело setup. не не, дальше почти как подумали только можно упростить, чтоб не запутаться. Можно спрятать разные коды по разным, вновьобьявленным функциям а в теле loop просто к ним обращаться. Пример:
Хм.. Арда греется... А Вы релюшки напрямую к арде подключали?
.. А еще помимо "керниганаСричем" есть "труп страуса" ;)
Коды смешивайте в кучу так: всё что вне тела setup и loop, записываете вне тела setup и loop. Всё что в теле setup? запишите в тело setup. не не, дальше почти как подумали только можно упростить, чтоб не запутаться. Можно спрятать разные коды по разным, вновьобьявленным функциям а в теле loop просто к ним обращаться.
спасибо. а что кааемо назначению одной кнопке нескольких функций, скажем однократное нажатие -- функция 1, двухкратное нажатие -- функция 2 итд. перерыл раздел по программированию -- ничего не нашел.
Хм.. Арда греется... А Вы релюшки напрямую к арде подключали?
.. А еще помимо "керниганаСричем" есть "труп страуса" ;)
как выяснилось, грелась не ардуина, а бракованный езернет шилд. а что, есть какие-то нюансы подключения вот таких китайских релюшек?
Да Вы код выкладивайте, и спрашивайте что хотите с ним сделать.
рабочий код еще токмо предстоит писать, пока вполне хватает и представленного выше "говнокода". сейчас проясняю для себя неясные моменты, скажем с об'еденением нескольких скетчей в один вопросов больше нет, попробывал -- работает. но вот с назнаением одной кнопке нескольких функций я так и не разобрался, хотя прилежно курил мануалы.
бракованный езернет шилд.
у меня мой греется так, что палец может максимум сек 10 терпеть, а функции свои выполняет исправно
думаю может приклеить на него радиатор, тем более некоторые фирмы так и делают