roboforum.ru

Технический форум по робототехнике.

МикроКонтроллер AVR начинающим - общие вопросы

Re: МикроКонтроллеры начинающим - общие вопросы

Mazayac » 17 авг 2008, 11:24

Более интересна разводка платы, либо порядок соединения питающих проводов (общие, плюс контроллера, плюс двигателей), если собрано на макетке.
Схема впрочем тоже сойдет, на ней можно показать, как должны идти шины питания.

Re: МикроКонтроллеры начинающим - общие вопросы

avr123.nm.ru » 17 авг 2008, 12:31

Наверно диода быстрого перед МК не хватает.

Re: МикроКонтроллеры начинающим - общие вопросы

loid » 17 авг 2008, 13:31

А вот схемка моего бота. Не пинать, как смог так навоял :D
На схеме очепятка, слева на стабилизатор подается не5 вольт, а 12.
Вложения
bot.JPG

Re: МикроКонтроллеры начинающим - общие вопросы

EdGull » 17 авг 2008, 13:42

что за строеный диод?

Re: МикроКонтроллеры начинающим - общие вопросы

avr123.nm.ru » 17 авг 2008, 17:16

loid писал(а):А вот схемка моего бота. Не пинать, как смог так навоял :D
На схеме очепятка, слева на стабилизатор подается не5 вольт, а 12.

Чеж ни конденсатора ни диода на питании МК нетути ?

Советую почитать:
Правильное питание - http://avr123.nm.ru/01.htm
Правильное подключение RESET - http://avr123.nm.ru/07.htm

Рисуйте схемы в PROTEUS http://proteus123.narod.ru/01.htm - в нем же можно проверить их работу.

Добавлено спустя 5 минут 21 секунду:
EdGull писал(а):что за строеный диод?

Как ты определил что "строеный", а не просто 3 диода ? :shock:

Re: МикроКонтроллеры начинающим - общие вопросы

Mazayac » 18 авг 2008, 00:28

loid писал(а):А вот схемка моего бота.

1. Нет обязательных блокировочных конденсаторов ни у микросхемы стабилизатора (на входе и на выходе), ни у микроконтроллера
7805.gif
7805.gif (3.07 КиБ) Просмотров: 2525

C1 и С2 могут понадобиться бОльшей емкости (до 10мкФ, например), в зависимости от требований производителя микросхемы.
2. Не вижу, как подключен вывод Reset у Атмеги
Reset.gif
Reset.gif (2.15 КиБ) Просмотров: 2530

3. + и - 12 вольт на L293 и на 7805 как подводятся?
Power_connect.gif
Power_connect.gif (9.24 КиБ) Просмотров: 2529

4. На каждый из трех светодиодов нужен свой токоограничительный резистор
HL1-3.gif
HL1-3.gif (5.14 КиБ) Просмотров: 2526

5. Странные какие-то фотодатчики. Почему бы не сделать их по общепринятой схеме?
Optosensor.gif
Optosensor.gif (2.78 КиБ) Просмотров: 2532

Re: МикроКонтроллеры начинающим - общие вопросы

loid » 18 авг 2008, 15:37

Спасибо что ткнули носом :) Что не правильно - сиправлю и в путь! Снова к испытаниям.
Фотодатчики и правда странные :D - это оптика из мыши, обвязку делал сам - вот так и получилось.

Re: МикроКонтроллеры начинающим - общие вопросы

regenerator » 23 авг 2008, 22:08

Подскажите, пожалуйста.
В CVAVR как сделать, чтоб вместо звёздочки могла бы быть любая цифра:
if (a==***8) {...}
или
if (a==*6**) {...}

Re: МикроКонтроллеры начинающим - общие вопросы

Сергей » 23 авг 2008, 22:15

Здесь поможет только особая уличная магия :D А если серьезно то нефкурил что нужно то :)

Re: МикроКонтроллеры начинающим - общие вопросы

=DeaD= » 23 авг 2008, 22:22

regenerator писал(а):Подскажите, пожалуйста.
В CVAVR как сделать, чтоб вместо звёздочки могла бы быть любая цифра:
if (a==***8) {...}
или
if (a==*6**) {...}


Потребуются операции целочисленного деления, возвращающие частное (пусть это "/") и остаток (это всегда %), посмотри в справочнике как правильно вызвать целочисленное деление без округление, чтобы от деления было только частное в классическом понимании.

А при наличии этих операций:
(a==***8) расписывается как (a%10==8)
(a==*6**) расписывается как ((a%1000)/100==6)

Re: МикроКонтроллеры начинающим - общие вопросы

regenerator » 23 авг 2008, 22:49

Ой как всё не просто.
Если правильно понял, то можно по аналогии, да?
Например:
(a==***********2) расписывается как (a%10==2)
(a==****5********) расписывается как ((a%10000000000000)/100000000==5)
Последний раз редактировалось regenerator 23 авг 2008, 22:56, всего редактировалось 1 раз.

Re: МикроКонтроллеры начинающим - общие вопросы

=DeaD= » 23 авг 2008, 22:49

regenerator писал(а):(a==***********2) расписывается как (a%10==2)
- да

regenerator писал(а):(a==****5********) расписывается как ((a%10000000000000)/100000000==5)
- нет, правильно:
(a==****5********) расписывается как ((a%1000000000)/100000000==5), т.е. после "%" - 1 с K+1 нулями, а после "/" - 1 с K нулями, если после цифры стоит K звёздочек.

PS: Всё это время я считал, что * может быть пустым символом и не отсекал, что под шаблон попадут числа большие или меньшие чем вам нужно по длине, но с нужной вам цифрой в нужной позиции. Если нужно проверять длину, то добавьте условия на значение числа, чтобы его длина тоже учитывалась.

Re: МикроКонтроллеры начинающим - общие вопросы

regenerator » 24 авг 2008, 00:15

Спасибо, понял. :)
А, и ещё:
как в той же среде инвертировать все биты регистра PORTC, если содержимое этого регистра динамически изменяется?

Добавлено спустя 1 час 19 минут 11 секунд:
А если так:
if (a==**43***)

Re: МикроКонтроллеры начинающим - общие вопросы

=DeaD= » 24 авг 2008, 00:22

regenerator писал(а):А если так:
if (a==**43***)

~= if( (a%100000)/1000==43 )

Re: МикроКонтроллеры начинающим - общие вопросы

regenerator » 24 авг 2008, 00:50

Не понял зачем ~= перед if ?


Rambler\'s Top100 Mail.ru counter