Зарегистрироваться

Делаем "слегка умное" реле для управления нагрузкой 220 Вольт на основе ATTiny85 (ATTiny13) и симистора (BTA16)

  • Цена: $12.00 за 10 штук

Последнее время активно продвигаются устройства умного дома, в том числе, и на данном ресурсе. Одной из основных проблем коммутации силовых нагрузок в таких устройствах является сохранение привычного (кнопочного или иного) управления. Устройство из обзора призвано решить данную проблему, предоставив возможность управлять как из «умной составляющей» дома, так и привычными средствами, например, выключателем. Помимо этого, на данном устройстве можно легко и безопасно реализовать управление светом несколькими выключателями. Либо сочетать разные способы управления. Поделки, пайка, код и тесты — все под катом… (осторожно: много фото и видео).

Про сам контроллер Attiny85 написано немало, в том числе и на этом ресурсе. Мой обзор про вариант использованием с подробной инструкцией по подключению контроллера можно найти здесь. Сам контроллер имеет 8 выводов: 2 из которых предназначены для подключения питания, 1 — под сигнал сброса (перезагрузки), таким образом под «полезные» задачи остается всего 5 выводов, но и этого, во многих случаях, достаточно. Контроллер:

Микроконтроллер ATtiny85 имеет следующие характеристики:
— для программного кода предусмотрено 8 КБ памяти;
— для исполняемого кода (ОЗУ, SRAM, RAM) зарезервировано 512Б;
— память данных (EEPROM) 512 Б
— наличие 6 цифровых пинов, в реальности лучше использовать 5 (оставив 1 под RESET);
— два выхода PWM и 4 АDC (разрешение 10-bit);
— частота от 1 до 20 МГц.
ATtiny85 предлагается в корпусах: MLF (WQFN) 20M1 20dip8, PDIP 8P3 8, SOIC (208mil) 8S2 8.
В зависимости от модификации источник питания может быть от 1,8 до 5,5В.

В данном обзоре речь пойдет о версии в SOIC корпусе. Посылка пришла за 3 недели (трек отслеживался).

В своих поделках я довольно часто использую реле на твердотельных элементах, в частности, при создании аппарата точечной сварки использовал именно симистор, подробнее тут. Но вот незадача, если использовать твердотельное (да и любое другое) реле в сочетании со сложной системой управления возникают следующие неприятности:
— локально таким реле можно управлять только в 2-х вариантах: либо через центральный узел, либо центральный узел будет находиться в неведении о текущем состоянии реле;
— в случае перезагрузки центрального узла — состояние реле меняется на исходное (либо нужно сохранять текущее состояние):
— но, самое главное, если вам захотелось внести изменения в центральный узел, либо его заменить (в совсем плохом случае он может просто сломаться) — то, фактически, реле становится неуправляемым, а это означает например невозможность включить свет или что-то еще.
Вторым моментом двинувшим меня на данную разработку является довольно типичная ситуация использования проходных (перекидных) выключателей. В силу дороговизны силового кабеля, а его требуется немало для организации возможностей включения/выключения света в нескольких точек, кроме того большое количество кабеля с напряжением 220 Вольт никак не способствует безопасности, мне кажется разумным коммутировать силовую нагрузку тонким проводом (например телефонным) с напряжением порядка 5 Вольт. Устройство из обзора позволит решить и эту задачу.
Если же эти две проблемы объединить, то целесообразность применения такого устройства сложно переоценить. Я отдаю себе отчет, что найдутся знатоки, которые использовав всего 15 транзисторов и несколько навесных элементов гордо заявят, что обошлись без контроллера, решив задачу (почти похожую на данную) в железе. Сразу аргументирую: цена контроллера настолько мала, что и обсуждать бессмысленно, вдобавок решение получается очень гибким, внесение изменений не требует паяльника. При этом тиньки зарекомендовали себя как очень надежные и стабильные контроллеры, кроме всего прочего, ничто не мешает иметь некий резерв таких «слегка умных» реле — чтобы совсем исключить все нештатные ситуации.

Нехитрая схема устройства:

R1, R2, R3 — устанавливаются опционально, подтягивая соответствующие выводы контроллера к питанию. R4 подтягивает вывод RESET к питанию, препятствуя самопроизвольной перезагрузке контроллера. Нагрузка подключается к выводу PB3 контроллера, данный вывод подтянут к земле резистором R6 во избежание нештатных ситуаций по включению симистора. R5 ограничивает ток оптосимистора MOC3063. MOC3063, R7(0.5 Вт), R8(0.5 Вт) и Т1 — образуют типовую схему включения симистора. Снабберная (демпфирующая) RC-цепь состоит из C1 и R9 (1Вт), её наличие особенно критично при индуктивной нагрузке. В качестве симистора я использовал BTA16, можно поставить как менее так и более мощный (в корпусе ТО220), в зависимости от коммутируемой нагрузки. Также, по необходимости, можно установить радиатор на симистор, я специально расположил его с краю.

Печатная плата получилась такая:

Плата изготовлена в Китае, размеры компактные (вполне войдет в подрозетник или распаячную коробку), конкретно эту плату изготавливал в dirtypcbs.com, воспользовавшись панелизацией (в ближайшее время ожидаю платы другого производителя за 2$ — по акции :) ):


После сборки устройство выглядит так:

Это экспериментальный образец, поэтому немного пострадал, не обращайте внимания на внешний вид. :) Обратная сторона:

Естественно, вместо тестовых штырьков можно сразу припаять проводки, тем самым сэкономить пространство. Если сигнальные провода будут проходить вплотную с электрической сетью и вы не используете экранированные провода, то стоит позаботится защитой от наводок.
Первым делом я загрузил программку мигания нагрузкой:

void setup() {
  pinMode(3, OUTPUT);
}

void loop() {
  digitalWrite(3, HIGH);
  delay(1000);
  digitalWrite(3, LOW);
  delay(1000);
}

В качестве программатора использовал arduino nano:

После подключил питание к макетной плате и подал на новое устройство:

Видео работы (использовал, доработанный по пожеланиям, стенд из этого обзора):

Простейшие функции проверены, впрочем, если вам нужна мигалка на 220 Вольт, то можно использовать устройство в таком виде :).

Далее, сымитируем ситуацию, когда нам требуется много (ну до 4-х) выключателей для одной нагрузки, и мы не хотим тянуть толстые провода с 220 Вольт. Для этого, на все свободные входы нашего устройства нужно подключить выключатели с поведением аналогичным типовым и написать соответствующую программу:

// выход на нагрузку
const uint8_t load_pin = 3;
// состояние нагрузки
bool load_on = false;

// структура, описывающая отдельный выключатель
typedef struct {
  uint8_t pin; // пин
  bool state; // состояние
  unsigned long ButtonTimerDebounce; // время начало переключения (для защиты от дребезга)
} btn_t;

// массив выключателей
btn_t btn[] = {
  {1, 0, 0},
  {0, 0, 0},
  {2, 0, 0},
  {4, 0, 0},
};
// количество элементов в массиве - посчитаем позже
uint8_t num_btn = 0;
// количество миллисекунд со старта контроллера (для защиты от дребезга)
unsigned long CurrentTime = 0;
// защитный временной интервал в мс
const unsigned int DebounceTime = 100;

// функция определения количества элементов массива с элементами произвольного типа
template<typename T, size_t n> inline size_t arraySize(const T (&arr)[n]) {
  return n;
}

void setup() {
  // настраиваем пин нагрузки
  pinMode(load_pin, OUTPUT);
  digitalWrite(load_pin, LOW);
  // считаем количество выключателей
  num_btn = arraySize(btn);
  // настраиваем все выключатели
  for (uint8_t i = 0; i < num_btn; i++) {
    pinMode(btn[i].pin, INPUT);
    pinMode(btn[i].pin, INPUT_PULLUP);
    btn[i].state = digitalRead(btn[i].pin); // текущее состояние выключателя считаем исходным
  }
}

void loop() {
  CurrentTime = millis();
  // обходим все выключатели
  for (uint8_t i = 0; i < num_btn; i++) {
    // Если состояние выключателя отличается от текущего
    if (btn[i].state != digitalRead(btn[i].pin)) {
      // Если мы в самом начале устранения дребезга, то ставим время отсчета
      if (btn[i].ButtonTimerDebounce == 0) btn[i].ButtonTimerDebounce = CurrentTime;
      // Если произошло переключение с учетом устранения дребезга
      if ((btn[i].ButtonTimerDebounce + (unsigned long)DebounceTime) < CurrentTime) {
        // Меняем состояние нагрузки
        btn[i].state = !btn[i].state;
        load_on = !load_on;
        if (load_on) {
          digitalWrite(load_pin, HIGH);
        } else {
          digitalWrite(load_pin, LOW);
        }
        // сбрасываем время отсчета
        btn[i].ButtonTimerDebounce = 0;
      }
    } else {
        // сбрасываем время отсчета при ложной тревоге - переключатель не изменил состояние за заданное время
      btn[i].ButtonTimerDebounce = 0;
    }
  }
}

В качестве имитаторов выключателей решил использовать такие кнопки со сменой состояния:

Чтобы не паять, решил изготовить проводки для подключения кнопок к макетной плате (они мне еще пригодятся). В качестве проводков использовал обрезки ШВВП 2х0.5. Надеваем изолятор и зажимаем клемму в обжимке:

С обратной стороны:

Результат:

Надеваем изолятор:

Другой конец жал штырьками для макетной платы:

Провод толстоват для таких наконечников, поэтому обжимные части и узкая и широкая обжимают сам провод, хотя широкая должна впиваться в изоляцию, но держится все очень крепко — руками у меня не вышло сорвать терминал с провода. Лишнее закрываем термоусадкой:

Если кому интересно, то клещи и процесс обжима я обозревал здесь.
Получилось вот такие проводки:

Далее защелкнул их на кнопки и сдвинул изоляцию:

Тест кнопок проводил сразу всех (3 штуки сделал) в режиме прозвонки поочередно нажимал:

Итоговый стенд:

Видео тестов:

Логика работы такая же как у проходных (перекидных) выключателей. Памяти данный код занимает мало и на месте 85-ой тиньки вполне справится ATTiny13, благо корпуса у них похожи и я предусмотрел на плате их заменяемость. Таким образом, вместо дорогих и толстых проводов можно с успехом использовать тонкий телефонный, и напряжение безопасно, более того перебив и замкнув провод можно вывести из строя только один выключатель, остальные будут продолжать работать.

Приступим к самой сложной части — взаимодействии нашего «немного умного» реле с другими, более умными, собратьями. Для тестов, да и на практике, вполне работоспособно решение с сериал портом. ATtiny85 не имеет аппаратного Serial-порта, но программный работает отлично. Пишем код:

#include "SoftwareSerial.h"
const uint8_t Rx = 0;
const uint8_t Tx = 2;
SoftwareSerial TinySerial(Rx, Tx);

