"Arduino. Сага о кнопках v.2.0" https://yadi.sk/d/nXvEorbUjf3oX посвящена главка "Песнь кнопки сладкоголосой". Там всё из жизни. :))
Ёкарный бабай! Писал человек, писал, вроде, всё разумно, а тут с 42-ой страницы, на тебе ... борьба с переполнением миллис! Да ещё и ссылка [14] на совершенно безграмотный код на эту же тему :-(
«Вот те раз! Нельзя же так!»
А так всё хорошо начиналось :-(
Миллисы вставлены в версию 2.0 под давлением общественности в ходе обсуждения. :)) Читайте исходную версию "Arduino. Сага о кнопках" https://yadi.sk/i/VjfxWUTWjPQfW там про кнопки всё есть, а про миллисы ничего нет. :))
Я несколько раз встречался с неисправностью герконов - просто залипают. Но это не ваш случай.)
часто встречающаяся проблема, и причин как правило две
1) залипание контактов от протекающего тока - как раз случай при неправильной реактивной нагрузке, подгорают заряжая/ разрежая конденсаторы, да и катушки индуктивности "подпаливают контакты" который потом пропадает...
2) самое печальное - намагничиваются и "примагничиваются" если ток "достаточный" греются и сплавляются. да и обращения требуют нежного...
хороший пример для рассмотрения, но механическая кнопка насколько более надежный прибор - ниже время переключения, больше усилие на пробой окислов, ниже время переходных процессов.
не знаю зачем написал... но может кого заставит задуматься... если кому вообще интересно.
С моими не понятно. Скорее всего вырабатывали ресурс, однако я бы ещё понял если бы не замыкали... Но ток минимальный, т.к. ус-ва с микропотреблением. Начинали залипать после нескольких лет эксплуатации. После щелбана может ещё работать какое то время, потом опять...
часто встречающаяся проблема, и причин как правило две
1) залипание контактов от протекающего тока - как раз случай при неправильной реактивной нагрузке, подгорают заряжая/ разрежая конденсаторы, да и катушки индуктивности "подпаливают контакты" который потом пропадает...
Да. Сам на это неоднократно попадал, хотя никак не ожидал ввиду малости напряжений и емкостей. Один пример. Контроллерный модуль дискретных выходов на герконовых реле. Шкафным монтажем сделана мудрёная аппаратная логика "и-или". Несколько конденсаторов емкостью 22н (зачем они были - уже не помню). Напряжение питания =24 В. Контакт геркона, замыкавший предварительно заряженный конденсатор, подваривался. На заводских испытаниях приходилось обстукивать реле, а конденсаторы срочно выкусывать из готового устройства.
Гриша пишет:
2) самое печальное - намагничиваются и "примагничиваются" если ток "достаточный" греются и сплавляются. да и обращения требуют нежного...
Следя за параметрами контактов, люди обычно забывают о допустимых параметрах магнитного поля. Если даже однократно "наддать тока в катушку", геркон можно банально испортить. Классические электромагнитные реле в этом смысле гораздо выносливее.
Гриша пишет:
...хороший пример для рассмотрения, но механическая кнопка насколько более надежный прибор - ниже время переключения, больше усилие на пробой окислов, ниже время переходных процессов. не знаю зачем написал... но может кого заставит задуматься... если кому вообще интересно.
Мой опыт говорит о другом. Для сравнимых по параметрах коммутации слаботочных кнопках (а их множество видов) время переключения меньше у герконов, окисная пленка на контактах не образуется ввиду их герметичности, ресурс по количеству срабатываний больше. Если говорить о клавиатуре то в советских ЭКВМ (настольных калькуляторах) "Искра" клавиатура была комбинированная. Механическая часть: пластик + металлическая цилиндрическая пружина, подвижный постоянный магнит. Контактная группа - геркон. Эта клавиатура выдерживала бухгалтерии и учебные аудитории в ВУЗах. После разрушения самой машинки клавиши ещё работали и работали во всяких самоделках, выгодно отличаясь от их чисто механических более молодых аналогов.
Задание из #42 (точнее #39) что-то никто не захотел решать. Всё нужно делать самому))
Схема для наглядности. Считаем, что конденсатор и резистор припаяны к выводам кнопки и составляют одно целое. Тестировал на макетке.
Без С1 и R3 схема не будет работать. R1 необязателен на короткой линии. Достаточно внутренней подтяжки. С1 пробовал от 80 нФ до 500 нФ.
#define PIN_SWITCH 2
word currMillis, prevMillis, intervalMs = 40;
byte counterCycle, prevStateKey=1, currStateKey;
void setup() {
pinMode(PIN_SWITCH, OUTPUT);
Serial.begin(115200);
}
void loop() {
currMillis = (word)millis();
if (currMillis - prevMillis >= intervalMs) {
prevMillis += intervalMs;
if ((counterCycle & 1) == 0) { //проверка цепи концевика на обрыв
pinMode(PIN_SWITCH, INPUT_PULLUP);
counterCycle++;
byte error = digitalRead(PIN_SWITCH);//1-нет контакта, обрыв линии
if (error) {
digitalWrite(PIN_SWITCH, LOW);//откл.подтяжку
pinMode(PIN_SWITCH, OUTPUT);
counterCycle++;
Serial.println("NOT circuit");
}
}
//чтение состояния концевика через 20 мс. Обрыва линии нет.
else {
byte currStateCircuit = 0;
currStateCircuit = digitalRead(PIN_SWITCH);
if (currStateCircuit) { // 1 -кнопка отпущена, кондер зарядился
if (prevStateKey == 0) { //только что оппущена
prevStateKey = currStateCircuit;
Serial.println("button was released");
}
} else { // 0 - КЗ в линии или нажата кнопка
pinMode(PIN_SWITCH, OUTPUT);//выход в 1
delay(2);//если КЗ нет, то кондер зарядится через 100 Ом
currStateCircuit = digitalRead(PIN_SWITCH);//
if (currStateCircuit == 0) { //всеж КЗ в линии
Serial.println("short circuit");
} else { //кнопка нажата, конденсатор зарядился
currStateKey = 0;
if (prevStateKey){ //была отпущена
prevStateKey = currStateKey;
Serial.println("button was pressed");
}
}
}
counterCycle++;
digitalWrite(PIN_SWITCH, LOW);//откл.подтяжку
pinMode(PIN_SWITCH, OUTPUT);
}
}
}
Парни, а я ведь лоханулся с кодом... Сегодня после обеда прилег на диван и чето мне эта схема в голову пришла. Прокрутил мысленно код - так ведь проверка на КЗ не должна работать!! А какже я вчера сам тестировал и все работало??
Блин... так я пин коротил на землю до резистора в 100 Ом !! Пин мои издевательства выдержал!!
Так что для проверки линии на КЗ скетч нужно подправить.
Схема для наглядности. Считаем, что конденсатор и резистор припаяны к выводам кнопки и составляют одно целое. Тестировал на макетке.
зачем конденсатор рядом с кнопкой?
Pyotr, понимаешь, это уже какая-то хрень ради хрени.
Все эти подтяжки конденсаторы и т.д. выбираются с учетом предполагаемой помеховой обстановки, и конденсаторы ВСЕГДА ставятся на приемном конце линии, т.к. линия это антенна.
Так же и вопрос буферов. нужны - ненужны, может где-то на огороде, дома или в пределах девайса и не нужны, а если неподалеку разряжаются конденсаторы размером с дом, так кроме оптоволокна ничего не спасет, ни буфера, ни кабеля с двойным экранированием.
Ёкарный бабай! Писал человек, писал, вроде, всё разумно, а тут с 42-ой страницы, на тебе ... борьба с переполнением миллис! Да ещё и ссылка [14] на совершенно безграмотный код на эту же тему :-(
«Вот те раз! Нельзя же так!»
А так всё хорошо начиналось :-(
Миллисы вставлены в версию 2.0 под давлением общественности в ходе обсуждения. :)) Читайте исходную версию "Arduino. Сага о кнопках" https://yadi.sk/i/VjfxWUTWjPQfW там про кнопки всё есть, а про миллисы ничего нет. :))
Я несколько раз встречался с неисправностью герконов - просто залипают. Но это не ваш случай.)
часто встречающаяся проблема, и причин как правило две
1) залипание контактов от протекающего тока - как раз случай при неправильной реактивной нагрузке, подгорают заряжая/ разрежая конденсаторы, да и катушки индуктивности "подпаливают контакты" который потом пропадает...
2) самое печальное - намагничиваются и "примагничиваются" если ток "достаточный" греются и сплавляются. да и обращения требуют нежного...
хороший пример для рассмотрения, но механическая кнопка насколько более надежный прибор - ниже время переключения, больше усилие на пробой окислов, ниже время переходных процессов.
не знаю зачем написал... но может кого заставит задуматься... если кому вообще интересно.
С моими не понятно. Скорее всего вырабатывали ресурс, однако я бы ещё понял если бы не замыкали... Но ток минимальный, т.к. ус-ва с микропотреблением. Начинали залипать после нескольких лет эксплуатации. После щелбана может ещё работать какое то время, потом опять...
часто встречающаяся проблема, и причин как правило две
1) залипание контактов от протекающего тока - как раз случай при неправильной реактивной нагрузке, подгорают заряжая/ разрежая конденсаторы, да и катушки индуктивности "подпаливают контакты" который потом пропадает...
Да. Сам на это неоднократно попадал, хотя никак не ожидал ввиду малости напряжений и емкостей. Один пример. Контроллерный модуль дискретных выходов на герконовых реле. Шкафным монтажем сделана мудрёная аппаратная логика "и-или". Несколько конденсаторов емкостью 22н (зачем они были - уже не помню). Напряжение питания =24 В. Контакт геркона, замыкавший предварительно заряженный конденсатор, подваривался. На заводских испытаниях приходилось обстукивать реле, а конденсаторы срочно выкусывать из готового устройства.
Следя за параметрами контактов, люди обычно забывают о допустимых параметрах магнитного поля. Если даже однократно "наддать тока в катушку", геркон можно банально испортить. Классические электромагнитные реле в этом смысле гораздо выносливее.
Мой опыт говорит о другом. Для сравнимых по параметрах коммутации слаботочных кнопках (а их множество видов) время переключения меньше у герконов, окисная пленка на контактах не образуется ввиду их герметичности, ресурс по количеству срабатываний больше. Если говорить о клавиатуре то в советских ЭКВМ (настольных калькуляторах) "Искра" клавиатура была комбинированная. Механическая часть: пластик + металлическая цилиндрическая пружина, подвижный постоянный магнит. Контактная группа - геркон. Эта клавиатура выдерживала бухгалтерии и учебные аудитории в ВУЗах. После разрушения самой машинки клавиши ещё работали и работали во всяких самоделках, выгодно отличаясь от их чисто механических более молодых аналогов.
хороший пример для рассмотрения, но механическая кнопка насколько более надежный прибор
Друзья, всем спасибо. В своем варианте пришел к интервалу опроса 200 мсек, как к самому комфортному.
Друзья, всем спасибо. В своем варианте пришел к интервалу опроса 200 мсек, как к самому комфортному.
О_О
Для эстонских парней вполне.)
хороший пример для рассмотрения, но механическая кнопка насколько более надежный прибор
неудачно выразил мысль, на кнопку можно посильнее надавить и она еще несколько раз сработает, пока контакты не переломаются.
Задание из #42 (точнее #39) что-то никто не захотел решать. Всё нужно делать самому))
Схема для наглядности. Считаем, что конденсатор и резистор припаяны к выводам кнопки и составляют одно целое. Тестировал на макетке.
Без С1 и R3 схема не будет работать. R1 необязателен на короткой линии. Достаточно внутренней подтяжки. С1 пробовал от 80 нФ до 500 нФ.
Похоже на транзистор тестер в момент измерения что же там подключено.
Друзья, всем спасибо. В своем варианте пришел к интервалу опроса 200 мсек, как к самому комфортному.
вот так, спрашивал спрашивал, все в среднем советовали 10-20, ну максимум 50 - а он выбрал 200 :)
чего, спрашивается. спрашивал тогда?
Парни, а я ведь лоханулся с кодом... Сегодня после обеда прилег на диван и чето мне эта схема в голову пришла. Прокрутил мысленно код - так ведь проверка на КЗ не должна работать!! А какже я вчера сам тестировал и все работало??
Блин... так я пин коротил на землю до резистора в 100 Ом !! Пин мои издевательства выдержал!!
Так что для проверки линии на КЗ скетч нужно подправить.
зачем конденсатор рядом с кнопкой?
Pyotr, понимаешь, это уже какая-то хрень ради хрени.
Все эти подтяжки конденсаторы и т.д. выбираются с учетом предполагаемой помеховой обстановки, и конденсаторы ВСЕГДА ставятся на приемном конце линии, т.к. линия это антенна.
Так же и вопрос буферов. нужны - ненужны, может где-то на огороде, дома или в пределах девайса и не нужны, а если неподалеку разряжаются конденсаторы размером с дом, так кроме оптоволокна ничего не спасет, ни буфера, ни кабеля с двойным экранированием.