При такой системе голосования - самым важным парнем на деревне будет программист, кого захочет - того и выберет председателем
![Валяюсь от смеха](images/smilies/icon_biggrin.gif)
.
Предлагаю 4-х проводную систему:
1. провод ЗА
2. провод ПРОТИВ
2. провод ВОЗДЕРЖАЛСЯ
4. провод GND
На пультике 3 кнопки и DS1990, который кнопками и подключается к нужной линии. На компе 3 считывателя линии i-button, можно индикацию проголосовавших мест, чтоб народ видел - голоснул он или нет. Недостаток - жмем кнопку долго - пока все далласы опросятся - тем более они мешать друг другу будут, зарядка внутреннего кондера.
Оптимальный вариант - так как пультики все равно придется ваять, пихаем простенькую схему на микропроцессоре, протокол CAN - в однопроводном варианте, реализация програмная. Его достоинства - отсутствие конфликтов на шине, высокая достоверность данных - используется СRC16. Все умещается в 2 кило памяти - например ATTyni2313(30-50 руб), обвязка - кварц, несколько резисторов конденсаторов, транзистор, стаб на 5вольт. Трехпроводная линия:
1. BUS
2. +12 v
3. GND
Так как протокол двунаправленный и мультимастер, возможно сделать множество примочек. Например светодиоды в пультах, началось голосование - красный, нажал кнопочку - моргает красный, информация дошла до компа - моргает зеленый, голосование завершено - зеленый. Кто где сидит - председатель зачитывает список с компа, названый нажимает кнопку на своем пульте - загорелся зеленый, система запомнила местоположение, количесво присутствующих и т.д..
вариант типа куча проводов - матрица кнопок, затратен при реализации и обслуживании, например кишки от клавы - 100 клавиш/3кнопки = 33 места + километр проводов и проблемы помехоустойчивости, нет обратной связи.