Ви не увійшли.
доброго дня допоможіть з кнопкою дайте пораду я не програміст тільки почав займатись програмуванням на ардуїно ось скеч
 #include <SPI.h>           // Ethernet shield
#include <Ethernet.h>      // Ethernet shield
#include <PubSubClient.h>  // MQTT 
#define light1_pin 2 
#define light2_pin 4 
boolean butt_flag = 0; // контрольює стан флашка 
boolean butt;
boolean led_flag = 0;
//
//
byte mac[]    = { 0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED };
byte server[] = { 192, 168, 1, 11 };
byte ip[]     = { 192, 168, 1, 12 };
void callback(char* topic, byte* payload, unsigned int length);
EthernetClient ethClient;
PubSubClient client(server, 1883, callback, ethClient);
unsigned long lastMqtt = 0;
void callback(char* topic, byte* payload, unsigned int length) {
  payload[length] = '\0';
  Serial.print(topic);
  Serial.print("  ");
  String strTopic = String(topic);
  String strPayload = String((char*)payload);
  Serial.println(strPayload);
  if (strTopic == "/myhome/in/Kitchen_light1") {
    if (strPayload == "OFF")     digitalWrite(light1_pin, LOW);
    else if (strPayload == "ON") digitalWrite(light1_pin, HIGH);
  } 
  else if (strTopic == "/myhome/in/Kitchen_light2") {
    if (strPayload == "OFF") digitalWrite(light2_pin, LOW);
    else if (strPayload == "ON") digitalWrite(light2_pin, HIGH);
  } 
}
void setup() {
  pinMode(A5, INPUT_PULLUP );
  Serial.begin(9600);
  Serial.println("start");
  pinMode(light1_pin, OUTPUT); 
  digitalWrite(light1_pin, LOW);
  pinMode(light2_pin, OUTPUT);
  digitalWrite(light2_pin, LOW);
  Ethernet.begin(mac, ip);
  if (client.connect("myhome-kitchen")) {
    client.publish("/myhome/out/Kitchen_light1", "OFF");
    client.publish("/myhome/out/Kitchen_light2", "OFF");
    client.subscribe("/myhome/in/#");
  }
  
}
void loop() {
  if (lastMqtt > millis()) lastMqtt = 0;
  client.loop();
  // здесь какой-то другой код по уравлению светом, например, с кнопок или ещё как 
  
  if (millis() > (lastMqtt + 60000)) {
    if (!client.connected()) {
      if (client.connect("myhome-kitchen")) client.subscribe("/myhome/in/#");
    } 
    if (client.connected()) { 
      if (digitalRead(light1_pin)) client.publish("/myhome/out/Kitchen_light1", "ON");
      else client.publish("/myhome/out/Kitchen_light1", "OFF");
      if (digitalRead(light2_pin)) client.publish("/myhome/out/Kitchen_light2", "ON");
      else client.publish("/myhome/out/Kitchen_light2", "OFF");
    }    
    lastMqtt = millis();
  }
   butt = !digitalRead(A5);
  
  if(butt == 1 && butt_flag == 0){
    butt_flag = 1;
     led_flag = !led_flag;
     digitalWrite(2,led_flag);
  pinMode(light1_pin, LOW); 
  digitalWrite(light1_pin, OUTPUT);
    
    }
  if(butt == 0 && butt_flag == 1){
    butt_flag = 0;
      pinMode(light1_pin, OUTPUT); 
     digitalWrite(light1_pin, LOW);
}
}
   
неможу догнати з моїм рівнем знань програмуваня чому не працює кнопка має вкльючати і виключати реле ДЯКУЮ ЗА ДОПОМОГУ
Остання редакція stels (2018-02-28 10:51:33)
Неактивний
ув. stels
надеюсь языкового барьера не возникнет? 
 
ужасно неудобно на форуме сделан "вставка кода" много минусов- неудобно читать, много времени на проверку...
Ладно, по сути вопроса:
Если честно то такой способ для совсем новичка немного странный 
 
