Перейти к содержанию

Примеры кода для AVR


Duhas

Рекомендуемые сообщения

та я ж не против

но вот а чем дело,

мой энкодер напрочь отказывается отказывать

как Вы объясните этот феномен?

11 минуту назад, Alexeyslav сказал:

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

если Вы для устранения отпаяли конденсаторы, то я ржу

Реклама в подписи запрещена !

 

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Не, ну мне конечно пофигу... проблемы-то с энкодером будут у вас а не у меня.

Похоже на подход китайцев - сейчас работает и ладно, а что будет через месяц их не волнует абсолютно.

Ещё раз говорю, с кондерами на контактах это этап пройденый 30 лет назад, от него отказались. Но остались упоротые которые постоянно вытаскивают это неудачное решение и ходят по граблям. То что оно у вас работает - это лишь исключение, в подавляющей массе конструкций такой подход приводит к проблемам в будущем. И почему-то в промышленных энкодерах такой подход не используют, а зачем-то применяют дорогие ПЛИС-ы. Вот ведь, жируют... можно же обычные конденсаторы поставить и никаких проблем.

Кстати, что я должен увидеть по ссылке? какой-то набор тем по паяльной станции... о чем они?

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

ПЛИС для подавления дребезга? :clapping:

Не думал, что для жирного варианта подавления дребезга нужно что-то кроме 2 лог. элементов (2И-НЕ или 2ИЛИ-НЕ), пары резисторов и кондёра (сам я кнопку шунтирую кондёром).

 

Изменено пользователем Darth_Vader
Ссылка на комментарий
Поделиться на другие сайты

А не проще от дребезга избавляться с помощью прерываний от таймера, раз в 50-100мсек опрашивать кнопки и выставлять флаги. Ну уж на худой конец, для оооочень начинающих, делей использовать. Нахрезачем куча обвязки вокруг кнопок? 

На форуме целая тема есть посвящённая кнопкам и антидоебезгу, с примерами кода как для авр так и для стм 

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

11 час назад, Viktor26 сказал:

А не проще от дребезга избавляться с помощью прерываний от таймера, раз в 50-100мсек опрашивать кнопки и выставлять флаги. Ну уж на худой конец, для оооочень начинающих, делей использовать. Нахрезачем куча обвязки вокруг кнопок? 

На вкус, на цвет. Мне проще конденсатор поставить и не усложнять алгоритм антидребезгом.

Ссылка на комментарий
Поделиться на другие сайты

И укатать контакты довольно быстро до совсем плохого состояния, когда даже антидребезг помогать не будет.

Да только вот "опросом кнопок" с заданным интервалом с энкодером не поработаешь. Самый лучший способ - отрабатывать фазы энкодера ПЛИС-кой, но это самый дорогой способ и применяется скорей к энкодерам высокого разрешения в промышленных станках, ибо там скорости работы контроллера тупо не хватает чтобы успевать за испульсами и они пропускают шаги, а на станке ЧПУ это чревато накоплением ошибки. Следующий по надёжности способ - обрабатывать сигнал с енкодера контроллером через прерывания, отслеживая фазы состояний, но есть серьёзное ограничение по скорости вращения энкодера - иначе прерывания не будут успевать отрабатывать и соотвествтенно пропускать шаги, особенно если обработчики написаны на ЯВУ и к примеру в ардуине. Там могут проблемы начаться даже при обычной скорости вращения(человеком).

Давить же дребезг енкодера конденсаторами - самое последнее дело что вообще можно применить. Давно обсосано это решение и признано неработоспособным и ненадёжным. Но почему-то находятся люди которые ходят и ходят по граблям, ну ничего - шишки тоже полезны.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

Ну про станки я согласен, там конечно аврка не успеет, если говорить о станках с высокой скоростью. Как правило высокая точность станка делает его медленным. Что если ставить энкодер не на мотор а на редуктор? Да и в высокоскоростных станках его можно через редуктор подключать. А для поделок на коленке с применением энкодера из автомагнитолы, хватит и делея (но не рекомендую) . 

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

  • 3 месяца спустя...
 int SensorValue2 = analogRead (a2); 
  buttonState = digitalRead(BUTTON);
  if (SensorValue2 = 0 && buttonState == HIGH) 
  {
    digitalWrite(RELAY, HIGH); 
  }    
  else 
  {
    digitalWrite(RELAY, LOW);
  }

