Моделирование в протеусе

Добрый день. Имею проблему с моделированием в Протеусе аналоговых входов. После компиляции скетч подкидываю в модель, после запуска идут ошибки предупреждения по адресам, методом эксперементов определил что это не связано со Skale и Шимом. Нужно просто регулировать шим потенциометром. Извиняюсь может где то описано решение но найти не смог. На учебных роликах в железе работает. Где может быть нестыковка.?

Ответить
Matveyct
Рядовой
Сообщения: 3
Зарегистрирован: 30.11.2020{, 03:45}
Репутация: 0
Имя: Матвей

Моделирование в протеусе

#1

Сообщение Matveyct » 30.11.2020{, 09:40}

Добрый день. Имею проблему с моделированием в Протеусе аналоговых входов. После компиляции скетч подкидываю в модель, после запуска идут ошибки предупреждения по адресам, методом эксперементов определил что это не связано со Skale и Шимом.
Нужно просто регулировать шим потенциометром. Извиняюсь может где то описано решение но найти не смог. На учебных роликах в железе работает. Где может быть нестыковка.?

Аватара пользователя
RedSky
Лейтенант
Сообщения: 574
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 72
Откуда: Днепропетровск
Имя: Алексей

Моделирование в протеусе

#2

Сообщение RedSky » 30.11.2020{, 10:45}

Нужно подключить питание 5в и землю.

Matveyct
Рядовой
Сообщения: 3
Зарегистрирован: 30.11.2020{, 03:45}
Репутация: 0
Имя: Матвей

Моделирование в протеусе

#3

Сообщение Matveyct » 30.11.2020{, 15:05}

Итак все подключено. Приведу скрины пока не идет. Пробовал другой вариант кода также не работает.
Шим работает только его регулировка кнопками цифровым сигналом

Думаю надо контроллер как нибудь, сконфигурировать в протеусе на аналог.
Вложения
Screenshot_20201130-235030.jpg
вариант кода.
IMG_20201130_230108.jpg
стек сообщений
IMG_20201130_230136.jpg
модель
IMG_20201130_234952.jpg
модель Протеуса

Аватара пользователя
RedSky
Лейтенант
Сообщения: 574
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 72
Откуда: Днепропетровск
Имя: Алексей

Моделирование в протеусе

#4

Сообщение RedSky » 30.11.2020{, 15:14}

Matveyct писал(а):
30.11.2020{, 15:05}
Итак все подключено
AVCC не подключен. Это питание ацп.
Какие настройки контроллера в IDE? Как установлены фьюзы в протеусе?

Отправлено спустя 5 минут 24 секунды:
Для масштабирования нужно использовать функцию map, или просто делить на 4.
А так шим всегда будет "0" (temp*0.25) т. к. temp целое число.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Моделирование в протеусе

#5

Сообщение Dryundel » 30.11.2020{, 16:51}

Matveyct, Вам реально требуется голая Atmega 328, или Вы моделей Arduino не нашли?

aidar_i
Полковник
Сообщения: 3122
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 675
Откуда: Уфа
Имя: Айдар
Контактная информация:

Моделирование в протеусе

#6

Сообщение aidar_i » 30.11.2020{, 17:00}

Где проект в Протеус? И проект в FLPROG тоже нужно выкладывать, а не картинки. Что Вы там в настройках поставили в атмеге?
В Протеус есть атмега с обвязкой под Ардуино.
Под названием темы нужно писать короткое сообщение, а не все сообщение копировать и туда ставить.

Labu559
Лейтенант
Сообщения: 359
Зарегистрирован: 25.01.2018{, 22:23}
Репутация: 95
Откуда: Bukovyna
Имя: Василий

Моделирование в протеусе

#7

Сообщение Labu559 » 30.11.2020{, 21:14}

Здравствуйте ув.Matveyct,
Matveyct писал(а):
30.11.2020{, 15:05}
Думаю надо контроллер как нибудь, сконфигурировать в протеусе на аналог.
Правильно думаете. По скринам: нужно в setup() прописать что-то на счёт Вашего А0 типа (ссылка)

Код: Выделить всё

pinMode(A0, INPUT);
Конфигурировать пин 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.
Успехов! :)

Matveyct
Рядовой
Сообщения: 3
Зарегистрирован: 30.11.2020{, 03:45}
Репутация: 0
Имя: Матвей

Моделирование в протеусе

#8

Сообщение Matveyct » 01.12.2020{, 14:55}

Dryundel, Aidar_i
Большое спасибо. Решение было на поверхности. Поставил библиотеки Arduino в Proteuse.
С темой согласен не сразу понял.
По кодам буду постепенно осваивать программы. Это все таки частичка первого проекта на Arduino. Оновной почти доделал
Fl Prog это хорошо но коррекцию уже делать в коде.
Еще раз всем спасибо

Ответить

Вернуться в «Wiki»