Для начала просто бы поработать с кнопкой научиться использовать разные методы.
В самом коде немного не ясно: butt_flag = 0; когда butt_flag есть переменная boolean и к ней привычно два состояние либо false либо true. Хотя я далеко не умнила ниепичесский и могу неправильно думать. дальше pinMode(light1_pin, OUTPUT); в loop тоже странновато, хотя ничего особо криминального нету 
  Вообще в такой ситуации очень полезно сделать вывод на порт и смотреть за каждой переменно как она меняется, это действие очень сильно и быстро подтолкнет вас на правильный путь
вот попробуйте для начала:
int LEDpin = 5;       // светодиод подключен к выводу 5
int switchPin = 13;   // ключ подключен к выводу 13, другой вывод подключен к земле
boolean running = false;
void setup()
{
  pinMode(LEDpin, OUTPUT);
  pinMode(switchPin, INPUT);
  digitalWrite(switchPin, HIGH);      // включить подтягивающий резистор тоисть при нормальном раскладе у вас HIGH это выкл
}
void loop()
{
  if (digitalRead(switchPin) == LOW)
  {  // ключ нажат - вывод подтянут к высокому уровню сигнала
    delay(100);                        // задержка для устранения дребезга контактов ключа
    running = !running;                // инвертирование переменной running
    digitalWrite(LEDpin, running)      // индикация светодиодом
  }
}
Неактивний
вот вам заготовка для отладки: 
подставляете переменную (любую) и следите за ее изменениями 
////////////для отладки на порт
uint32_t PortPreviosMil = 0;
void setup(){
  Serial.begin(9600);
}
void loop(){
/////Отладка на порт
 if (millis() - PortPreviosMil > 100) //вместо 100 любой интервал на ваш вкус
 {
  PortPreviosMil = millis();
  Serial.println(любая переменная);
  }
}
Неактивний
это кому?
Это ТС-ру.
Но и тем, кто пытается на такое отвечать-подсказывать, кто не понимает что такое не лечится, что такие подсказки только продляют агонию... - тоже не лишне задуматься...
Неактивний
земляк, уж больно ты серчавый 
 
- смотри в сторону того как будто ты отвечаешь на подобные вопросы но не для ТС. Другой зайдет, прочтет и намотает на ус, пойдет на пользу. Ну а что конкретно ТС то если ему не дойдет то это его проблемы. Единственная реальная проблема это 
долб..ебс..кие темы ! форум переваливает в очередную помойку, потому что на тему "помогите чайнику.."  даже открывать не охота, хрен знает чего там ТС надобно, мож просто на душе неспокойно, попиз...еть охота. это я к тому что в теме надо указывать причину ее создания, чтоб второй такой же "мытець" не завел зеркало с такой же точно проблемой. ![]()
Неактивний
любой форум всегда в какой то мере помойка.
на него всегда будут приходить за помощью с дебильными вопросами.
на него всегда будут приходить за помощью с толковыми вопросами.
на нём всегда будут толковые или глупые ответы или пожелания.
на нём всегда будут люди, готовые кому то помочь и поделиться опытом и знаниями.
на нём всегда будут умники, постоянно демонстрирующие своё превосходство и забивающими форум нафиг никому не нужными рассуждениями, но никогда никому не помогающими.
первые и вторые по сути ничем не отличаются. их посты обычно проходят мимо и на них не отвечают.
есть и вообще уникальная кагорта, которая лазит по ардуиновским форумам и с упоением рассказывает какая ардуино фигня , какая у неё иде отстой. только не понятно - какого они сюда приходят, видно с пиковских и стмовских выгнали))))
Неактивний
любой форум всегда в какой то мере помойка.
Во-первых, не любой форум помойка ... а почти любой форум помойка, 99% форумов - помойка.
Так было более-менее всегда, но особенно, в разы, во много раз это стало выявляться последние года 3-4. И это индикатор того, что форум как форма организации общения - умерла. Её вытеснили социальные сети, куда ушёл тасоваться молодняк, а по форумам остались доживать старые пердуны пенсионеры ... что, как ни странно и на удивление, демонстрируют все форумы Arduino. А профессиональные сообщества по интересам, по новым языкам программирования, по корпоративной принадлежности и т.д. - поуходили в Slack, Telegram и Viber. Форумам - конец, и это объективно обусловленный процесс, как только вымрут естественным путём населяющие их старпёры - последние форумы позакрываются. Подробней об объективных прицинах обречённости форумов, кому станет интересно, почитайте здесь: форумы дистрибутивов Linux.
Во вторых, лет 15-20 последних идёт настолько бурный процесс деградации публики, хоть каким-то концом принадлежащей к IT ... а больше всего из области программирования, что IT специалисты в большинстве своём, как человечий материал, превращаются из элиты общества, в отстой общества, в маргиналов. По верхам глянь - будто лоск и холёность, а глубже рассмотри - гниль и срань. Это тоже объективный процесс и на то есть мощные причины. Не буду распространяться, кому любопытно, почитайте здесь: почему IT специалисты - это худшая часть социума?
Но с Arduino - это особая песня! Здесь гыдотность на всех форумах такая, что зашкаливает за любые красные линии. Это в-третьих... Возможно это связано (по сравнению с другими программистско-электронными ресурсами) с высокой доступностью и очень низким порогом вхождения в тему. И наплыв в тему самоделкиных-радиолюбителей, по-быстрому наловчившихся пальцы тыкать или паяльники, и предлагающих услуги в надежде срубить бабла "с говна на 3 копейки".
Неактивний
есть и вообще уникальная кагорта, которая лазит по ардуиновским форумам и с упоением рассказывает какая ардуино фигня , какая у неё иде отстой. только не понятно - какого они сюда приходят, видно с пиковских и стмовских выгнали))))
Ну так вы возьмите и напишите, тему объективного сравнения Arduino с другими изделиями ... и тех областей где его разумно применять.
1. Arduino, во многих случаях применения, действительно "фигня", в сравнении, например, с соизмеримым по стоимости Raspberry Pi, Galileo Gen2, PINE A64, BeagleBone Black, Orange Pi (я специально назвал многие, потому что "имя им легион" и появляются и будут всё новые и новые) ... такие вот всякие (похоже? 
 ):
 
