Здравствуйте ув.
Matveyct,
Matveyct писал(а): ↑30.11.2020{, 15:05}
Думаю надо контроллер как нибудь, сконфигурировать в протеусе на аналог.
Правильно думаете. По скринам: нужно в setup() прописать что-то на счёт Вашего А0 типа
(ссылка) Конфигурировать пин 6 (или другой), как вывод ШИМ для analogWrite() нет необходимости. Если крайние выводы Вашего потенциометра подключены к Gnd и Vcc, то указывать analogReference(DEFAULT) тоже нет необходимости, оно (опорное напряжение) и так принято по умолчанию. Так как аналоговые сигналы с А0 и ШИМ являються беззнаковыми целочисленными значениями 0...1023 (10 бит), 0...255 (8 бит), соответственно, то analogRead(analogPin) перерассчитывается для analogWrite(pwmPin, temp) как:
Код: Выделить всё
byte temp = (byte(analogRead(A0)>>2)); analogWrite(6, temp);
Выбор 6 пина для вывода ШИМ сигнала не слишком удачный - цитирую
отсюда : "...На выводах 5 и 6 генерируется ШИМ-сигнал с коэффициентом заполнения большим, чем заданное ожидаемое значение. Это происходит в результате взаимодействия с функциями millis() и delay(), которые используют тот же внутренний таймер, что применяется для генерирования ШИМ-сигнала. Данный эффект более ярко выражен при малых значениях задаваемого коэффициента заполнения (0 - 10) и может проявляться в неполном выключении выводов 5 и 6 при коэффициенте равном 0..." ещё одна ошибка у Вас- рассчёт производится для типа float (1023.0/255.0), а запись делаете в переменную типа int. Как видите выше достаточно типа byte temp.
Успехов!