Управлять яркостью светодиода с помощью потенциометра без кода, а также считывать значение потенциометра?
Я только возвращаюсь к электронике и начал поиграться с созданием собственной коробки для кнопок.
Я пытаюсь управлять яркостью светодиода с помощью потенциометра, одновременно считывая значение потенциометра с помощью аналогового вывода Arduino. Я хочу ограничить количество контактов, которые я использую для чего-либо, потому что у меня есть много кнопок, которые нужно будет подключить, поэтому я пытаюсь управлять светодиодом без какого-либо кода.
Я собрал следующую схему (извините, не самую аккуратную из моих схем. Я также использую Pro Micro, а не Leonardo, но я не думал, что это будет иметь какое-то значение :)).
В какой-то степени это работает. Я могу регулировать яркость светодиода с помощью pot, и я получаю показания на Arduino от pot, однако показания не растут линейно, как я ожидал бы. Кажется, что он достигает примерно 500 из 1023 при 4/5 вращения, а затем подскакивает до 1023 в течение последних 1/5.
Может ли кто-нибудь объяснить, почему это происходит, и возможно ли вообще сделать то, что я пытаюсь?
Заранее спасибо!
@HectorBart, 👍1
Обсуждение4 ответа
Лучший ответ:
Спасибо за все предложения.
В конце концов, я заказал несколько двухпозиционных потенциометров, как предложил jsotola, и Меженко подтвердил, что они будут работать. Сейчас они отлично работают в моей схеме.
Еще раз спасибо!
jsotola уже сделал несколько хороших замечаний.
Типы потенциометров
(обновлено из-за комментария Маенко):
Обратите внимание, что существует три типа горшков:
- Логарифмический (с именем A<значение>K, например, A50K для логарифмического банка 50K)
- Линейный (с именем B<значение>K, например, B50K для линейного банка 50K)
- Резерв логарифмический/ экспоненциальный (с именем C<значение>K, например, C50K для резервного логарифмического банка 50K)
Сопоставление значений
Однако в коде вы можете сопоставить значение из банка с любым другим значением, даже с логарифмическим / линейным на что угодно, используя логарифмические или другие функции, доступные в C / C ++.
Сдвиговые регистры
Кроме того, чтобы уменьшить количество выводов, необходимых для кнопок, вы можете использовать регистры сдвига. Наиболее известным является 74HC595 для вывода, и в вашем случае вам нужен входной регистр сдвига, который равен 74HC165, см., Например https://dronebotworkshop.com/shift-registers / или https://playground.arduino.cc/Code/ShiftRegSN74HC165N /
На самом деле, если быть педантичным, существует три типа банка: линейный, логарифмический и обратный логарифмический. Звуковые горшки на самом деле являются обратными логарифмическими. Экспоненциальный, если хотите., @Majenko
@Majenko Спасибо за комментарий, однако я везде читал, что звуковые горшки / конусы - это тип., @Michel Keijzers
Да, a для аудио. Бревенчатые конусы встречаются редко. Более распространены обратные логарифмические аудиозаписи., @Majenko
@Majenko, спасибо за разъяснение. Я никогда раньше не слышал о типах C, я использовал A для гитарной педали (никогда не заканчивал, но многому научился)., @Michel Keijzers
Вам нужно "буферизировать" потенциометр, чтобы отделить его от светодиода и резистора. Простейшей схемой для этого является повторитель напряжения с единичным коэффициентом усиления с операционным усилителем:
Вы хотите выбрать операционный усилитель "Rail to Rail I / O", чтобы он мог работать вплоть до 0 В и вплоть до 5 В, в противном случае вы будете обрезать верхнюю и нижнюю границы диапазона потенциометра.
Итак, вы используете операционный усилитель для создания "жесткого" переменного напряжения от делителя напряжения, чтобы нагрузка светодиода не влияла на показания АЦП? Хотел бы я, чтобы мои аналоговые электронные устройства были покрепче., @Duncan C
Стоит отметить, что вы должны быть уверены, что используете линейный банк. Бревенчатый горшок дал бы очень хорошие результаты., @Duncan C
В принципе, да. Потенциометр - это всего лишь ориентир для операционного усилителя для создания собственного выходного сигнала с более низким импедансом., @Majenko
А затем токоограничивающий резистор пропускает больший или меньший ток в зависимости от входного напряжения, изменяя таким образом яркость светодиода. Мне это нравится., @Duncan C
Резистор в основном преобразует напряжение в предсказуемый ток по закону Ома., @Majenko
Да, эту часть я понимаю., @Duncan C
@Majenko Спасибо за это объяснение, я почитаю об операционных усилителях, поскольку раньше с ними не сталкивался. Означает ли это, что предложение jsotola использовать кастрюли с двумя банками не работает? Я не очень хорошо знаком с аналоговой электроникой, так что простите меня, если я что-то неправильно понял., @HectorBart
Банк с двумя банками будет работать нормально, но если вы не хотите его использовать (или не можете достать банк нужного типа), тогда лучше использовать буфер., @Majenko
@Majenko Спасибо, я заказал несколько из них, поэтому я сообщу здесь, как только у меня все заработает., @HectorBart
Я удивлен, что горшок сохранился до сих пор. Светодиоды - это устройства тока, а не устройства напряжения. Описанные выше схемы будут работать в какой-то степени, но не очень хорошо. Вам необходимо изменять ток либо с помощью регулируемого источника/ приемника тока, либо с помощью ШИМ.
- Как добавить потенциометр и дополнительные кнопки к пользовательскому игровому контроллеру?
- Остановить мигание светодиодов
- Потенциометр 10 кОм против резистора 10 кОм на ЖК-дисплее
- Что произойдет с ардуино, если не использовать резистор со светодиодом?
- Как подключить LCD i2c, используя только контакты A0 и A1 (приведены SDA, SCL, GND и VCC)
- RGB LED с помощью потенциометра и кнопки
- Затемнение нескольких светодиодов с помощью потенциометра
- Как подключить почти 450 светодиодов к Arduino, не потребляя слишком много тока?
резистор и светодиод расположены параллельно с горшком .. простое наличие резистора в параллельном соединении приводит к нелинейности... кроме того, светодиод не является линейным, поэтому его "сопротивление" меняется в зависимости от величины протекающего через него тока, @jsotola
если вы хотите получить линейный отклик при чтении, то используйте два объединенных горшка, @jsotola
и вообще, зачем ты это делаешь?, @jsotola
Вы могли бы попробовать провести светодиод через МОП-транзистор. Если вы правильно подберете параметры, чтобы МОП-транзистор оставался в своей линейной области, я думаю, это должно сработать. Затвор МОП-транзистора практически не пропускает ток, поэтому он не должен мешать измерению через A0., @chrisl
@jsotola Спасибо, что объяснили это. Я заказал несколько кастрюль с двумя банками, чтобы попробовать это., @HectorBart