И для многих применений Arduino "фигня" вовсе не из-за производительности процессора, потому что и в идеологии Arduino и в совместимости с Arduino IDE появляются такие вот:
Но Arduino отличает философия работы, то что работает это как программируемый логический контроллер, PLC, массово используемые в промышленных АСУ ТП. И это годится для целей управления, но не годится для многих других применений универсальных процессоров.
2. И нигде толком ясно не обозначено области применения, где целесообразно использовать Arduino, а где нет - вот и про это вы можете написать в такой теме. Как мне кажется (IMHO), Arduino можно использовать только в областях:
- начальное обучение ... ну, тут всё понятно;
- макетирование устройств, быстрая отработка решений;
- единичные экземпляры поделок для себя, на уровне радиолюбительских конструкций;
- простейший способ приделать руки-ноги с мощному десктопному компьютеру, особенно используя попутно такой проект как Processing (от которого, собственно, и произошли Arduino и Arduino IDE);
И в этих применениях он замечательно хорош.
Но Arduino совершенно бессмысленный и неприменим (опять же IMHO) для:
- тиражных изделий ... когда таких изделий больше уже 2-3 экземпляров;
- изделий промышленного применения - из-за чудовищно низкой надёжности и живучести того, что построено на Arduino;
Вот вы возьмите и напишите, и внесите ясность и объективность ... вместо того, чтобы переводить и пересказывать хотелки и популяризирующие статьи, написанные итальянскими студентами ещё с 2005 года, когда они изобретали Arduino...
Неактивний
Olej, вот вы как раз и относитесь к последней кагорте)))
и что , интересно, вас тогда сюда привело, как впрочем и на другие ардуиновские форумы?
учить жизни и читать никому не нужные лекции - так это никому не надо и не интересно.
то ущербность дуни, то какой фиговый виндоус - везде вы пишете один и тот же бред.
здесь общаются те, кому ардуина с её косяками и костылями интересна, кто с ней возится и от этого кайфует.
раз вы на другом уровне знаний и интересов в программировании то вполне логично вам общаться с людьми на других профильных ресурсах.
Неактивний
вот вы как раз и относитесь к последней кагорте)))
Я не отношусь ни к какой вашей кОгорте (возьмите "Букварь" 
 )