const uint8_t load_pin = 3;
bool load_on = false;

typedef struct {
  uint8_t pin;
  bool state;
  unsigned long ButtonTimerDebounce;
} 
btn_t;

btn_t btn[] = {
  {1, 0, 0  },  
  {4, 0, 0  },
};
uint8_t num_btn = 0;
unsigned long CurrentTime = 0;
const unsigned int DebounceTime = 100;

template<typename T, size_t n> inline size_t arraySize(const T (&arr)[n]){
  return n;
}

void setup() {
  pinMode(load_pin, OUTPUT);
  digitalWrite(load_pin, LOW);

  pinMode(Rx, INPUT);
  pinMode(Tx, OUTPUT);
  TinySerial.begin(9600);
  TinySerial.write(101);


  num_btn = arraySize(btn);
  for (uint8_t i = 0; i < num_btn; i++) {
    pinMode(btn[i].pin, INPUT);
    pinMode(btn[i].pin, INPUT_PULLUP);
    btn[i].state=digitalRead(btn[i].pin);
  }
} 

void loop() {
  CurrentTime = millis();

  if(TinySerial.available()){
    uint8_t recived = TinySerial.read();
    if(recived==152){
      change_power(true);
    }
    else if(recived==151){
      change_power(false);
    }
    else if(recived==153){
      if(load_on){
        TinySerial.write(202);
      } 
      else {
        TinySerial.write(201);
      }
    }
  }

  for (uint8_t i = 0; i < num_btn; i++) {
    if(btn[i].state!=digitalRead(btn[i].pin)){
      if(btn[i].ButtonTimerDebounce==0) btn[i].ButtonTimerDebounce=CurrentTime;
      if((btn[i].ButtonTimerDebounce + (unsigned long)DebounceTime) < CurrentTime){
        btn[i].state=!btn[i].state;
        if(load_on){
          change_power(false);
        }else{
          change_power(true);
        }
        btn[i].ButtonTimerDebounce=0;
      }
    }else{
      btn[i].ButtonTimerDebounce=0;
    }
  }
}

void change_power(bool val){
  if(val){
    digitalWrite(load_pin, HIGH);
    load_on = true;
    TinySerial.write(102);
  }
  else{
    digitalWrite(load_pin, LOW);
    load_on = false;
    TinySerial.write(101);
  }
}

Я не буду построчно его комментировать, благо они похожи с предыдущим. Поясню, я использовал несколько кодов для взаимодействия устройств. При загрузке тинька сообщает старшему собрату, что нагрузка отключена. Далее она может принять и обработать команды включения, выключения и запроса статуса нагрузки. Процедуру изменения состояния нагрузки вынес в отдельную функцию, так как кода там немного прибавилось, и количество возможных мест вызова тоже изменилось. В качестве старшего собрата выступит все та же arduino nano (хотя это может быть что угодно: компьютер (в том числе raspberry pi), другой контроллер и тп). Код ардуины попроще:

#include "SoftwareSerial.h"
const uint8_t Rx = 12;
const uint8_t Tx = 11;
SoftwareSerial TinySerial(Rx, Tx);

const uint8_t led_pin = 13;
const uint8_t bt_pin = 14;

bool load_on = false;

bool ButtonOn = false;
unsigned long CurrentTime = 0;
unsigned long ButtonTimerDebounce = 0;
const unsigned int DebounceTime = 50;

void setup() {

  pinMode(led_pin, OUTPUT);
  digitalWrite(led_pin, LOW);

  pinMode(bt_pin, INPUT);
  pinMode(bt_pin, INPUT_PULLUP);

  pinMode(Rx, INPUT);
  pinMode(Tx, OUTPUT);
  TinySerial.begin(9600);
  TinySerial.write(153);

  Serial.begin(9600);

  delay(15);
  if(TinySerial.available()){
    uint8_t recived = TinySerial.read();
    if(recived ==202){
      change_led(true);
    }
    else if(recived ==201){
      change_led(false);      
    }
  }
} 

void loop() {
  
  CurrentTime = millis();

  if(TinySerial.available()){
    uint8_t recived = TinySerial.read();
    if(recived==102){
      change_led(true);
    } else if(recived==101){
      change_led(false);
    }
  }
  
   if(Serial.available()){
    uint8_t recived = Serial.read();
    TinySerial.write(recived);
  }
  
  if(digitalRead(bt_pin)==LOW && !ButtonOn){
    ButtonOn = true;
    if(ButtonTimerDebounce==0) ButtonTimerDebounce=CurrentTime;
    if(ButtonTimerDebounce + (unsigned long)DebounceTime < CurrentTime){
      if(load_on){
        TinySerial.write(151);
      }else{
        TinySerial.write(152);
      }
      ButtonTimerDebounce=0;
    }
  }else if(ButtonOn && digitalRead(bt_pin)==HIGH){
    ButtonOn = false;
  }
}

void change_led(bool val){
  if(val){
    digitalWrite(led_pin, HIGH);
    load_on = true;
    Serial.println("load on");
  } else {
    digitalWrite(led_pin, LOW);
    load_on = false;
    Serial.println("load off");
  }
}

После загрузки считывается состояние нагрузки и отображается светодиодом. Также, принимается информация об изменении состояния нагрузки самой тинькой (локальными выключателями). К ардуино подключил кнопку, обработчик которой посылает команду на изменение состояния нагрузки тинькой. индикация меняется только при подтверждении смены состояния. Итоговый стенд:

Видео иллюстрирующее работы такого варианта:

Кнопка, подключенная к ардуинке, у меня давно используется для тестов и пережила не мало, поэтому срабатывает не всегда, но смысл ясен. В данном случае, удаление более умного устройства (тут ардуно нано) никак не скажется на локальной работе устройства, чего нам и требовалось. Преимущества прошлой схемы сохранены, единственное уменьшилось количество выключателей. Для тех кто не любит провода, напомню про радиомодули предназначенные для расширения по радио Serial UART интерфейса, мой обзор на эту тему тут.

Таким образом, устройство показало свою работоспособность и, я думаю, что очень пригодится мне в решении дачных и не только задач. Если требуется больше выводов, то это также возможно:
1 — использовать другой, более ногастый, контроллер (например ATTiny 2313);
2 — применить расширитель портов по шине i2c (например: PCF8574 — для 8 портов или MCP23017 — для 16 портов), которая в данном контроллере присутствует. Сохранение состояния нагрузки при отключении питания нетрудно реализовать, но я предпочту выключенный свет при восстановлении электричества по целому ряду причин.

Если будет интересно, расскажу ещё о своих новых поделках.

Спасибо тем кто дочитал до конца! Надеюсь, что данный огромный обзор такого простого устройства вас не утомил! Всех поздравляю с наступившим новым Годом!
Планирую купить +69 Добавить в избранное +97 +171
+
avatar
  • Vadim2S
  • 02 января 2018, 09:32
0
Отлично! Как раз мучался вопросом «как включать и выключать лампу в комнате с 4-мя дверьми». Каковы границы коммутации? 12В, 6А возьмет? Где можно по десятку элементов заказать? Симисторов тех же и конденсаторов?
+
avatar
  • yurok
  • 02 января 2018, 09:37
+1
спасибо!
конкретно этот симистор коммутирует до 12А с радиатором, без радиатора до 0,5 А, можно поставить и помощнее. В обзоре это написал. На али можно найти детальки в любом количестве.
Например:
симисторы
конденсаторы
+
avatar
  • ksiman
  • 02 января 2018, 09:36
+8
Устройство интересное, но прямо в таком виде будет нормально работать только на столе :)
Входы контроллера необходимо защищать, т.к. помехи на длинные провода подключения вызовут пробой контроллера.
+
avatar
  • yurok
  • 02 января 2018, 09:43
0
все зависит от длины и количества помех, защитить выводы конечно можно — например поставив на выводы идущие далеко резисторы.

В большинстве случаев, будет отлично работать — входы контроллера достаточно устойчивы, а программное подавление дребезга не даст им повлиять на устройство. При длине порядка 10 метров у меня контроллеры трудятся уже несколько лет.
+
avatar
  • ksiman
  • 02 января 2018, 10:00
+5
Если устройство будет использоваться как проходной выключатель и установлено в подрозетнике, провода подключения будут проходить рядом с силовыми. Ёмкость между этими проводами запросто может составлять сотни пФ. Импульсная помеха с силового провода допустимой амплитуды до 1,5кВ через эту ёмкость запросто пробивает вход любого контроллера.
+
avatar
  • yurok
  • 02 января 2018, 10:20
0
при желании можно зашунтироать такие линии стабилитроном и конденсатором — если условия по помехам беспокоят, на практике не в промышленных условиях, такое практически не встречается.
+
avatar
  • ksiman
  • 02 января 2018, 10:23
+7
такое практически не встречается.
Выше я привёл пример бытового использования.
Набросал один из вариантов защиты питания и входа контроллера
+
avatar
  • yurok
  • 02 января 2018, 10:28
0
это нужно умудрится проложить в параллель впритык с силовым проводом на достаточно большой длине сигнальный неэкранированный проводок, если такая ситуация имеет место быть — то нужно поставить стабилитрон от сигнальной линии на землю и в параллель ему конденсатор
+
avatar
  • ksiman
  • 02 января 2018, 10:31
+5
это нужно умудрится проложить в параллель впритык с силовым проводом на достаточно большой длине сигнальный неэкранированный проводок
Так обычно и бывает :) Для сигнальных цепей никто отдельно штробу к выключателю делать не будет. Мы всё-ещё говорим о реальном применении?
+
avatar
  • yurok
  • 02 января 2018, 10:40
0
да, в реальном применении, каждый сам по необходимости может защитить сигнальную линию, вариантов решения не мало — в крайнем случае, можно оптически развязать контроллер с линией, самый простой вариант со стабилитроном и конденсатором
+
avatar
0
Да, но бросить сигнальные линии один раз витой парой с экраном и избавить себя от мучений раз и навсегда тоже никто не мешает. А городить такое — это пипец…
+
avatar
  • ksiman
  • 02 января 2018, 11:08
+1
Тут уже надо прикидывать, какой вариант более приемлем: прокладывать экранированные провода или делать контроллер с защитой от помех, либо вообще и то и другое для ответственного применения :)
+
avatar
0
Ну как бы делается для себя же родимого, нет? :)
И на века, чтобы больше вообще не парится.

Стоит копейки, и раз все равно планируешь разводить слаботочку — самое то чуть-чуть подумать перед этим.

Обвесить, конечно, контроллер можно — но это убивает на корню простоту всего этого дела.
Если заказывать все в сборе через гербер — то наверное да — пофиг, а если самому паять — то нет.

А кинуть кабель с экраном — проще и дешевле — один раз и на всегда.
+
avatar
  • Kartus
  • 02 января 2018, 14:21
