реклама на сайте
подробности

 
 
> Не могу собрать простейшую схему с кнопкой и диодом, Вернее могу, но она работает не так как я расчитывал
alex112
сообщение Apr 16 2012, 15:47
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 14-02-10
Пользователь №: 55 477



Решил начать осваивать программирование на AVR. Была приобретена вот такая вещь (http://www.chipdip.ru/product/me-easyavr6.aspx), был скачен протеус и понеслось.
С примерами что в протеусе, что в макетке проблемм не возникло и решил я чего то напроектировать сам.

В протусе. Взял Atmega16, повесил на ножку B0 кнопку, кнопку кинул на землю. На С0 повесил диод и его тоже на землю кинул. Написал программку:

if (Button(&PORTB,1,1) {
PORTC=0x01;
}
else {
PORTC=0x00;
}
примерно такую, пишу по памяти.

Запускаю симуляцию: нажимаешь на кнопку, диод гаснет, отпускаешь - загорается. Ладно, допустим (хотя почему такое получается? Откуда берется единица на B0?). Пытаемся повторить тоже самое на макетной плате. В приложении фотка как кнопки подключены
http://electronix.ru/forum/style_images/1/.../attach_add.png
переключил J13 на землю, воткнул J18 еще и.... ничего. Вообще никакой реакции. Опять же вопрос, почему в симуляторе работает, а тут нет?

идем дальше, возвращаем на макетной плате все обратно, шьем прошивку и работает все так как и надо -при нажатии на кнопку диод загорается, а при отпускании кнопки - гаснет. Т.е. абсолютно наоборот, нежеле в симуляторе. Но в симуляторе кнопка на землю заведена а в макетке - на питание, я так понимаю.
Тк вот вопрос: где в протеусе этот самый элемент питания? Нашел какой-то INPUT, и вроде даже заработало, но только на один раз - нажал, загорелось и все. Не гаснет после отпускания кнопки.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
bav
сообщение Apr 18 2012, 15:56
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184



1. на кнопку нужен подтягивающий резистор?
2. при нажатии на кнопку, какой логический уровень будет на входе порта?
Go to the top of the page
 
+Quote Post
alex112
сообщение Apr 18 2012, 18:50
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 14-02-10
Пользователь №: 55 477



Цитата(bav @ Apr 18 2012, 19:56) *
1. на кнопку нужен подтягивающий резистор?

наверняка нужен. Только как его рассчитать? Со светодиодом все понятно - у каждого светодиода есть внутреннее напряжение (или как оно зовется), у каждого цвета свое, у красного 2,2В вроде. И есть питающий ток, 15-20мА. Напряжение сети 5В-2,2В и узнаем сколько надо "просадить" резистором. И по закону Ома вычисляем. А с кнопкой как быть?
Цитата
2. при нажатии на кнопку, какой логический уровень будет на входе порта?

Понятия не имею, но почему светодиод загорается когда кнопка отпущена и тухнет когда нажата?
Go to the top of the page
 
+Quote Post
Палыч
сообщение Apr 18 2012, 19:26
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(alex112 @ Apr 18 2012, 22:50) *
наверняка нужен.

Можно включить внутреннюю подтяжку:
Код
PORTB= 0x01;


Цитата(alex112 @ Apr 18 2012, 22:50) *
Понятия не имею, но почему светодиод загорается когда кнопка отпущена и тухнет когда нажата?

Плохо - что не имеете понятия... При нажатии на кнопку: на PB0 - низкий уровень (0), а чтобы загорелся светодиод: на PC0 нужно выдать высокий уровень (1). В соответствии с Вашей программой: на PC0 выдается тот же уровень, что и на PB0. Вот так и получается: нажали кнопку (PB0=0 - низкий уровень) - выдали на PC0 ноль (низкий уровень) - светодиод не горит. И наоборот...
Go to the top of the page
 
+Quote Post
alex112
сообщение Apr 18 2012, 20:32
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 14-02-10
Пользователь №: 55 477



Цитата(Палыч @ Apr 18 2012, 23:26) *
Можно включить внутреннюю подтяжку:
Код
PORTB= 0x01;

а что это дает и зачем нужно? со светодиодом понятно, а тут?

Цитата
Плохо - что не имеете понятия... При нажатии на кнопку: на PB0 - низкий уровень (0), а чтобы загорелся светодиод: на PC0 нужно выдать высокий уровень (1). В соответствии с Вашей программой: на PC0 выдается тот же уровень, что и на PB0. Вот так и получается: нажали кнопку (PB0=0 - низкий уровень) - выдали на PC0 ноль (низкий уровень) - светодиод не горит. И наоборот...

Т.е. уровень мериентся относительно С0? Я думал что для высокого уровня нужно 5В подать....
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- alex112   Не могу собрать простейшую схему с кнопкой и диодом   Apr 16 2012, 15:47
- - kovigor   Цитата(alex112 @ Apr 16 2012, 18:47) if (...   Apr 16 2012, 17:37
|- - alex112   Цитата(kovigor @ Apr 16 2012, 21:37) 1. P...   Apr 17 2012, 06:31
- - Ruslan1   Цитата(alex112 @ Apr 16 2012, 18:47) На С...   Apr 16 2012, 18:10
|- - Microwatt   Цитата(Ruslan1 @ Apr 16 2012, 21:10) Еще ...   Apr 16 2012, 21:55
- - alex112   ну так что? Просили схему и программу.... и куда в...   Apr 18 2012, 15:42
- - alexvu   Цитата(Microwatt @ Apr 17 2012, 00:55) Ка...   Apr 18 2012, 20:57
- - bav   Цитатаа что это дает и зачем нужно? со светодиодом...   Apr 19 2012, 09:20
|- - alex112   Цитата(bav @ Apr 19 2012, 13:20) порты по...   Apr 19 2012, 21:46
|- - Палыч   Цитата(alex112 @ Apr 20 2012, 01:46) ну и...   Apr 20 2012, 04:32
- - bav   Цитатану изначально я хотел по другому - когда наж...   Apr 20 2012, 09:50
|- - alex112   Цитата(bav @ Apr 20 2012, 13:50) можно и ...   Apr 23 2012, 12:19
- - bav   ЦитатаА в чем принципиальное отличие? обычно комму...   Apr 23 2012, 12:53
|- - alex112   Цитата(bav @ Apr 23 2012, 16:53) обычно к...   Apr 24 2012, 20:44
- - bav   ЦитатаТак в каждой книжке пишут что лучше, от грех...   Apr 25 2012, 12:03
- - alex112   Цитата(bav @ Apr 25 2012, 16:03) есть док...   Apr 25 2012, 13:22


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 11:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.01512 секунд с 7
ELECTRONIX ©2004-2016