По этому мой пост будет содержать как бы общие рекомендации...
Вариант №1

Довольно неудобный вариант, по этому пользоваться им можно только при малом числе кнопок. К тому же, не поддерживает одновременное нажатие нескольких кнопок.
Дополнительное неудобство - расчёт номиналов резисторов. Он хоть и простой, но нудный. И расчитать смогут, как мне кажется, только радиолюбители с хорошим стажем... Да и потребуется много разных резисторов.
Если ни одна из кнопок не нажата, то на выходе постоянно стоит напряжение 5В.
Вариант №2

Этот вариант является развитием первого варианта, но он, благодаря применению источника тока, позволяет упростить расчёт номиналов резисторов и увеличить стабильность заданных уровней.
Источник тока выполнен на транзисторах VT1 и VT2 и резисторах Ro, R5. Ток задаётся резистором Ro по формуле I=0.55/Ro. Благодаря стабильному току шкала получается линейной, по этому все резисторы теперь могут быть одного номинала, что сильно упрощает расчёт и уменьшает ассортимент применяемых номиналов резисторов.
Например, при токе 0,5мА, одинаковых резисторах на 2КОм и 5 кнопок получается 5 комбинаций напряжения с шагом 1В (подписаны под кнопками).
Скажем, при нажатой кнопке, подписанной как "3V", ток 0,5мА протекает через резисторы R1, R2 и R3 с общим сопротивлением 2+2+2=6КОм. В результате на выходе при этом будет напряжение 0,5мА*6КОм=3В.
Так как ток стабильный, то это выходное напряжение поддерживается на выбранном уровне даже при нестабильном напряжении питания (например, при питании от батарей).
При отжатых всех кнопках на выходе выставляется напряжение 5В.
Недостаток такой же, как и у первого варианта - нельзя комбинировать нажатие нескольких кнопок одновременно. Но он компенсируется стабилизатором тока, позволяющим выбрать мелкий шаг и поставить больше кнопок.
Например, при разрядности АЦП 1023 получается шаг, примерно 5мВ. Возьмём запас 10мВ для уверенного перекрытия шагов и при максимальном выходном напряжении, например, 4,5В получим число комбинаций 4500мВ/10мВ=450 штук. И кнопок - 449 ... При токе 1мА общее сопротивление всех резисторов должно быть 4,5В/1мА=4,5КОм, а сопротивление каждого резистора 4500Ом/449=10,022Ом.
Берём стандартное значение 10Ом и уточняем...
Шаг = 10Ом*1мА=10мВ. При количестве резисторов 449 штук общее напряжение будет 1мА*10Ом*449=4490мВ=4,49В.
При отпущенных кнопках на выходе будет 5В - значение, показывающее, что кнопки не нажаты.
Вариант №3

Этот вариант позволяет использовать комбинации нажатия кнопок, получая при этом не повторяющиеся значения напряжений. Правда потребуется комбинация резисторов с двоичным шагом. Расчёт и параметры схемы точно такие же, как и во 2-м варианте. Просто при меньшем числе кнопок можно получить больше комбинаций. Например, 5 кнопок дают 32 не повторяющиеся комбинации.
Недостаток этого варианта в разных резисторах. Но не обязательно поддерживать строгую двоичную зависимость, а резисторы можно комбинировать. Например, для приведеной схемы можно взять следующие резисторы: 1КОм, 2КОм, 3,9КОм, 8,2КОм, 16КОм. Резистор на 16КОм можно взять из двух последовательных на 8,2КОм. Резистор на 4КОм можно построить либо из двух параллельных на 8,2КОм или двух последовательных на 2КОм. И т.д...
Вариант №4

Более сложный вариант, но, как и 3-й, поддерживает комбинацию нажатий кнопок. Построен как ЦАП, по этому используется резисторная матрица R-2R и требуется всего два номинала резисторов для любого количества кнопок. В примере - 5 кнопок, обеспечивающих 32 комбинации.
Микросхема - логические инверторы (74HC04, 74HC14 и др.)
Наверно, можно ещё придумать какие-то варианты...