+3
на века, чтобы больше вообще не парится.
Что бы не парится, надо меньше придумывать на пятую точку приключений, типа автоматизации простейших действий. Потому что любая автоматика ломается именно в тот момент, когда это наименее приемлемо)))
+
avatar
0
Если все протянуто проводами (не радиоканал), и отлажено — то вероятность отказа не сильно будет отличаться от решения «в лоб рубильником» :)

Естественно, с усложнением конструкции, уменьшается ее надежность, но если сделано с головой — то это единицы процентов, а удобство пользования при этом вырастает в разы. Кроме того — важные (действительно важные) вещи имеют байпас на крайний случай — это как раз вытекает из «сделано с головой».

А так, если Вас послушать — до сих пор бы на лошадях волокуши тянули — во сколько раз машина сложнее волокуши-то? :D

Везде просто баланс надо соблюдать — в том числе и между сложностью.

И как раз заложить на слаботочку провода в экране проще, чем городить помехоустойчивую защиту на всех контроллерах потом — собственно об этом я выше и писал.
+
avatar
0
Одно другое не исключает. Любой длинный провод это антенна которая ловит всякое. И не надо говорить, что «ну у меня же дома нет помех» их до поры до времени нет. Скажем если рядом ударит молния, то на всех длинных проводах наведется потенциал. И он может быть даже очень большим. И я естественно говорю на о прямом ударе молнии, а именно что «где то рядом». Пара диодов, стоимость платы сильно не увеличат но количество проблем уменьшит
+
avatar
+1
Вы читали пост мой?

Что такое экран — в курсе?
Чего там внутри экрана ловится будет?
Барабульки из Америки? — не смешите меня.

Пара диодов? Где Вы пару диодов видите?
Если уж делать, то делать по нормальной схеме и ksiman действительно годную схему дал, только там стаб, кондер и сопротивление и никаких диодов — теперь умножьте на кол-во линий и ваше «сильно не увеличат» мягко говоря будет неверным. И дело не только в стоимости, но и в размерах и сложности сборки.
+
avatar
0
Ах если бы экран был универсальным решением всех проблем с ЭМС…
+
avatar
0
Универсального нет ничего, но вот как раз в данной проблеме экран решает ее полностью.
+
avatar
  • Lubitel
  • 03 января 2018, 18:47
0
Почему тогда экранированные и в броне коаксиальный или симметричный кабель легко прослушивается хотя лежит в земле на глубине метра
+
avatar
  • Z2K
  • 03 января 2018, 21:59
0
коаксиальный или симметричный кабель
— силовой, информациооный?
легко прослушивается
— Сомневаюсь что легко. Вы этим занимаетесь?
+
avatar
  • Z2K
  • 02 января 2018, 20:56
0
Есть много разнообразной спецухи с интегрированными снаберными цепями (разной мощности) для работы интерфейсов с проводами. Но это считается для промышленной отрасли. И цены как-бы не зашкаливают, но для масового в использования в УД неприемлимы. Можно и трансы от сетевух пользовать.
+
avatar
  • Z2K
  • 02 января 2018, 20:49
+1
А кинуть кабель с экраном — проще и дешевле — один раз и на всегда.
— насчет дешевле уже не соглашусь :). Да и не просто, особенно после отделки :) Да и навсегда сомнительно — недавно всюду по помещениях коаксиал вели — и что теперь с ним делать? :))
+
avatar
  • d_averk
  • 02 января 2018, 13:40
0
Вообще жесть, да.
+
avatar
+2
Если честно, то ты уже отмазываешься. Я когда увидел и осознал, что ты будешь пускать проводами незащищенные входы МК, то еще до просмотра комментов хотел написать то, что написал Ксиман.
У меня вопрос, а почему не ESP и WiFi как средство гальванической развязки? Программируется в той же среде ардуино.
+
avatar
  • yurok
  • 02 января 2018, 15:10
0
esp стабильности сильно не хватает, да и решение тут именно просто реле, просто немного с логикой, а как на него сигнал подавать и как с ним взаимодействовать — это уже другой вопрос — я привел пример радиомодулей.

провода в большинстве случаев предпочтительней, если условия требуют защиту — то ее можно поставить
+
avatar
+2
ESP с nodemcu на борту — согласен — там энтропия раздута сильно.
ESP с базовым скетчем на ардуино — не согласен.
Провода хорошо, но все меры по защите и меры по предотвращению ложных срабатываний делают решение дороже ESP по радио.
Помню как-то нужно было развязаться, я взял толстую рыболовную леску и засверлившись в ИК диод и фотодиод сделал оптоволоконную развязку. Может и тут так?
+
avatar
0
Радио канал — однозначно в топку — по безопасности и стабильности.
Для чего-то незначимого — можно, а для всего другого — нет.
И это точно плохой вариант для умного дома.

А то я приду и поуправляю вашим умным домом за Вас, ну, или, на худой конец, не дам Вам им управлять ;)

P.S. А уж про защищенность Wi-Fi (особенно в свете последней уязвимости) я вообще молчу.
+
avatar
0
Не стану спорить. С таким же успехом ты придешь к моему дому и вытащишь дверной звонок и жахнешь в проводную CAN-bus шокером и остановишь весь вумный дом(ц)
+
avatar
0
Вся прелесть радиоканала в том, что к дому приезжать не надо — достаточно быть просто рядом — и это две БОЛЬШИЕ разницы. Никаких следов проникновения или чего-то еще.

А ведь до проводов-то внутри дома нужно еще как-то добраться, правда?
Замок смочь взломать, звонок отвинтить и т.д. — все, статья.

А тут просто рядышком встал в машинке, ноут включил — и все.
И цель то может быть просто напоганить — достали вы, например, соседей своей громкой музыкой :) И никакой статьи — следы добыть в такой ситуации крайне сложно.

Так что не о чем тут спорить — хотите быть незащищенным — будьте им — кто запрещает.

P.S. Причем для всего этого быть хакером абсолютно не обязательно — достаточно купить девайс на али (направленная wifi карта или антенна) и установить софт (лежит в открытом доступе, для пен-тестов, например). Мало того — можно для начала попробовать сделать все это со смартфона без спец-железа. Софт тоже есть и тоже в открытом доступе.

А в случае с глушилкой — все еще проще.
+
avatar
+1
Ты меня не понял. Я тебе не зря сказал о умысле. Чтобы умышленно навредить, что радио что провод одинаково.
Окей, теперь о КРАК уязвимости. Она не дает пароль. Она лишь позволяет _возможно_ сбросить сессионный ключ для конкретного устройства и СЛУШАТЬ его трафик. Окей, ты слышишь к ESP что-то типа GET 192.168.1.2/turnonlight. Что ты с этим сможешь сделать? Кодовой фразы у тебя нету. Всё. Приехали.
Окей, допустим я идиот и поставил пароль из словаря. Ты отснифал мой хендшейк, поехал домой, прокрутил его по многотеррабайтному словарю и нашел таки мой пароль. Ну приехал ты назад, сидишь в машине. И что дальше?
Всё что ты знаешь, это то что можно сделать GET 192.168.1.2/turnonlight
Окей. Что мешает сделать целочисленный challenge-response, чтобы ESP аутентифицировала управляющий сервер и управляющий сервер аутентифицировал ESP?
Тогда сбросив сессионный ключ ты увидишь GET 192.168.1.2/turnonlight?challenge=1919191919 и ответ 345867. И всё. Ты приехал.

Глушилка? Ты имеешь ввиду deauth? Ну у меня на точке обновлено ПО и WPA2 предхендшейк и сам хендшейк уже не в OPEN режиме, так что ты лососнешь тунца даже в момент «ловли» моего хеншейка. И deauth мне и моим девайсам не грозит и не работает против них вообще. Проверял для надежности и с помощью Kali.
Ну и на последок, запрет OPEN режима закрывает вектор атаки КРАК.

Занавес
+
avatar
  • Z2K
  • 02 января 2018, 22:19
0
Трафик будет полностью закрыт. А избирательно и импульсно (в момент передачи целевого устройства) глушить трафик канала не получится?
+
avatar
0
CSMA/CA не даст. А разработка своего устройства, которое наплюет на этот механизм потянет на такую сумму, что проще позвонить в дверной звонок и огреть хозяина бейсбольной битой.
+
avatar
  • Z2K
  • 02 января 2018, 22:38
0
Не на протокольном уровне. Чисто аппаратно, фиксируем излучение с этого азимута в этом канале — посылаем помеху. Срываем сессию. И так постоянно.
+
avatar
0
А разработка своего устройства, которое фиксирует излучение с этого азимута в этом канале и посылает помеху потянет на такую сумму, что проще позвонить в дверной звонок и огреть хозяина бейсбольной битой.
+
avatar
  • Z2K
  • 02 января 2018, 22:51
0
проще позвонить в дверной звонок и огреть хозяина бейсбольной битой
— нет, не проще.
Совсем другой уровень правовой ответственности и последствия.
У соседа роутер от ТВ на два метра на котором он смотрит айпитиви. Через полкирпича мои комнаты. Несколько раз просил понизить мощность (есть такая возможность). Тупо игнорил. Теперь сосед постоянно дергает провайдера почему во время его футбола нет интернета. Приходят — все есть и работает. Он снова звонит. Его уже на обследование направляют. Я предлагаю ему решить проблемму — дам кусок обжатого кабеля. И вайфая не надо. Но лишнего провода еме не надо. Так и живем.
+
avatar
  • ksiman
  • 02 января 2018, 23:34
0
Надеюсь это не Вы ему футбол отрубаете?
+
avatar
  • Z2K
  • 02 января 2018, 23:42
+1
Нет, это все неизбежная в море случайность.
+
avatar
0
Лупит ему deauth от имени приставки в сторону роутера. Если бы за стеной была бы не дубина, то уже врубила бы снифак да поняла что к чему, и тогда у Z2K началось бы…
+
avatar
  • Z2K
  • 03 января 2018, 03:15
+2
Почему Вы такой агрессивный. Вам бы все дубину в руки.
+
avatar
0
Может вам " зарыть топор войны" и подарить соседу «насадку» на антенну, делающую ее излучение направленным?
Выкройка была, как-то, в «Радио»
+
avatar
0
Бгг :)
Все возможно в этом мире — не зарекайся. Вон блид в OpenVPN нашли — а сколько исходники до этого копали.

Челлендж можно тоже обойти как делают с автомобильными токенами — не всегда работает и не на всех реализациях, но вклинившись и глуша базу можно попробовать и такой вектор атаки.

Ну хрен с ним — предположим, руки у тебя из правильного места, как и голова — да, НА ДАННЫЙ момент ты можешь сделать все чтобы минимизировать точки и возможности атаки, но так как тема популярная — это постоянная точка ненадежности.

Понятно, что внутри TCP можно сделать свой протокол с шифрацией, феями и кабаре — но смешно заешь что? Что ты себе придумал проблем и теперь с ними борешься, вместо того, чтобы убрать узкое место с проблемами.