Где тут ошибка? =( не работает. По условию если нет на входе потенциала реле при нажатие и удержание кнопки срабатывает, если потенциал есть или появился, реле сразу должно отключится и не срабатывать при нажатие на кнопку до исчезновения напряжения.

Изменено пользователем v1r0n
Ссылка на комментарий
Поделиться на другие сайты

int a2 = 2;           // Аналоговый вход 2

int sensorValue2 = 0;  // Переменная для хранения значения.

Что то я никак не пойму как он отличает, что int sensorValue2 = 0;  это не аналоговый вход 0.

Хотя правильно написать просто  int sensorValue2 ;

Изменено пользователем v1r0n
Ссылка на комментарий
Поделиться на другие сайты

6 минут назад, v1r0n сказал:

Что то я никак не пойму как он отличает, что int sensorValue2 = 0;  это не аналоговый вход 0.

Для этого надо понимать как функция AnalogRead работает, что является её аргументом, а что значением.

Кстати кнопка на + замыкается?

А еще при отладке кода полезно инфу со значениями выводить в консоль.

Изменено пользователем semic
Ссылка на комментарий
Поделиться на другие сайты

33 минуты назад, semic сказал:

Для этого надо понимать как функция AnalogRead работает, что является её аргументом, а что значением.

Кстати кнопка на + замыкается?

А еще при отладке кода полезно инфу со значениями выводить в консоль.

1) Попытаюсь разобраться в ближайшее время. Ну допустим, 2 пин замкнут на землю, SensorValue2  значение 0, должно же работать.

2) Да на + и стягивающий резистор тоже не забыл.

3) Serial.println(SensorValue2); Пользуюсь, смотрю, вижу 0.

все перестает работать как только я добавляю  "if (SensorValue2 = 0 && buttonState == HIGH) " в условие.

Ссылка на комментарий
Поделиться на другие сайты

7 часов назад, v1r0n сказал:

3) Serial.println(SensorValue2); Пользуюсь, смотрю, вижу 0.

все перестает работать как только я добавляю  "if (SensorValue2 = 0 && buttonState == HIGH) " в условие.

Всё же верно. Вы же ПРИСВАИВАЕТЕ ЗНАЧЕНИЕ SensorValue2, а не сравниваете.

Всё-таки попробуйте вот так написать :)

if ((SensorValue2 == 0) && (buttonState == HIGH))

 

Ссылка на комментарий
Поделиться на другие сайты

Аналоговый результат AnalogRead() может быть равен не точно "0", а чуть больше нуля из-за шума или сдвига АЦП. То есть при замкнутом входе аналоговое значение может быть 1 или 2, например.

Поэтому лучше бы проверять так:

if (SensorValue2 < 10 && buttonState == HIGH)

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

Ссылка на комментарий
Поделиться на другие сайты

17 минут назад, Yurkin2015 сказал:

можно без дополнительный скобок.

В этом примере, да, можно.

Но если приучить себя ставить скобки (возможно ненужные в каком-то конкретном месте) можно избавить себя от неожиданных танцев по граблям.

Я ставлю скобки.

Изменено пользователем Darth_Vader
Ссылка на комментарий
Поделиться на другие сайты

  • 3 месяца спустя...

Вообщем так гуру программного кода. Сделал я умную прозвонку (ака аркашка, ака моргас). Но опыт эксплуатации показал что не все было учтено. Требовалось: измерять напряжение, с чем она хорошо справлялась (1 режим), при нажатии на кнопку, при условии отсутствия напряжения перещелкивалось реле и измерялось уже сопротивление (2 режим). Все бы было хорошо, но не учел одного. Так уж сложилось что моя профессия связана с релейкой, и часто бывает что прозванивая контакт при его размыкании может появиться напряжение. Если в этот момент ардуино измеряло сопротивление она моментально  сгорает. Что можно сделать от такого режима работы, программно я думаю ничего не получится, т.к просто не успеет. Надо думать что то с обвязкой ардуино.

Ссылка на комментарий
Поделиться на другие сайты

13 часа назад, v1r0n сказал:

Требовалось: измерять напряжение, с чем она хорошо справлялась (1 режим), при нажатии на кнопку, при условии отсутствия напряжения перещелкивалось реле и измерялось уже сопротивление (2 режим).

Не в пику вам, а просто к слову: когда-то очень давно делал я что-то очень похожее... Напряжение, частоту позволяло "прикинуть на глазок", как генератор меандра могло работать... На счет прозвонки уже не помню, но и додумать не проблема...

Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...