Тут правильно описали хотелки мои. Я не хочу использовать ардуино, хочу использовать отдельно микроконтроллер ATmega, модель 128 выбрал потому как мне нужно 3 аппаратных прерывания. я пытался использовать скетч ардуино для заливки в МК. Инструкция для 128 атмеги в инете в итоге 1- остальное перепосты, да, мигать светодидом получилось, но нумерация ножек вообде не совпадает с описаной, и прерывание от кнопки тоже не заработало. Решил что лучше это сделать на си(я не знаю ++ там или нет- мне без разницы, главное что не асемблер). Попутно решил что нужно привлечь грамотного человека чтобы решить не только программную проблему, но и аппаратную. Фотодатчики будут опрашиваться по запросу от кнопок или прерываний- не чаще раза в минуту я думаю, + не более 2шт за раз. Поэтому проблем с производительностью не будет. Двигатели тоже максимум 2 шт за раз будут работать. секунд 5. По поводу мосфетов для двигателей, желательно использовать миниатюрные корпуса, типа sot23( у двигателя ток не большой)- я пробовал управлять ими без шим с ноги ардуино через IRLML00030 - прекрасно работали, коммутировал землю, чтобы обойтись без допоплнительного полевика. Фотодатчики- чтобы не горели постоянно тоже включал P-канальным мосфетом IRLML2244 вроде перед тем как с читать с них значение, после считывание - питание выключал. Транзисторы достаточно мощные стоят по 6 руб. Причем при помощи IrLML2244 я коммутировал нагрузку 2А он кончно грелся до 60-70 градусов, так как не мог своим миниатюрным корпусом все рассеять, но работал стабильно.
Мне хотелось бы что-бы кто-то нарисовал мне принципиальную схему для тех хотелок что я писал выше, остальное мне понятно, подобрал элементную базу по минимальной цене и в минимальном корпусе, написал код на си(примеры реализации нужного мне функционала), разсказал какой программой мне его скомпилить, какие фьюзы поставить для заливки в atmega128a. Собственно все.
Всю логику программы, изготовление платы, монтаж- я сделаю сам- опыт есть.
я конечно не проверял, но вот тут http://arduino.ru/forum/apparatnye-voprosy/sdvigovye-registry-i-shim пишут что вот так :
Если нужен 1 ШИМ на все ноги регистра, то можно извернуться достаточно просто - взять ногу с ШИМом и подклють ее к выводу OE (выбор, включение выходов...) регистра. Тогда все ноги регистра будут переходить в высокоомное состояние вместе с ШИМом на выбранной ноге контроллера. Если же нужны независимые ШИМы, то придется организовывать ШИМ программно в буфере и при каждом изменении любого бита буфера "выплевывать" этот буфер через SPI во внешний регистр. Процентов 50 вычислительных ресурсов процессора убъете гарантировано! Еще сильно зависит от частоты ШИМа. Если занизить, то проц разгрузится, но управлять можно будет только нагревателями
А мне как раз и достаточно что все 8 двигателей будут на одной частоте шима, просто включаться по раздельности.
По поводу частоты шима, то мне по факту нужна возможность программно уменьшить скорость двигателей за счет снижения напряжения на них с 12 до 11-10-9 Вольт