Эмуляция контроллера Arduino Uno в Proteus
- Войдите на сайт для отправки комментариев
Втр, 15/12/2015 - 12:06
Доброе время суток. помогите начинающему ...Ардуина пока летит из Поднебесной, а пока решил сємулировать ее в Протеусе. Написал Хелоуворд в виде светодиода на 13-м пине - все отлично работает, все мигает. Написал управление пином через кнопку - пример из учебника :
int ledPin = 13; // светодиод подсоединен к цифровому выводу 13 int inPin = 7; // кнопка подсоединена к цифровому выводу 7 int val = 0; // переменная для хранения считанного значения void setup() { pinMode(ledPin, OUTPUT); // конфигурируем цифровой вывод 13 как выход pinMode(inPin, INPUT); // конфигурируем цифровой вывод 7 как вход } void loop() { val = digitalRead(inPin); // считываем значение со входа digitalWrite(ledPin, val); // выводим на светодиод уровень сигнала на кнопке }
результат - пока не нажал на кнопку - светодиод не горит , нажал на кнопку - зажегся ... ОТПУСТИЛ кнопку - горит ... КАК ?
почему горит ?? баг эмулятора ? очень интересно ... он не считывает состояние кнопки при сл. шаге цикла ...
кнопка нажата
кнопка отжата
забыли резистор подтягивающий 7 пин на VCC 10К
пробовал .. так вообще не понятно что .. с резистором на 7 пине не пропадает сигнал вообще
на номинал R1 не обращайте внимание - поменял на 10К
слово подтягивающий говорит о том, что надо соеденить вывод 7 через резистор с плюсом питания, а кнопку на землю
забыли резистор подтягивающий 7 пин на VCC 10К
А не земле? Там разве кнопка у него не на Vcc выведена?
не совсем понимаю... параллельно кнопке ?? тогда там сигнал будет вечно ...
разве на пин , который как INPUT мы не подаем питание ?
А не земле? Там разве кнопка у него не на Vcc выведена?
там не подписано
в первых картинках было не подписано, дополнил пост #3
можно и наоборот , кнопку к плюсу, резистор к массе, главное чтобы пин в воздухе не был при отжатой кнопке
не совсем понимаю... параллельно кнопке ?? тогда там сигнал будет вечно ...
разве на пин , который как INPUT мы не подаем питание ?
Два варианта:
1.
Кнопку одним концом на землю, а другим на пин. От того места, где кнопка соединяется с пином идёт резистор 10-20К на Vcc.
2.
Кнопку одним концом на VCC, другим на пин. От того места, где кнопка соединяется с пином идёт резистор 10-20К на Землю.
В первом варианте: кнокпа не нажата - на пине HIGH, нажата - на пине LOW
Во втором варианте - наоборот.
Два варианта:
1.
Кнопку одним концом на землю, а другим на пин. От того места, где кнопка соединяется с пином идёт резистор 10-20К на Vcc.
2.
Кнопку одним концом на VCC, другим на пин. От того места, где кнопка соединяется с пином идёт резистор 10-20К на Землю.
В первом варианте: кнокпа не нажата - на пине HIGH, нажата - на пине LOW
Во втором варианте - наоборот.
шайтан-машина !!!! заработало по второму варианту ... СПАСИБО!
если не сложно- расскажите, зачем пин на землю сажать ?
если не сложно- расскажите, зачем пин на землю сажать ?
Вы уверены, что протеус - это ваш инструмент?
если не сложно- расскажите, зачем пин на землю сажать ?
Представьте себе, что Вы НЕ посадили пин на землю, а кнопка разомкнута.
Что имеем: провод от пина идёт к кнопке и на ней просто обрывается (она же разомкнута!), т.е. проводок не подключён ни к чему - болтается в воздухе.
В этом случае он (провод) по сути является антенной для помех. У Вас где-то рядом проходят провода домашней электросети, которые прилично излучают, где то работает микроволновка, мобильник. Атмосферное электричество тоже никто не отменял. Так вот Ваш проводок всё это ловит как антенна - и если он что-то поймает (например, Вы свою руку рядом с ним пронесёте) контроллер воспримет это как нажатие кнопки.
Если же он подключён к земле, всё пойманные им помехи благополучно уйдут в землю, т.к. сопротивление резистора 10-20К, а сопртивление INPUT'а контроллера - кажется 100Мом или вроде того. Понятно, что ток пойдёт туда, где 20К, а не туда, где 100Мом (вернее он, конечно, везде пойдёт, но в пин пойдёт в 5 тыс. раз меньше, чем в землю, ибо закон Ома он и в Африке ...)
Выбор резистора диктуется двумя противоречивыми соображениями. чем меньше - тем надёжнее притянуто, но при этом бОльший ток пойдёт при нажатии кнопки просто от VCC к земле через этот резистор (ведь когда Вы нажимаете кнопку вы по сути соединяете VCC с землёй через этот самый резистор!).
Это вообще, общее правило - провода не должны болтаться в воздухе. Помните об этом всегда и в любых конструкциях.
если не сложно- расскажите, зачем пин на землю сажать ?
Это вообще, общее правило - провода не должны болтаться в воздухе. Помните об этом всегда и в любых конструкциях.
понял, спасибо !
вопрос по теме:
Как в протеусе добавить второе питание? Например есть vcc 24v. а мне надо ещё и 5v, земля общая выходит. Не могу найти в гугле подобный вопрос. Я понимаю что можно ограничится и пятью вольтами, но вот мне для полноты счастья хотелось именно два)
Хоть двадцать два:
MENU -> Design -> Configure Power Rails...
Дык с того и начал!
Проэкт/ конфигурция шин питания/ новый/ имя 24V/ питание 24, класс POWER.
а в "цепи связанные с 24" добавить нечего (фото приложу) и когда на поле добавляю лебду- шину.
то при выборе нету моей 24V.
версия протеуса 7.10 (на 8ой пееходить неть желания, там русика нету)
Дык с того и начал!
Проэкт/ конфигурция шин питания/ новый/ имя 24V/ питание 24, класс POWER.
а в "цепи связанные с 24" добавить нечего (фото приложу) и когда на поле добавляю лебду- шину.
то при выборе нету моей 24V.
Сначала рисуете на схеме все подключения к рельсам, а потом создавайте свою 24 класс POWER.
мда... создал на схеме без имени лейбду- зашел в парметры , не видно моих лейбд, вышел, включил эмуляцию - ошибка. Зашел обратно в параметры шины питания- появилось мои неопознаные лейбды. Связал с 24V - заработало. Гемор еще тот. С проэкта пришлось ардуино удалять чтоб не вылазила ошибка питания. В общим протеус еще то чудо.... Не говоря о корпусах в библиотеке- большая часть тупо матрешки- не эмултся.
Больше похоже, что вы его готовить не умеете. Давно пользую протеус и никогда ничего подобного не наблюдал.
в итоге удалил сам проэкт, ибо по питанию пошли ошибки на всех девайсах. Напутал когда с питанием разбирался.
п.с
понятное дело что не умею. умел бы , не спрашивал как питание добавлять)
Ничего, научитесь.
вы не поняли, проэкт удалил ибо шина питания заглючила основательно. Но никто же не сказал что на этом и все. Проэкт создан поновой , все оптопары и реле работают с мегой. теперь к программе!