Рано или поздно откроют еще что-то про что ты можешь не сразу узнать, или не успеть пофиксить — и все, палка уже в твоей #пе. Адьё. Как раз твой занавес пригодится #пу бинтовать…

Причем ты сам это себе создал, а можно было сразу убрать этот вечный источник проблем.

Глушилка — это в прямом смысле глушилка — девайс такой, который направлено глушит радиоканал, в т.ч. WiFi,

Усе — сети у тебя не будет, пока эта радость работает.

Не, конечно можно клетку фарадея сварить и жить в ней…
Однако это еще большее извращенство и главное — ради чего?

Надеюсь, мысль я донес? :)
+
avatar
0
Люблю юношеский максимализм. Чего скрывать — сам таким был. Я тебя полностью понял, разделяю твои опасения, понимаю каждое твоё слово, ибо ITSec это моё, но снова же, считаю их преувеличенными. У меня не форт-нокс. Я серый гражданин в сером доме.
Спускаться на TCP нет смысла. Даже на HTTP уровне можно сделать адекватную защиту.
За глушняк в Канаде на годик присесть можно и получить криминальный рекорд, означающий волчьий билет на любую работу выше уборщика, по-этому должна быть ПРИЧИНА, желательно веская, почему какой-то идиот приедет под мой дом глушить 13 каналов wifi, только чтобы я не смог дистанционно выключить свет в туалете.
+
avatar
0
Больше всего мне нравится вот это апеллирование к возрасту…
Прям все диванные психологи, которые возраст сквозь TCPIP определяют, ага :)))
Юноше давно уже за 30-ку перевалило, если что :D

И говорит это не максимализм, а простой и долгий опыт в ИТ безопасности.

Про серого гражданина — знаете, когда мне говорят «Мне скрывать нечего — кому я нужен вообще» (а Вы — не первый), я сразу вспоминаю страуса… И это грустно, что эта ошибка встречается так часто у вполне образованных людей.

Оставайтесь с Wi-Fi — я не против.

Ну и резюмируя все это — Вы сами себе создали проблемы и сами с стоически с ними боритесь — Вы назвали мои суждения максималистскими — так что я имею полное право назвать ваши — глупостью.

Ведь умный человек старается избежать лишних проблем (если только они не оправданы), не правда-ли? :)

Но да, можно быть Доном Кихотом и бороться с ветряными мельницами там, где все решает один единственно проложенный провод.
+
avatar
0
По сути тебе сказать нечего?
KRAK проходит мимо. Deauth проходит мимо. Получение доступа проходит мимо.
Глушак маловозможен, а если и возможен, то это не перехват управления.
А как начинал то красиво, сенсация, шок и т.п.

Пойду напишу нашим айтисекам, почему в AWS они еще используют этот «ненадежный» вайфай. Как думаешь, дадут премию?
+
avatar
0
По сути тебе сказать нечего?
По сути я уже все сказал — дело не в том, что Вы защищены на данный момент или нет — дело в том, что Вы оставили возможность для будущих атак у себя в инфраструктуре там, где ее можно было вообще избежать (причем без оправдания какой-либо необходимости). И исходя из этого безопасник Вы — так себе :)

Если мозга не хватает уловить — тут уж я беспомощен…
дадут премию?
А попробуйте — премию может и дадут, но боюсь что только Дарвина ;)

Оффтоп закрываю — всего хорошего Вам и ваше вере в Wi-Fi.
+
avatar
0
Я конечно за провода и всё такое.
Ну ведь сам смысл умного дома по-моему в том, чтобы управлять устройствами по wi fi со смартфона. По этому наверное для уязвимости не очень важно как подключено устройство, по wi fi или через провод, если устройством можно управлять по wi fi.
+
avatar
+1
С пессимизмом товарища УД лучше не делать. Можно сделать архибезопасную проводную сеть для исполнительных устройств, но всё-равно где-то будет сервер или шлюз, который должен и будет каким-то образом обеспечивать доступ извне. И его, по законам жанра, тоже можно хакнуть.
+
avatar
0
О для глушняка вполне подходит девайс
geektimes.ru/post/277380/
+
avatar
0
Да, прикольная вещь. Я игрался с трекинг генератором на частотах wifi. У меня получалось увалить современное устройство на пару секунд, если оно непросредственно рядом. Далее band steering уводил точку на другой канал и связь восстанавливалась. Я делал ГКЧ, чтобы покрыть весь диапазон. Это всего лишь замедляло связь. Отойди я на 5м от ТД и устройства с таким генератором и всё, ничего не заметно.
Использовал siglent ssa3032x. Устройство на базе killer 1535 и ТД unifi ac pro
+
avatar
+1
Я пробовал этим девайсом. Коннект на пропадет, но данные не ходят. В пределах комнаты точно работает. Дальше не проверял. Но если надо усилитель прикручивается быстро.
Можно вообще генератор шума сделать. Довольно просто.
+
avatar
0
Очень зависит от точки и, видимо, стандарта. Когда тот-же клиент был подключен к dir-825 с dd-wrt, то было аналогично Вашему. Стопорилась передача и все стояли на одном канале. Лишь через пару минут точка согласовывала новый канал.
Бяка сильно зависит от логики точки. Точка инициирует смену канала. ac pro(не реклама) уже через пару секунд уходила от пораженного места, чем меня несказанно удивила.
+
avatar
0
Можно весь диапазон захламить, не проблема (используя 2 или 3 устройства).

P.S. Роутер asus rt-n56n с прошивкой Padavan
+
avatar
  • Z2K
  • 02 января 2018, 20:37
0
Вот уж что-что, но кнопка звонка радиоканал
+
avatar
  • Z2K
  • 02 января 2018, 20:35
0
поуправляю вашим умным домом
— ну эт сомнительно, даже при малом желании как-то себя обезопасить, а вот
не дам Вам им управлять
— эт точно можно реализовать. и в рамках «законности».
+
avatar
0
ну эт сомнительно
А Вы про последнюю уязвимость WiFi читали?
Не сомневайтесь.
+
avatar
  • Z2K
  • 02 января 2018, 21:48
+2
Не сомневайтесь.
— нет ничего, что нельзя сломать. Но я сильно сомневаюсь в Вашей возможности взломать вайфай сеть с AES и WPA2 и 18 символьным паролем.
Почему за столько десятков лет не сломана защита сим карт? Разве это никому неинтересно ??!!! Всем даже очень-очень нужно. Даже премиальный фонд был в 10 млн ё. Но никто эти денюжки получить не смог.
+
avatar
0
Но я сильно сомневаюсь в Вашей возможности взломать вайфай сеть с AES и WPA2
Смотря что называть взломом — пароль не узнать, а вот работать от имени уже авторизованного устройства — легко в свете данной уязвимости. А больше и не надо.
И пофиг сколько символов пароль и AES там или TKIP.

«Чтобы войти в деревянный дом, вовсе не обязательно пытаться ломать в нем железную дверь»
есть такая поговорка…

не сломана защита сим карт
Этот оффтоп тут причем?
По секрету — через микросоту все прекрасно перехватывается — да это мидм (а не взлом защиты), но этого тоже вполне достаточно.
+
avatar
  • Z2K
  • 02 января 2018, 22:10
0
«работать от имени уже авторизованного устройства — легко в свете данной уязвимости.» — перехватываете сессию, блокируете (выбрасываете) авторизированное устройство из сети и работаете от него? Без пароля? Как вы свой траффик шифровать для роутера будете без пароля?
+
avatar
0
Мужик, я похож на гугл? Все надо на блюдечке давать?

Взрослый же человек — идешь в гугл или на хабр / реддит и читаешь что за последняя уязвимость wWi-Fi и как она эксплуатируется.

Ну раз сам грамотный такой — думаю что это вполне посильно.

Сейчас в новых устройствах оно пофикшено, но есть фишка — если к роутеру подключено ХОТЯ-БЫ ОДНО СТАРОЕ устройство — уязвимость работает.

Вот после того, как прочтешь — будем дальше дискутировать.
+
avatar
  • Z2K
  • 02 января 2018, 23:15
0
или на хабр
— помню проскакивало недавно такое, но даже не читал — как несущественое посколько это и понял — «Сейчас в новых устройствах оно пофикшено»
+
avatar
0
В новых — это после обнаружения уязвимости…
+
avatar
  • Z2K
  • 02 января 2018, 23:46
0
Надо почитать. У меня две мои гостевые сети на остановках светят. Так что Вы никому не говорите об этой уязвимости. :). Машины охранных фирм на ночь приезжают и под халявным интернетом стоят и спят. :))
+
avatar
  • Z2K
  • 02 января 2018, 20:31
0
но все меры по защите и меры по предотвращению ложных срабатываний делают решение дороже ESP по радио.
— а учитывая стоимость монтажных работ то даже существенно дороже. :(
+
avatar
  • Z2K
  • 02 января 2018, 20:24
0
Понятно что периферия этого МК не расчитывалась для работы с такими физическими выводами (провода), но если попробывать и оно будет нормально работать, то почему нет? Какая особенная защита в аппаратной части 485 интерфейса?
+
avatar
  • Z2K
  • 02 января 2018, 20:27
+1
а почему не ESP и WiFi как средство гальванической развязки? Программируется в той же среде ардуино
— зачем программировать? Тогда проще взять соноф за 5ё (правда он на реле). И теперь к нему пилят замечательный проект для Андроида.
+
avatar
  • sswa
  • 02 января 2018, 10:45
0
Емкость 1мкФ избыточна по управляющему входу имхо.
Достаточно было бы и 0,1мкФ.
+
avatar
  • ksiman
  • 02 января 2018, 10:46
0
Достаточно было бы и 0,1мкФ.
Достаточно, но зато получается аппаратная защита от дребезга контактов :)
Пусть лучше срабатывает медленнее, чем ложно от помехи. IMHO
+
avatar
  • sswa
  • 02 января 2018, 11:33
0
Думается мне, что в обоих случаях аппаратный антидребезг будет работать.))
+
avatar
  • DDimann
  • 02 января 2018, 09:44
0
Черт его знает… Помеха не изменяет статического состояния входа, наводит на него импульсы.
И, скорее всего, будет подавлена программно, как дребезг.
+
avatar
  • ksiman
  • 02 января 2018, 11:03
+1
Гадость помехи в том, что она способна пробить вход контроллера
+
avatar
  • sswa
  • 02 января 2018, 11:35
0
Мне попадался контроллер из фонарик с пробитым входом!
Там то уж точно никаких помех, а контроллер умер.
Так что… здесь уж точно лучше перестраховаться и сделать все по уму!
+
avatar
  • sav13
  • 02 января 2018, 14:36
0
Пробой не пробой, а ложные срабатывание точно
+
avatar
  • yurok
  • 02 января 2018, 14:38