Я за свой трудовой стаж профессиональной деятельности в IT работал а). 8-ю семействами, системами команд процессоров, б). 7-ю разными операционными системами и в). 23-ю языками программирования, на которых реально писал код ... и иногда обучал этому коллег.
Поэтому я просто могу сравнивать что и куда годится.
А всякая вещь годится для одного, и совершенно непригодна для другого ... это совершенно естественно.
Меня лично Arduino интересует только как инструмент быстрого и простого в использовании интерфейса стандартного компьютера под управлением Linux к внешнему миру (это одно из удачных применений, которые я называл выше).
P.S. А вы то сами? Вы считаете Arduino "серебряной пулей" на все случаи жизни? Который скоро вытеснит с рынка IBM PC, Linux, Android ... и все эти другие малопонятные глупости? ![]()
Неактивний
Я уже вам ответил, но уточню конкретно на обвинения...
и что , интересно, вас тогда сюда привело, как впрочем и на другие ардуиновские форумы?
Меня интересуют некоторые тонкие детали, связанные с работой Arduino именно в режиме как PLC (что "подстраивает" ему Arduino IDE) + некоторые дополнительные возможности программирования AVR-процессора, вполне доступные и в Arduino, но ни словом не упомненные во всех описаниях и руководствах Arduino "для пЫАнЭров".
Вам о чём-нибудь это говорит: sprintf(), printf(), <<, template<> ...
Но если и не говорит, то не печальтесь сильно... - оно вам и не надо. 
 
учить жизни и читать никому не нужные лекции - так это никому не надо и не интересно.
Попутно, выясняя себе интересное, показываю и подсказываю кой-кому то, что мне известно и понятно. Потом многие из тех, кому помогаю - благодарят.
А то, что вам персонально оно "никому не нужные лекции" - так ... "не в коня корм" 
 , оно вам непонятно зачем и не нужно... 
Так: закрыл рот и пошёл. ![]()
Неактивний
Olej, вы не только нудный, так ещё и злобный)))))
здесь никого не интересует с чем вы работали и что умеете.
здесь люди занимаются работой с мк в среде ардуиновской, мигают светиками и крутят моторчики.
кто то ваяет что то более серьёзное.
если кто то перерос, то спокойно идёт во всякие авр, малинки-шмалинки и прочее, читает книжки и учится.
но большинству здесь это нафиг не нужно)))
Неактивний
здесь никого не интересует с чем вы работали и что умеете.
Естественно.
Да я и не собираюсь перед вами бисер метать.
Я просто рассказал для того, что могу сравнивать, в отличие от вас, для чего эта Arduino годится, а для чего - никак.
И там куда оно годится - оно очень даже ничего. 
если кто то перерос, то спокойно идёт во всякие авр, малинки-шмалинки и прочее, читает книжки и учится.
но большинству здесь это нафиг не нужно)))
Вы не говорите за большинство.
Вы говорите за себя.
Вот так: мне это "нафиг не нужно " - "читать книжки и учится".
Что? Так и собираетесь идиотом всю жизнь прожит? ![]()
Неактивний
Olej пише:Что? Так и собираетесь идиотом всю жизнь прожит?
дык вы ещё и грубиян)))
А ты думал? 
 
Я с понтующимимся подростками по-другому и не разговариваю.
Так учили.
Остання редакція Olej (2018-03-22 19:44:26)
Неактивний
vvr пише:Olej пише:Что? Так и собираетесь идиотом всю жизнь прожит?
дык вы ещё и грубиян)))
А ты думал?
![]()
Я с понтующимимся подростками по-другому и не разговариваю.
Так учили.
где учили? )
Неактивний
По буквам что ли нужно объяснять?
Можешь и по буквам объясниться, если хочешь ответ получить.
А иначе ... ну, ты сам понимаешь куда ...  ![]()
Остання редакція Olej (2018-03-22 22:51:17)
Неактивний
Здрасьте, здрасьте ... господин, который даже на имя себе не наработал.  
 
Мне с вами сраться недосуг ... я там выше высказал некоторые соображения относительно Arduino, и я, как ба-а-а-альшой демократ, даже не требую признавать на 100% их правоту. Если вы с чем там не согласны, то вы выскажите аргументированные обоснования, мы можем о них поговорить. А если вам просто не нравится, и вы собираетесь продолжать нести эту свою блевотину - то мне ваши проблемы похрен.    
Вам посраться не с кем? Так вон там, у вас под рукой, есть господин достойнейший Green - вы вы с ним и побеседуйте. Вы даже лицом чем-то схожи... ![]()
Неактивний