Приведите схему с номиналами компонентов. Укажите тип контроллера.
И излогайте свои мысли более четко, а то выражение "в микроконтроллере логическая единица не 0, а где-то 2 вольта" никуда не вяжется. И кто такая "одна" и "другая", которые что-то на себя тянут?
Цитата
Скажите пожалуйста, как выйти из этой ситуации? Как сделать так, чтобы когда нужен ноль на выходе контроллера был 0. А когда высокий был высокий.
Для этого не нужно перегружать пины контроллера.
Для примера, у меги64 (при питании 5В), при входном/выходном токе 20 мА напряжение поднимается/просаживается на 0,5В.
То есть если пин подтянуть к питанию резистором ~220 Ом и на порт подать лог."0", (здесь "тестируем" входной ток, sink) то напряжение на пине будет не 0, а ~0,5В
А если пин притянуть к земле и подать лог."1", то напряжение будет 5 - 0,5 = 4,5В.
У страрых авр-ок пины к тому же не были симметричны. Т.е. они не могли выдать большой ток по лог."1", и напряжение на выходе просаживалось на 0,5В уже при токе 4 мА (у АТ90S8535)
Детальнее по нагрузочной способности пинов авр контроллеров - в разделе Typical Characteristics -> Pin Driver Strength даташита (графики I/O PIN SINK CURRENT vs. OUTPUT VOLTAGE и I/O PIN SOURCE CURRENT vs. OUTPUT VOLTAGE )