0
защита от дребезга это уберет
+
avatar
  • DDimann
  • 02 января 2018, 09:41
0
Спасибо тем кто дочитал до конца!
Я дочитал. Но вот посмотрел не все:

Но даже без видео плюс :)
+
avatar
  • yurok
  • 02 января 2018, 09:44
+3
сейчас появится, радио в фоне играло — ютюб нашел песню с авторскими правами )
+
avatar
  • Hrenoff
  • 02 января 2018, 11:32
0
Браво, много нового почерпнул!
+
avatar
  • Mplus
  • 02 января 2018, 11:35
0
С новым годом всех! Люблю подобные обзоры, но хотелось бы увидеть уже готовую версию, с бп и подрозетнике. Не будет ли там тесно и жарко? А вообще однозначный плюс, такие обзоры продвигают людей думать и делать, даже таких ленивых, как я :)))
+
avatar
  • yurok
  • 02 января 2018, 11:38
0
спасибо
тут уже почти готовая :)
но реально применить пока не успел
+
avatar
  • mike888
  • 02 января 2018, 11:39
+4
Так и не понял зачем весь огород. Только что автору руки занять. Обратной связи по реальному состоянию реле так и нет. А для управления нагрузкой из неограниченого числа точек в электрике используется простое импульсное (бистабильное) реле, упраляется обычной кнопкой, которая при желании делается из обычного выключателя установкой пружинки. У большинства производителей выключателей это предусмотрено конструкцией. Реле делаются многими брендами и китайцами в различных исполнениях, как под дин рейку, так и в других малогабаритных корпусах. И надёжность их заметно выше, нежели электроники. А в наших сетях, особено за городом, где по сети киловольтные импульсы постоянно пролетают, это весьма актуально. Про УЗИП если кто и слышал, то узнав цену, быстро забывают под давлением земноводного и с надеждой на авось.
+
avatar
  • yurok
  • 02 января 2018, 11:42
+2
вы обзор читали? про обратную связь и прочее.
Из выключателя можно сделать что угодно, но мне так удобнее — возможно кому то тоже.
Устройство из обзора можно считать реле с программируемым поведением, в том числе и обратная связь
+
avatar
  • mike888
  • 02 января 2018, 12:00
+3
Про троллейбус из буханки хлеба я в курсе. Но возникает вопрос зачем?
Ещё в детстве в прошлом веке наигрался с подобием умных домов и сделал выводы на тему целесообразности и надёжности. Занятно, прикольно, понтануться перед пацанами можно, но в остальном в жизни это часто неудобно и ненадёжно. А поскольку детство у меня давно прошло, то все подобные поделки были изъяты из домашней сети и заменены на банальные, но надёжные элементы.
+
avatar
  • yurok
  • 02 января 2018, 12:11
+3
это сугубо ваше мнение, в прошлом веке детали были несколько иными и возможности тоже…
я пользуюсь без проблем, очень удобно — и по количеству обратной связи — желающих что-то сделать немало
+
avatar
  • mike888
  • 02 января 2018, 15:03
0
Где обратная связь то? Вся инфа только до оптрона, а дальше ничего нет. Что на нагрузке, неизвестно.
Китайские детали это кот в мешке, в совке они отбирались по параметрам и соответствовали маркировке, а какой кристалл китайцы сунули в корпус, они и сами часто не знают, задача у них другая, продать сделаное, а какие параметры конкретного изделия это тайна и когда полыхнёт тот же симистор, никто не знает.
+
avatar
0
Точно. А ещё, чтобы сидеть и не дрожать при вое сирен после того как «съэкономил» на кабеле, думаю, даже использование нормальных «дефицитных» деталей недостаточно. Здесь уж лучше посматривать на элементы для автопромышленности в усиленных корпусах и т.д.
Но съэкономить тут уже нет возможности.
+
avatar
  • yurok
  • 02 января 2018, 15:34
0
в подобных устройствах обратной связи до оптосимистора достаточно

а если так подходить к деталям, то лучше вообще никакую технику не использовать — там стоят точно такие же
+
avatar
  • mike888
  • 02 января 2018, 16:21
+1
Ставить детали как раз можно, если есть их контроль. При пробое симистора, нагрузка будет включена постоянно, а счастливый творец этого чуда будет уверен что она выключена, ведь сигнал на оптопару то не подан. Ну фиг с ним когда это в квартире, а когда на даче и ты за сотню км от неё и появишься там через неделю. Хорошо если без последствий, счёт за электричество это мелочи, а если полыхнёт избушка, будет обидно.))
+
avatar
  • Z2K
  • 02 января 2018, 19:57
0
Уже почти вся бытовая техника включается тиристорами — стиралки. посудомойки, кофеварки, телевизоры, рисоварки, електроплиты, увлажнители, и т.д.(пылесосы нет). А не механическими выключателями. Почему так? Вас это не волнует? Или Вы не покупаете такую «ненадежную» технику?
+
avatar
0
бред
+
avatar
  • Z2K
  • 02 января 2018, 19:49
0
в совке они отбирались по параметрам и соответствовали маркировке
когда полыхнёт тот же симистор
— да Вы хоть слегка поинтересуйтесь статистикой причин пожаров.
Вот пожары от возгорания советских цветных транформаторных кинескопных телевизоров — вот это четко и конкретно.
+
avatar
  • mike888
  • 02 января 2018, 20:36
+4
Совковые ламповые телевизоры давно в истории, кому сейчас интересна статистика прошлого века?
Ну и насчёт всего включаемого тиристорами, может есть смысл матчасть поизучать, а не нести чушь?
+
avatar
0
Согласен, пару лет назад, в Норвегии, монтировали системы Smart House — Loxone (Серверная часть), ZenseHome (соккеты, свичи, сенсоры, жалюзи и т.д и т.п). Всего 27 котеджей. Так вот по истечению некоторого времени, хозяева начали отказываться от этих плюшек. Да и глючило это всё по-страшному
+
avatar
  • klop
  • 02 января 2018, 12:10
+3
Снова позанудствую.
if (load_on) {
          digitalWrite(load_pin, HIGH);
        } else {
          digitalWrite(load_pin, LOW);
        }

Yurok, экономьте ресурсы микроконтроллеров, не перегружайте их говнокодом неуклюжими конструкциями. Всю эту кучу операторов можно заменить одной строкой digitalWrite(load_pin, load_on). У вас это постоянно.
+
avatar
  • SEM
  • 02 января 2018, 12:26
0
Извините, а в памяти микроконтроллера хранятся все эти буквы или «среда программирования» преобразует их в двоичный код? Сам код будет различаться?
+
avatar
  • X3Shim
  • 02 января 2018, 14:45
+1
будет различаться
+
avatar
+1
Абсолютно не обязательно — зависит насколько хорошо компилятор умеет оптимизировать код при компиляции.
CodeVision умеет оптимизировать такие конструкции, которые привел klop — разницы не будет. Про AStudio не скажу — не экспериментировал.
+
avatar
  • X3Shim
  • 02 января 2018, 16:15
+1
Естественно от компилятора зависит. Но тут ему трудно, второй аргумент digitalWrite это int, он не может догадаться. По крайней мере gcc -O3:


extern "C" void digitalWrite(int, int);
#define HIGH 0x1
#define LOW  0x0
int testFunction(bool load_on)
{
	int pin = 13;
	if (load_on) 
        	digitalWrite(pin, HIGH);
        else
		digitalWrite(pin, LOW);
	return 0;
}


Дает на выходе

cpse r24,__zero_reg__
	rjmp .L5
	ldi r22,0
	ldi r23,0
	ldi r24,lo8(13)
	ldi r25,0
	rcall digitalWrite
	ldi r24,0
	ldi r25,0
	ret
.L5:
	ldi r22,lo8(1)
	ldi r23,0
	ldi r24,lo8(13)
	ldi r25,0
	rcall digitalWrite
	ldi r24,0
	ldi r25,0
	ret
+
avatar
  • Z2K
  • 02 января 2018, 20:00
0
Так если Вам нетрудно — прокомпилируйте два примера и скажите конкретную разницу в размере.
Если память использована под завязку, а нужно пристроить новую фичу приходится оптимизировать. А так, в чем резон и выигрыш?
+
avatar
  • X3Shim
  • 02 января 2018, 20:04
+4
Второй вариант
mov r22,r24
	ldi r23,0
	ldi r24,lo8(13)
	ldi r25,0
	rcall digitalWrite
	ldi r24,0
	ldi r25,0
	ret


Ок. Поставил вместо -O3 опцию -Os (оптимизация размера, а не скорости)
Вариант 1 (стал короче):
tst r24
	breq .L2
	ldi r22,lo8(1)
	ldi r23,0
	rjmp .L4
.L2:
	ldi r22,0
	ldi r23,0
.L4:
	ldi r24,lo8(13)
	ldi r25,0
	rcall digitalWrite
	ldi r24,0
	ldi r25,0
	ret


Вариант 2 (все равно меньше и быстрее):
mov r22,r24
	ldi r23,0
	ldi r24,lo8(13)
	ldi r25,0
	rcall digitalWrite
	ldi r24,0
	ldi r25,0
	ret
+
avatar
  • Z2K
  • 02 января 2018, 22:41
0
Спасибо
+
avatar
  • yurok
  • 02 января 2018, 22:44
0
я обычно подхожу к этому иначе: делаю как нагляднее — если появляются проблемы с памятью, то оптимизирую — там где это даст существенный прирост, в данном случае совсем иная ситуация :)
+
avatar
  • X3Shim
  • 02 января 2018, 22:57
+1
ну в данном случае почти в двойку разница :) Но я понимаю что местами это пофиг, просто вопрос был принципиальный «измениться код или нет, изменится размер или нет». Мой ответ, что изменится, и думаю ни какой компилятор не пойдет на такую оптимизацию.
+
avatar
  • yurok
  • 02 января 2018, 12:30
0
и опять же отвечу: это шаблон — для примера так нагляднее, сюда удобно вставлять иной код — например индикацию.
Результат компиляции будет одинаковым в данном случае, так что про ресурсы мимо, а про наглядность и удобство расширения — я писал…
+
avatar
  • X3Shim
  • 02 января 2018, 17:00
+3
>> Результат компиляции будет одинаковым в данном случае

Все же рекомендую проверить. Я проверил на своем компиляторе (чуть выше).
+
avatar
  • seval
  • 02 января 2018, 12:12
0
С Наступившим Новым Годом всех!
Автор, Вы можете описать как Вы прошиваете данный МК? У меня не получается прошить из Arduino IDE.
+
avatar
  • yurok
  • 02 января 2018, 12:13
+1
я в обзоре ссылку дал — на обзор где есть инструкция
+
avatar
  • seval
  • 02 января 2018, 12:39
0
Я к сожалению не нашел ссылки.
+
avatar
  • yurok
  • 02 января 2018, 12:40
+3
+
avatar
  • seval
  • 02 января 2018, 23:18
