Класс для чтения резисторной клавиатуры

Евгений Петрович, я посмотрел, Вы стараетесь выбрать номиналы из ряда Е24.
Но, скажем, номинал 10к - это на самом деле резистор любой величины в диапазоне от 9.55к до 10.5к, 11к - от 10.5к до 11.5, а 12к - от 11.5к до 12.5к.
В Вашем первом примере - резисторы 11к, 18к, 36к (для дальнейшего этих трех достаточно).
Первый из приведенных согласно допускам может иметь сопротивление 11.5к.
Параллельное соединение двух оставшихся - 12к, т.е. с учетом допусков может быть также 11.5к.
И как мы их различим?
Вывод: должны быть либо подстроечные резисторы, либо каждый резистор - подобранная пара. А потому нет смысла привязываться к ряду Е24.

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

Не стараюсь, а только их и беру.

  1. я исходил из 1%, так что от 9,9 до 10.1
  2. что заставляет Вас думать, что при расчётах я не пользовался вот этой техникой? Вроде, интервалы результатов не пересекались.

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

1 лайк

Так 1% - это Е96, а он не совпадает с Е24. В частности, нет номиналов 18к и 36к.

Так чем вам не угодил R-2R ? Главное преимущество- имеем только 2 номинала сопротивлений.

Спойлер

Найти несколько строгих номиналов ещё и не хуже 1% та ещё задача.

В теме это было, да и лично Вам я на этот вопрос уже отвечал, зачем спрашивать второй раз?

В R2R требуются SPDT кнопки, ТС же хочет обойтись обычными SPST.

Ну, не знаю, никаких проблем с “найти 1%” никогда не испытывал.

И что?

Ну, резисторы то этих номиналов в продаже есть (18к, 36к), так в чём проблема?

И кто запрещает изменить схему подключения кнопок ?
Как то так…

1 лайк

Никто.

Можно, конечно, только зачем? Эта схема же не работает.

Давайте уважать друг друга и не выкладывать того, что сам не проверял, ладно? :confused:

А если GND с VCC местами поменять ?

Большое Спасибо.
Выбрала этот вариант.
За 5 номиналов резисторов, по 100 штук, 228 рублей.
1206 1%. Я стараюсь всегда брать 1%, цена практически такая же.

Вообще-то, заявление:

в ответ на “схема не работает”, достойно быть отлитым в граните.

@Kakmyc, я же Вас просил:

Ну, зачем Вы так?

Не за что.

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

Я как-то одноразово придушил жабу и взял по сотне штук всех номиналов Е24 от 1 ома до 10 мегаом (это была заметная сумма). И с тех пор, как остаётся какого-то номинала менее 20 шт, его докупаю ещё сотню - это уже не дорого. Очень удобно - всегда любой резистор под рукой.

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

1 лайк

Я бы тоже так сделал, если бы нашел такое.
Либо в наборе не все номиналы (почему-то китайцы страшно не любят номинал 11 и кратные ему), либо у продавца можно купить не набор, а отдельные номиналы, но все равно список не полный. В общем, за несколько итераций собрал набор близкий к полному, но менее 10 Ом и более 1 МОма еще остаются пробелы.

Да, я тут немного посчитал (принципиально без привязки к Е24):

R1 = 10000
R2 = 12833
R3 = 18133.8
R4 = 32950.4
R5 = 68547.5

 1	68547.5	130.24	130.24
 2	32950.4	238.182	107.942
 3	22253.3	317.177	78.9947
 4	18133.8	363.619	46.4425
 5	14340.2	420.292	56.673
 6	12833	448.035	27.7433
 7	11696.7	471.5	23.4649
 8	10809.4	491.606	20.1055
 9	9991.75	511.711	20.1055
10	9235.95	531.817	20.1057
11	8139.28	563.97	32.1527
12	7514.87	584.075	20.1055
13	6772.41	609.93	25.8551
14	6119.27	634.644	24.7138
15	5617.77	655.023	20.379

Пояснения:
Во втором столбце суммарное сопротивление подключенных кнопками резисторов,
В третьем столбце - напряжение на R1 в 1023 долях,
В четвертом столбце - разница напряжений между соседними группами, во всех случаях больше, чем 20.1.
1 лайк

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

О каких расчётах речь?

Ну, всяко лучше 19-ти. Закупаем резисторы на

и паяем :slight_smile:

https://forum.arduino.ru/uploads/default/original/2X/5/52e6a59b4dc5f8dd580d59d0b55981d49047e0ba.png
Это