Для того, чтобы рассматривать разные цвета, вводится коридор запрещённых уровней. То есть, например, больше 3.5В - единица, менее 0.5В - ноль. Или как-то еще. Попробовать надо и уровни подобрать, чтоб на разных цветах работало. Ну и дизайнера проинструктировать, конечно, чтобы баркод бледно-жёлтым не делал, а делал контрастным. Т.е. как есть у вас требования к макету, так должны быть и требования к баркоду.
Про 0 и 1 - скорее наоборот. Белый - света много - 1. Чёрный - света мало - 0. Либо инвертировать.
Кстати, с АЦП можно и самокалибровку предусмотреть:
не было не фига - не фига (точнее засветка паразитная от ламп, окон и т.д.) - пошёл какой-то сигнал, отражённый от коробки - усредняем - считаем фоном. Пошёл сигнал уровнем ниже - усредняем - считаем чёрным. Конечно, в этом случае должен быть усилитель, который вы предварительно настроите. Чтобы без коробки, с коробкой, с баркодом отличались. Чем больше отличаются, тем лучше.
Про алгоритм, ща нарисую вам баркод и сигналы, раз не понимаете.
Про 8МГц: напишете программу, прикинете сколько тактов она выполняется, прикинете минимальную тактовую частоту.
В принципе, и красивые картинки - тоже ваша задача. Равно как и измерения.
А как будуте усреднять - ваша задача, как разработчика. То ли программно, то ли ФНЧ поставите...