0
Спасибо! Помогло.
Подскажите еще пожалуйста, по Вашей статье сделал подсветку лестницы. но там не работает ШИМ. Так и должно быть?
+
avatar
  • yurok
  • 02 января 2018, 23:19
+1
яркость не меняется? у меня же менялась и на видео это есть.
Там яркость передается в качестве параметра, как вы определили что не работает?
+
avatar
  • seval
  • 02 января 2018, 23:29
0
Диодная лента просто включается и выключается. Хотя пробовал скетч даже из библиотеки TLC.
По видимому дело в моей плате.
+
avatar
  • yurok
  • 02 января 2018, 23:35
+1
не могу сказать, делал давно — но у меня на даче оно много лет уже работает с плавным включением и выключением
+
avatar
  • seval
  • 02 января 2018, 23:43
0
Спасибо за ответ. Буду искать у себя причину.
+
avatar
  • dansar
  • 02 января 2018, 12:19
0
Тема питания такого устройства не раскрыта. Если вы собрались прятать его в коробке под выключателем, то туда нужно вести 5 вольт от внешнего источника питания. Если это будет простой конденсаторный блок питания, то дополнительные выключатели все равно придется брать рассчитанные под 220 вольт, и управление по UART придется оптически развязывать.
+
avatar
  • ksiman
  • 02 января 2018, 12:23
0
В данном случае используется внешнее питание
+
avatar
  • u3712
  • 02 января 2018, 12:22
+8
Красивая у вас плата вышла. Только в сеть ее включать не надо. От слова «запрещено».
Этож надо — сделать изоляционный пропил, а потом насажать цепей с расстоянием меньше мм.
Занимайтесь вы лучше низковольтовыми схемами, а то убьет же.
+
avatar
  • yurok
  • 02 января 2018, 12:26
0
меньше 2,5мм нигде нет расстояний между высоковольтной и низковольтной частями…
не стану советовать чем вам заняться )
В высоковольтной части все расстояния допустимы, откройте любой блок питания и посмотрите расстояния там.
Допустимое расстояние без всякой обработки при худьших условиях и напряжении 310 Вольт 0,31 мм, если покрыть плату лаком, то пробивная прочность увеличится в разы.
+
avatar
  • u3712
  • 02 января 2018, 12:56
+12
Вы разводите =сеть=, это потенциально опасное соединение. На работу с ним есть правила, которые вы ОБЯЗАНЫ выполнять. То, что вы сделали можно нужно выкинуть. Это — опасно для жизни.
Не умеете работать с опасными цепями — ваша проблема. Но, не выкладывайте это на всеобщее обозрение — кто-то повторит и он может пострадать. Из-за вас.
+
avatar
  • pc63
  • 02 января 2018, 13:10
+3
Пускай будет на всеобщее обозрение, но с указанием на ошибки и с методом их исправления. Это будет полезнее, чем просто удалить без объяснения причин. А чтобы новички не пропустили — плюсуем комментарий, где указана критичная ошибка(свой "+" добавил и автору и комментарию).
+
avatar
  • u3712
  • 02 января 2018, 13:24
+2
А стоит? На схеме автор не предусмотрел никакой защиты входов MCU — будут дохнуть. Питание на «девайс» подается снаружи, что дико повышает его функциональность (сарказм). Такие устройства должны иметь встроенное питание. Делать питание внешним, =общим=, да еще и протяженным (кабельное подключение) — это вообще вынос мозга.
+
avatar
  • yurok
  • 02 января 2018, 13:33
+2
необходимость защиты определяется в каждом конкретном варианте использование, да и нужна она не на все проводки, на локальные не нужна. Внешнее питание часто удобнее — например если рядом находится источник на несколько устройств. Это устройство следует рассматривать как немного улучшенное реле — не более и об этом есть в тексте.
+
avatar
  • Z2K
  • 02 января 2018, 20:16
0
Питание на «девайс» подается снаружи
— общее питание массива приборов опасно выходом из строя общего БП, попаданием в цепь питания внешнего повышенного напряжения, закорачивания цепи питания и т.д и для этого нужны свои решения. Такая задача давно стоит и решается в низковольтном питании камер и устройств систем видеонаблюдения.
+
avatar
  • yurok
  • 02 января 2018, 13:15
-1
и посмотрите пробивное напряжение для такого расстояния, для покрытой лаком платы
на 0.1 мм во всех правых измерениях ошибка кстати у вас
+
avatar
  • u3712
  • 02 января 2018, 13:29
+3
Между SMD резистором с открытой площадкой тиристора расстояние 1.8 мм по воздуху. Причем, от углового вывода резистора, на острых углах пробивное напряжение меньше.
+
avatar
0
А какое должно быть расстояние?
+
avatar
  • ksiman
  • 02 января 2018, 18:54
+2
Всё написано например в ГОСТ 23751 86
Развязка вторички должна выдерживать 1,5кВ, а это минимум 5мм зазор
+
avatar
  • yurok
  • 02 января 2018, 19:06
0
1,20 — 2,00 мм для фольгированного текстолита при напряжении 600 В согласно этому ГОСТ
+
avatar
  • ksiman
  • 02 января 2018, 19:08
0
Ну, как-бы да :)
+
avatar
  • ksiman
  • 02 января 2018, 19:59
+2
согласно этому ГОСТ
Можно глянуть буржуйский МЭК, там тоже много чего есть
МЭК 60065-2005
+
avatar
0
А вторички. А интересно, в блоках питания у трансформаторов между первичной и вторичной обмоткой какая развязка?
+
avatar
  • ksiman
  • 02 января 2018, 19:35
0
Нормально сделанный трансформатор легко выдерживает требуемое напряжение изоляции
+
avatar
0
Сейчас куча китайских блоков питания (для телефонов) в очень маленьких корпусах. Что то я сильно сомневаюсь что там 1.5 КВ изоляция.
+
avatar
  • ksiman
  • 02 января 2018, 19:55
0
Фирменные зарядки имеют такую изоляцию
+
avatar
0
Склонен не верить. Слишком мелкие корпуса и трансформаторы. Либо 5 мм это гораздо больше изоляция чем 1.5 КВ. Что то вообщем подозрительно
+
avatar
  • ksiman
  • 02 января 2018, 20:14
+1
Выпаяйте такой трансформатор и разберите — там обмотки не доходят до сердечника на 2-3мм
+
avatar
0
А между собой тоже 2-3мм?
+
avatar
  • ksiman
  • 02 января 2018, 20:57
+2
Там плёнка лавсановая в 3 слоя, она держит 25кВ/мм
+
avatar
+1
Что то вообщем подозрительно
У Датчанина каждый обзор БП заканчивается замерами линейкой. ))
www.lygte-info.dk/info/indexUSB%20UK.html
+
avatar
  • ksiman
  • 02 января 2018, 22:31
+1
Он ещё мегомметром проверяет изоляцию:)
Причём иногда даже на внешне приличном монтаже тест не проходит, например
lygte-info.dk/review/USBpower%20Valueline%20Micro%20USB%20AC%20charger%20VLMP60891B10%20UK.html
+
avatar
0
lygte-info.dk/review/USBpower%20Monie%201.5A%20usb%20charger%20UK.html
Зазор 2...2.5 мм прошел тест на 2830v
+
avatar
0
Немытая плата и/или грязный или плохо сделанный трансформатор
+
avatar
  • Z2K
  • 03 января 2018, 04:33
0
Я делал 77 заказ, приемник метеорологических карт для траулеров и сейнеров Балтики и Северной Атлантики. Испытание — морской туман. Соленая вода. Не так страшен черт. :)
+
avatar
  • urfin
  • 02 января 2018, 13:20
+1
u3712, разводка симистра стандартная зазор в 0,4 для него безопасен иначе бы расстояние ножек у него было бы больше. 0,4 мм это > 400 вольт на пробой. 1 мм уже киловольт.
+
avatar
  • u3712
  • 02 января 2018, 13:33
+1
Вы бы посмотрели, как разводят корпус ТО220 в таких включениях. И барьеры пилят и термоусадку надевают и, простите за нескромность, средний вывод отводят.
Впрочем, это еще не самое противное в плате. У автора между выводами сети (а не тиристора) расстояние 0.6(+0.6) мм. Малейший всплеск в сети и выгоревшая розетка.
+
avatar
  • yurok
  • 02 января 2018, 13:37
0
откройте любое устройство с таким симистором, там будет точно такой же монтаж, если не особых требований.

по расстоянию — там вообще 0.9 — ниже скрины
+
avatar
  • ksiman
  • 02 января 2018, 13:43
+3
Малейший всплеск в сети и выгоревшая розетка.
У автора на плате тщательно рассчитанные воздушные разрядники для защиты от импульсных перенапряжений :)
+
avatar
  • Rokko
  • 02 января 2018, 16:33
0
Цыган жжет ))
+
avatar
  • yurok
  • 02 января 2018, 13:29
0





все в пределах допусков, а если плату покрыть лаком, то вообще об этом и думать нечего
+
avatar
  • Kartus
  • 02 января 2018, 14:27
+1
не выкладывайте это на всеобщее обозрение — кто-то повторит и он может пострадать
Естественный отбор, бро, — основной эволюционный процесс))) С детства мамы детей учат — не тянуть в рот что попало и не совать пальцы куда получается)))
+
avatar
  • Z2K
  • 02 января 2018, 18:34
+2
есть правила, которые вы ОБЯЗАНЫ выполнять
— Вы наверное знаете эти правила. Дайте ссылку на ГОСТ.
+
avatar
  • yurok
  • 02 января 2018, 14:30
+1
фотка с народного блока питания, выше такой используется в паяльной станции (да и много где используется)

расстояния меньше, чем в моей платке, а напряжения выше. Для того чтоб контакты не замкнули — нарисованы полоски )
+
avatar
+1
– Мам, там пацаны с крыши прыгают, можно я с ними пойду?
– А если все будут с кры… FATAL SYSTEM ERROR
+
avatar
  • yurok
  • 02 января 2018, 15:36
+1
имеется ввиду, что такие расстояния вполне допустимы и используются повсеместно
+
avatar
+2
Я имел ввиду, что брать китайский БП за эталон я бы не стал.
+
avatar
  • yurok
  • 02 января 2018, 15:43
+1
да это просто пример — попался под руку, много где такой стоит
расстояния на плате все в пределах допустимых — непонятна нервность народа :)
+
avatar
0
Народ свою нервность обосновал.
Если бы ты запитал всё от высоковольтной цепи и не делал бы саму возможность разницы потенциалов (вынос пинов проводами и внешнее низковольтное питание), то все претензии по расстояниям снялись бы моментально.
+
avatar
  • Z2K
  • 02 января 2018, 21:17
0
не делал бы саму возможность разницы потенциалов
— а где разность потенциалов? Цепи гальванически развязаны. Между ними нет разности потенциалов.
+
avatar
0
Уважаемый тролль. Возможность разности потенциалов
+
avatar
  • Z2K
  • 02 января 2018, 22:03
0
Возможность разности потенциалов есть всегда между телами котрые не соединены хорошим проводником.
+
avatar
  • Z2K
  • 02 января 2018, 18:55
0
непонятна нервность народа :)
на сетевом напряжениии будет работать. Критики говорят — если там импульс 3кВ, а 10кВ, а если молния и 200кВ. Так что, делать электроприборы для квартиры расчитанные на устойчивость к таким импульсным перенапряжениям? Или если такие импусные перенапряжения случаются ставить варисторную защиту на входе? Первого, второго уровня.
Конечно помехи приходят не только по вводу. Но это помехи уже другой интенсивности и мощности и ноуты не уходят в перезагрузку от выключения двигателя компрессора холодильника.
+
avatar
0
Вот взял плату из выброшенного канадского кинескопного телевизора.
Дежурное питание на маленьком железном трансформаторе. Основное питание на импульсный БП включается с помощью реле. На входе стоит предохранитель, потом два разрядника, common mode choke, два X2 конденсатора на землю и два варистора параллельно им и один варистор в толстой силиконовой оболочке на питании. Дураки наверное, сэр
+
avatar
  • Z2K
  • 02 января 2018, 23:11
0
в 3УСТ так же, кроме возможно «варистор в толстой силиконовой оболочке на питании». Но при чем же «Дураки наверное, сэр». Многие бытовые приборы не включаются сетевой кнопкой, а сигнальной, а вот потом подключение силовий части может быть как реле так и тведотельным реле (которое в стиралке идет с черным радиатором посколько там тен 1.5-1.8кВт). У меня стиралка лдж. термопот, кофеварка на тведотельном. Но может и ошибаюсь насчет другой техники и техники в США — там 110В и ток в 2 раза больше. Тиристоры там не катят.
+
avatar
  • Z2K
  • 02 января 2018, 18:44
+2
Можно посмотреть БП (мейд ин чайна) которым комплектуется айфон (опять же китайский). :)
Как то получается все что сделано — сделано в китае.
+
avatar
  • urfin
  • 02 января 2018, 12:51
0
Автор а вы правильную схему привели — на симистор точно с 6 ноги управление с оптопары. Всегда думал, что с 4 0_0.
И по печатке у вас управление идет с 4 ноги. И если уж занудствовать то и в схеме у вас не ваттный резюк указан в снаббере, а 0,25. В обвязке резюков симистра тоже не указана ватность 2 других, а они тоже не менее поувата должны быть. Эхххе.

И да по зазорам для управления маломощной нагрузки все в норме, для лампочек и меньше можно сделать.
+
avatar
  • ksiman
  • 02 января 2018, 13:15
+1
Выводы 4 и 6 MOC абсолютно равнозначны
+
avatar
  • yurok
  • 02 января 2018, 13:16
0
значения там не имеет какой вывод, но поправил как в доке к моку…
а мощность указана в тексте к схеме
+
avatar
+1
За обзор — спасибо!

Но, боюсь, вынужден буду присоединиться к предыдущим ораторам: как в части защиты входов, так и в части топологии платы. 2мм расстояние между выводом контроллера (резистор R5) и выводом силового тиристора лично мне кажется не очень удачным решением. Фактически, только оно отделяет сетевое напряжение от всей остальной низковольтной части, включая то, что будет подключено к управляющим входам.
+
avatar
0
P.S. Если габариты платы являются ключевым параметром, возможно, имеет смысл расположить элементы (резисторы) с обеих сторон платы, и тем самым выгадать место на широкий hot/cold раздел?
Лишней толщины это не добавит — резистор не сильно толще высоты пайки выводных компонентов.
+
avatar
  • yurok
  • 02 января 2018, 13:38
0
там все в пределах допусков, не понятна паника
+
avatar
+1
Паника, увы, основана на богатой ремонтной практике.
Неизбежная пыль плюс не менее неизбежная влага рано или поздно способны одарить сюрпризом, тем более что здесь полноценного-то пробоя вовсе не надо ждать, достаточно нескольких ма утечки…

Есть у 3063 7.5 мм расстояния между рядами «горячих» и «холодных» ног — и хорошо, и не надо нигде делать меньше. Такое вот частное мнение.
+
avatar
0
Вроде bta16 snabberless…

Ну и цена конечно велика у attiny очень
+
avatar
  • yurok
  • 02 января 2018, 14:09
+1
даже snabberless версии симисторов (способных выдержать высокое dU/dt) — зачастую используют со снабберной цепью, но они далеко не все среди bta16 такие, а только те что оканчиваются на W, мой такой маркировки не имеет
+
avatar
+1
Ну так то хуже от снаббера ещё ни когда не было. Просто элементы его уж очень здоровые.

Для полного счастья не хватает детектора ноля. С ним и диммировать можно было бы.
+
avatar
  • ksiman
  • 02 января 2018, 14:24
0
Давайте сразу превратим немного умное реле в полоумное с дистанционным программированием и управлением по Wi-Fi :)
+
avatar
0
Точно, и лучше заменить аттини на esp8266
+
avatar
  • yurok
  • 02 января 2018, 14:31
+1
это будет иное устройство )
стабильности работы esp8266, к сожалению, далеко до тиньки. Я бы не стал его использовать в таких решениях
+
avatar
0
У меня часы на esp8266 работают давно уже. Проблем со стабильностью не заметил;)

Конечно если стабильность (надежность) считать по количеству транзисторов то 8 битные микроконтроллеры выигрывают
+
avatar
  • yurok
  • 02 января 2018, 15:04
0
у меня тоже давно работают — я даже тут обзор делал
но иногда перезагружаются
+
avatar
0
Это не в esp дело;)
Ну скорее всего. Мои вот
m.geektimes.ru/post/289389/

Эх жаль я тогда про ESP8285 не знал.
+
avatar
  • dSave
  • 02 января 2018, 15:19
0
esp8266 можно использовать вместо Ардуино Нано в вашем обзоре. Если нужно, конечно.
+
avatar
  • yurok
  • 02 января 2018, 15:29
0
можно, тут не важно
+
avatar
  • dSave
  • 02 января 2018, 15:32
0
да, а в самом реле, я бы конечно ESP8266 не стал ставить. Аттини самое то!
+
avatar
+1
Но цена же у тинек дикая…
Почему они вам нравятся?
Не понимаю.
+
avatar
+2
Потому что проще в разы, все ходы-выходы, экономия энергии, работа с таймерами и другие «подводные камни» давным-давно уже обсосаны и исследованы.
На все чихи написано ни по одной библиотеке, и качественных сред разработки — как минимум — 3.

Это Вам не STM, где камней на каждом повороте — ворох, мануал загадочен и малопонятен, а мощности и наворотов хватает, чтобы сделать автономный дрон с нейросетью и грабежом караванов.

Однако кол-во базовых примеров (как и библиотек) — так мало, что в большинстве случаев приходится ваять все самому.

По-этому для рапид-прототайпинга и для неболших проектов тиньки — самое оно.
Вы будете заниматься решением задачи, а не пытаться понять, какого х… в прерывании по DMA запортилась ячейка, которая вроде и портится не должна была, и вообще DMA в другой адрес писал :)

Для простых устройств атмеловские процы — отличное решение.
Для сложных — да, можно уже копать STM.

Других вариантов практически на рынке и нет (пик не в счет — сдох давным-давно).
+
avatar
0
А как же stm8?
Например stm8s003 10 штук 250 рублей.
+
avatar
0
ATMEL делает их своим коммьюнити и кол-вом готовых примеров — как я уже выше написал.
Ну и даже STM8 сложнее Тиньки :) И да — у него есть свои плюсы (энергопотребление и цена, например), но для обычного человека все это не упирается.

P.S. У младших тинек 8 ног, а минимальное кол-во ног у младших STM было 20 ЕМНИП — еще одна сложность. 8 ножный DIP куда проще в монтаже. Может сейчас что и поменялось у STM — не в курсе.
+
avatar
0
Ну комьюнити конечно мощная штука, не спорю.

Недавно выпустили STM8S001 soic 8. Но пока не очень доступно. Мне больше всех нравится корпус qfn20 3x3мм.
+
avatar
0
Вы только имейте в виду, что Atmel уже нет с нами. А насколько долго Microchip будет поддерживать линейку, прямо конкурирующую с его продукцией — тот еще вопросец…
+
avatar
0
Там бизнес, а не бабушки на лавочке — пока деньги приносит (а оно популярно и приносит) — будет и поддержка. Проблем не вижу.
+
avatar
  • Z2K
  • 02 января 2018, 19:22
+1
да. да — mySKU.me/blog/aliexpress/59223.html#comment2435715
— сожрали б-дяди конкурента
+
avatar
  • Z2K
  • 02 января 2018, 19:20
0
атмеловские процы
— нету вашего атмела (анекдот про красную кнопку :) )
+
avatar
0
Атмел есть и здравствует, но да — он был куплен компанией Microchip.
Такое частенько случается в бизнесе.

Процы выпускаются, иде пилится, средства разработки продаются.

Юмора не понял.
+
avatar
  • Kartus
  • 02 января 2018, 19:34
+1
нету вашего атмела
Видишь суслика? А он есть!)))
+
avatar
  • Z2K
  • 02 января 2018, 19:26
0
Потому что проще в разы
— уже простота дорого стоит, а будет еще дороже. Такое впечатление что сремблирование пластины и корпусирование главные составляющие себестоимости ИС. :(
+
avatar
  • dSave
  • 02 января 2018, 15:56
0
StainlessSoul уже исчерпывающе ответил )
Только STM32 не так плох, как мне кажется. Так же очень надежный камень, и очень мощный.
+
avatar
  • yurok
  • 02 января 2018, 14:24
0
тут как раз лучше в нуле включать, а диммировать современные лампы не сильно хорошо выходит, да и у меня такой необходимости нет

а снаббер при желании можно не ставить
+
avatar
0
Вы имеете в ввиду светодиодные? У них на упаковке указывается диммируемые или нет;)
+
avatar
  • yurok
  • 02 января 2018, 14:35
0
я знаю — но диммируемых не так много среди ходовых
если нужно диммировать — я делаю так :):
mySKU.me/blog/aliexpress/45432.html
+
avatar
0
Так не честно. Там не 220v ;)
+
avatar
  • yurok
  • 02 января 2018, 14:42
+2
ну реально ведь, диммировать 220 которое будет преобразовываться в постоянку — не правильно, тогда уже преобразовать а потом диммировать
+
avatar
0
)) да так то я согласен;)
+
avatar
  • Z2K
  • 02 января 2018, 19:32
0
именно, 220 в освещении — прошлый век
+
avatar
  • ksiman
  • 02 января 2018, 19:36
0
Да ну?
+
avatar
  • Z2K
  • 02 января 2018, 20:44
+1
Официально сообщаю Вам — УГУ. Решением ООН для защиты детей от поражения током, суицида и рекламы гомосексуализма переходим на низковольтное питание осветительных приборов 12В и не больше. :)
+
avatar
  • ksiman
  • 02 января 2018, 20:46
+1
А почему только осветительные сети? Давайте и розетки переводить на безопасные напряжения :)
+
avatar
  • Z2K
  • 02 января 2018, 21:27
0
Мощность не та. Если б только телефонными зарядками пользовались то можно было бы пробывать.
+
avatar
  • d_averk
  • 02 января 2018, 13:46
0
Я не понял, итоговая стоимость одной платки с учетом платки, распаянных элементов какова?
+
avatar
  • Z2K
  • 02 января 2018, 19:33
0
Так же как и научиться рисовать сову. Начинаем с двух кружечков.
+
avatar
0
Как научиться делать такие приборы и другие всякие волшебные штуки?
+
avatar
  • ksiman
  • 02 января 2018, 15:19
0
всякие волшебные штуки?
Это уже магия :)
+
avatar
  • Dimon_
  • 02 января 2018, 17:01
+6
Как научиться делать такие приборы и другие всякие волшебные штуки?
Отвечаю без шуток.

Для начала:
1. Борисов В.Г. «Юный радиолюбитель»;
2. Сворень Р.А. «Электроника шаг за шагом»;
3. Хоровиц П., Хилл У. «Искусство схемотехники»;

Можно добавить ещё.
4. Е. Айсберг: «Радио — это очень просто» и «Транзистор — это очень просто»;
5. Р. Токхейм «Основы цифровой электроники»;

Потом (с накопленной базой знаний и пониманием) уже читать конкретно по микроконтроллерам, но там уже всё будет достаточно просто: и интернета будет хватать, со всеми форумами, конференциями, примерами и уроками.
+
avatar
+1
Спасибо огромное! А то прям душа к этому тянется, а как подступиться к этой теме было не ясно. Теперь понятно как сделать первые шаги. Спасибо ещё раз!
+
avatar
  • ACE
  • 02 января 2018, 19:59
+2
К выше названным книгам добавлю ссылку на уроки от DiHalt'а. Очень просто и понятно. Читать с самых старых статей к новым. Лично мне очень сильно помогли в свое время.
+
avatar
  • AndrVU
  • 02 января 2018, 21:22
+1
Доставила интерпретация закона Ома в виде канализации, где
несущееся по трубам говнище – полезная нагрузка.
)))))
+
avatar
  • AndrVU
  • 02 января 2018, 22:25
0
..., что иллюстрирует приведенный недавно рисунок
mySKU.me/blog/aliexpress/59220.html#comment2434648
+
avatar
  • Z2K
  • 02 января 2018, 19:39
0
уже читать конкретно по микроконтроллерам
— если только это, то знания вышеуказанных книг не очень то нужны. Можно начинать прямо с ардуины.
+
avatar
  • Dimon_
  • 02 января 2018, 20:34
+2
Можно начинать прямо с ардуины.
Не соглашусь.
Если человек не очень понимает, когда говорят «ногу ардуины подтягиваем к плюсу внешним сопротивлением, а кнопкой её прижимаем к земле», если человек не знает, чем последовательное соединение светодиодов отличается от параллельного, что такое гасящий или токоограничивающий резистор, и как ключевым каскадом умощнить вывод ардуины, то всё-таки гораздо важнее сначала чуть-чуть окунуться в теорию.
Нет, я не призываю полностью сушить себе мозги, но понимание об элементарных вещах (хотя бы о n-p переходе или, скажем, о законе Ома для участка цепи) иметь-таки надо… Это тот багаж, который не тянет за плечами.
+
avatar
  • Z2K
  • 02 января 2018, 21:38
0
чем последовательное соединение светодиодов отличается от параллельного
— да, часто бывает и такое. Но это больше пробелы школьного образования или жизнерадостновосприимчивого (наплевательского) отношения к обучению. Когда с лекции вышел, а мозги такие чистые-чистые и свободные, дышится легко и ничего с этого маразма за прошлые полтора часа в твоих светлых мозгах и не осталось.
Конечно, если нет среднешкольного образования то надо это восполнить, а потом долбить ардуино.
+
avatar
  • ksiman
  • 02 января 2018, 20:44
0
Можно начинать прямо с ардуины.
А потом удивляться, почему оно нормально не работает :)
+
avatar
  • Z2K
  • 02 января 2018, 21:40
0
Значит ошибся в копипасте. Ударил на лишнюю клавишу. Надо просто повторить. :)
+
avatar
  • ksiman
  • 02 января 2018, 21:45
0
Нет, просто вместо светодиода подключил полезную нагрузку, например утюг :)
+
avatar
  • Z2K
  • 02 января 2018, 21:51
+1
подключил полезную нагрузку, например утюг :)
— ну в этом случае сперва надо подключить хотя бы свой миниатюрный мозг :)
+
avatar
0
1. Борисов В.Г. «Юный радиолюбитель»;

5. Р. Токхейм «Основы цифровой электроники»;
И вы это все читали?
Теперь стоит почитывать даташиты, иногда.
+
avatar
  • Dimon_
  • 03 января 2018, 14:49
+2
1. Борисов В.Г. «Юный радиолюбитель»;
И вы это все читали?
Я это читал, когда мне было десять лет. А страна в очередной раз смотрела балет по первой программе из-за очередного генсека. Если не понимаете, о чём я, то не важно, — кому надо, тот поймёт.

И, да, любому, кто собирается оперировать словами «даташит», в десять-двенадцать лет я советую начинать читать Свореня и Борисова.
+
avatar
0
Я это читал, когда мне было десять лет.
Видать, это было очень давно…
А «даташитами» надо не оперировать, а использовать данные из них.
+
avatar
  • Dimon_
  • 03 января 2018, 15:42
0
балет по первой программе
Видать, это было очень давно…
Видать-видать… Но, уже вижу по контексту, ориентир был не очень «ваш» и для вас совсем неинформативен. Ок, проехали и забыли.
А «даташитами» надо не оперировать, а использовать данные из них
Ой, спасибо за науку, добрый человек. Я действительно благодарен и признателен.
Но я стойко подозреваю ситуацию, когда ооциты с известковой оболочкой передают информацию и навыки банкивской джунглевой птице. Хотя орнитология довольно далека от электроники и темы разговора…
+
avatar
0
балет по первой программе
Бредите?
Я про управление полевыми тр-рами с P-каналом.
Хотя это, видать, тоже не ваше.
+
avatar
  • Z2K
  • 03 января 2018, 22:02
0
Я про управление полевыми тр-рами с P-каналом.
— что-то не нашел Ваш коммент обэтом в этом посте.
+
avatar
  • Dimon_
  • 03 января 2018, 22:28
0
Это было в другом треде, но я понял, о чём речь. Там речь шла о том, что я по привычке TTL-логики к выходному пину микроконтроллера подходил как к выводу с открытым коллектором. Что, объективно, было не очень корректно с моей стороны, поскольку вывод современного контроллера более сложен, и в отдельных случаях надо учитывать ряд нюансов.
+
avatar
  • Z2K
  • 03 января 2018, 23:34
0
Понятно, спасибо. Дайте ссыль.
+
avatar
  • Dimon_
  • 04 января 2018, 02:46
0
Дайте ссыль.
Тут. Но самое верное — разделять силу и ноги микроконтроллера оптронами.
+
avatar
  • Z2K
  • 04 января 2018, 11:31
0
Разделять оптронами — накладно получается и компонентов много, размер увеличивается. Но для спецнадежных решений наверное надо.
+
avatar
  • dSave
  • 02 января 2018, 15:22
+1
Спасибо за обзор! Очень ценная идея! ))) Еще одна от вас в копилку!
У меня до сих пор лежит трансформатор для точечной сварки, все никак времени не найду заняться им. Плата ваша нравится очень.
+
avatar
  • Z2K
  • 02 января 2018, 19:41
+2
до сих пор лежит трансформатор для точечной сварки
— вангую — на самом деле она Вам не нужна. Вам это только кажется что нужна.
+
avatar
  • dSave
  • 02 января 2018, 20:25
0
острой необходимости нет, это точно. Но что это меняет? )
+
avatar
  • Z2K
  • 02 января 2018, 21:30
0
Есть желание — делайте. Лично меня раздражает то, что я сделал и не пользуюсь. Хочется с глаз долой такую штуку.
+
avatar
  • dSave
  • 02 января 2018, 22:48
0
Наверное я менее раздражительный ) Меня мои поделки радуют.
+
avatar
  • Yuu
  • 03 января 2018, 19:52
0
та же фигня =) лежит транс, часть деталей уже закуплена, но пока не дошли лапы до сборки =)
+
avatar
  • Oregu
  • 02 января 2018, 22:19
0
А зачем в этом коде первая строчка?
pinMode(bt_pin, INPUT);
pinMode(bt_pin, INPUT_PULLUP);
Разве просто второй строки недостаточно для инициализации порта с подтяжкой к питанию?
+
avatar
  • yurok
  • 02 января 2018, 22:22
+1
Есть один момент, не все контроллеры могут подтягивать и бывает, что вместо этого стоит пустая функция — с этого момента осталась привычка так писать

в данном случае, первое можно убрать
+
avatar
  • Oregu
  • 02 января 2018, 22:50
0
Ага, теперь понял. Спасибо за информацию. А не подскажете, какие именно из среды ардуино не «подтягиваются» из атмелов?
+
avatar
  • yurok
  • 02 января 2018, 23:09
0
если честно уже и не помню
+
avatar
0
А возможно гербер файл выложить? Охота тоже собрать парочку таких штук.
+
avatar
  • yurok
  • 03 января 2018, 14:13
+1
я хочу немного доработать платку и обязательно выложу
+
avatar
  • ksiman
  • 03 января 2018, 14:16
0
:)
+
avatar
0
Жду тогда обновления статьи.
+
avatar
  • kai2
  • 03 января 2018, 21:16
0
Здрасте. С новым годом! Скажите, как под другой контроллер скетч адаптировать? Спасибо.
+
avatar
  • yurok
  • 03 января 2018, 23:15
0
приветствую! спасибо, Вас тоже с новым годом!
просто изменить пины и будет работать!
+
avatar
  • SAA12
  • 04 января 2018, 20:47
0
А по прерываниям никто не пробовал ATTINY85 заставить работать?
+
avatar
  • yurok
  • 04 января 2018, 21:57
0
Делал — работает норм — как и другие контроллеры
+
avatar
  • ybxtuj
  • 05 января 2018, 06:10
0
зачем заказывать изготовление плат в китае?
ладно бы оно было еслиб выходило дешевле чем самому вытравить но за два бакса…
да ещё ждать потом
а если не прийдёт
то снова ждать