24 сообщения в этой теме

GeloMik    0

 

Я новичок в программировании AVR контроллеров, хотя знаю +/- C++.

Проблема заключается в том, что я не могу написать прошивку к своему маленькому проекту. Используемый мною контроллер - ATTiny45. У него на борту имеется 1 АЦП с выходом на 4 ноги. Нужно, чтобы фактически одновременно брался замер с 3, 4 и 5 порта по АЦП, и при появлении на одном из них МК должен подать 5В на 1 или 2 порты. Источник АЦП AREF. 

Сюда прикреплю схему самого робота, если кого не затруднит помочь написать прошивку, буду очень благодарен :rolleyes:

Безымянный.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
KRAB    4 590

Учись САМ ... и не жди!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
GeloMik    0
Только что, KRAB сказал:

Учись САМ ... и не жди!

Да я бы рад узнавать новое, если бы время не поджимало. Эта тема выпала мне как задание. Дедлайн через 3 дня, поэтому прошу помощи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Dr. West    3 126

Если АЦП один, то это невозможно по определению. Читать все равно придется по очереди каждую ногу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
UTSource

Найдите миллионы труднодоступных

электронных компонентов

zeconir    116

@GeloMik Ну, во-первых я не вижу вашей прошивки, пусть и не совсем рабочей. А раз ее нет, то тема должна быть в разделе "Работа". Но черт с ним.

По тексту вопроса:

Вы сами же написали что

23 минуты назад, GeloMik сказал:

У него на борту имеется 1 АЦП с выходом на 4 ноги

А потом хотите

23 минуты назад, GeloMik сказал:

Нужно, чтобы фактически одновременно брался замер с 3, 4 и 5 порта по АЦП

Чукча в логику не мочь?

25 минут назад, GeloMik сказал:

Источник АЦП AREF

Не источник, а опорное напряжение. Подробно гугл знает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
GeloMik    0
1 минуту назад, Dr. West сказал:

Если АЦП один, то это невозможно по определению. Читать все равно придется по очереди каждую ногу.

Я в курсе, но мне нужно сделать так, чтобы delay между измерениями был маленьким.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Dr. West    3 126

Ну так сделай, насколько это возможно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
oldmao    1 464

Ну то есть почитать даташит и посчитать минимальный интервал между опросами АЦП при нужной тактовой частоте - в лом? Здесь очень не любят помогать ленивым студентам. Вот будут самостоятельные телодвижения (прикидочный вариант программы хотя бы), тогда и начнём помогать.

В микроконтроллерной технике одновременности не бывает, МК всё делает последовательно. Точно так же, как и одноядерный процессор в вашем домашнем компьютере. А иллюзия одновременности решения кучи задач - всего лишь из-за того, что они очень быстро переключаются. Тысячи (а бывает - и миллионы) раз в секунду, для человека это кажется одновременным.
Задача включения движка при наличии света прекрасно решается аналоговыми методами, причём одновременность там истинная. ИМХО использовать для подобных задач микроконтроллер - всё равно, что забивать гвозди микроскопом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
AlexLir    0
54 минуты назад, GeloMik сказал:

при появлении на одном из них

Что в данном случае является единицей? АЦП 10bit в результате после считывания будет 0 до 1023. А так считывайте один канал, сохраняйте его значение, потом второй, а затем третий и на основе их делайте вывод.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
KRAB    4 590
3 часа назад, GeloMik сказал:

если бы время не поджимало. Эта тема выпала мне как задание

значит ЕДИНСТВЕННЫЙ ПУТЬ РЕШЕНИЯ - раздел РАБОТА и платить баППло :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 357
4 часа назад, GeloMik сказал:

Нужно, чтобы фактически одновременно брался замер с 3, 4 и 5 порта по АЦП, и при появлении на одном из них

дружише хочется спросить у тебя с логическим мышлением все нормально? какой на...  "появлении 1" для АЦП ????

тебе задали реализовать элементарный шифратор три входа и два выхода на МК , накой ты сюда приплел АЦП???? шо ты им измерять собрался логический 0 или 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
KomSoft    327

А я добавлю, что диоды зенера параллельно моторам включены как-то странно - в прямом включении. Пробьет их вместе с транзисторами сразу после открытия оных. Туда ставят обычный диод и не так.

Изменено пользователем KomSoft
Описятки
  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ruhi    34
6 часов назад, GeloMik сказал:

брался замер с 3, 4 и 5 порта по АЦП

Почему надо чтобы брался по АЦП??? Это задание такое или ты сам придумал???

Гораздо проще просто прочитать значение с PINB и на основании значения 3-х битов делать что тебе нужно!

Как раз будет "одновременно"!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
KomSoft    327
57 minutes ago, ruhi said:

Почему надо чтобы брался по АЦП???

Нижний резистор 220 Ом. Фоторезистор обычно килоомы. Там до "1" не дотянет ну никак. Задача поставлена верно - брать с АЦП, а вот  ТС называет это единицей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 357
59 минут назад, KomSoft сказал:

Задача поставлена верно - брать с АЦП

ага, и вместо того чтобы тупо пересчитать делитель, следующей темой будет как/чем посмотреть значения АЦП :i-m_so_happy:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
KomSoft    327

Смотря на кого учится - на программиста или электроника

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 357

где-то я это уже видел... сначала дуринщик долго отправлял ацп на комп, щоб узнать шо он там насчитал и все это для зажечь светодиод при затемнении ФР

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
colorad    434

Одновременно значения можно измерять сделав устройство выборки хранения . 

Чтоб задержка была маленькая между измерениями,  надо тактовую частоту побольше,  а разрядность ацепирования поменьше .

Но здесь этого не надо . Энерция движения робота намного больше, чем энерция измерений при вменяемой тактовой частоте . 

Под 1 вероятно подразумевается некоторый уровень освещенности,  когда надо двигаться .

ТС вероятно учится на нанотехнолога и робототехника . 

Больше мыслей нет .

  • Лайк 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Dr. West    3 126

В схеме вообще куча ошибок. Самое основное - надо увеличить номиналы R5-R7 на два порядка, чтобы не вылавливать милливольты, а работать в полном диапазоне АЦП. (о чём уже писали выше).

Помимо диодов, ещё и С3 неправильно подключен. Если будет собираться рабочая модель, земли силовые и сигнальные полезно развести отдельно и указать это на схеме.

  • Одобряю 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ruhi    34
В 22.06.2018 в 16:15, KomSoft сказал:

Там до "1" не дотянет ну никак

Вот ведь, проблема, до единицы дотянуть ...

Все равно, насколько я вижу все схемотехнику обсуждают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не 1 там нужна, а уровень максимальной освещенности, чтобы робот нашел источник света. Так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ruhi    34
30 минут назад, Геннадий сказал:

Не 1 там нужна, а уровень максимальной освещенности,

Вон оно как ...

Страшное дело :) !

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
KomSoft    327
1 hour ago, ruhi said:

все схемотехнику обсуждают.

Так название сайта и намекает больше на электронику, чем программирование. А если вылетят силовые транзисторы, то программа не поможет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ruhi    34
2 часа назад, KomSoft сказал:

А если вылетят силовые транзисторы, то программа не поможет.

У нас есть такие программы ...

Но мы вам о них не расскажем :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: Kudich
      Всех приветствую!
      Сам я программирую на стандартной среде ардуинки, и в одном проекте потребовалось увеличить частоту ШИМ на портах 5,6,9,10,11,13 Arduino Micro. На этой ардуино стоит Atmega32u4, есть тут знатоки avr? Как повысить частоту на этих пинах?
    • Автор: Evg69
      добрый день. Вернулся к микроконтроллерам после длительного перерыва. Сижу туплю и даже гугл не помог.
      Два вопроса по Atmel Studio 7. Режим отладки. Симуляция.
      1. Как включить окно в котором можно посмотреть что контроллер выплевывает
      в UART? Не содержимое регистра, а типа терминала.
      2. Как подсунуть студии файлик с содержимым EEPROM?
    • Гость Keil
      Автор: Гость Keil
      Добрый день, ситуация такая - попались мне под руку куча рассыпухи в числе которых достаточное количетво тинек и прочей лабуды - пытась хеловродить, попробовал взять готовый пример работы тиньки и лсдишника здесь также имею ардуинку как  Айсипи и чудесно мигаю светодиодом на мк прошитом ею же  так вот при попытке залить код который по ссылке чуда не произошло.
      курение мануалов лсдишника дало понять лиш одно что старший и младший биты одинаковы с лсдишником со статьи - лсдишник рабочий (игрался контрастом одной строки через V0  и потенциометр ) - как в прочем и мк, было задумано ковырнуть все это в протеусе и атмельстудии, но результатом не увенчалось. Пожалуйста тыкните носом что да где не так.
      fail.zip
    • Гость Максим
      Автор: Гость Максим
      Всем светлым и умным головам привет!

      Никак не могу найти информацию о данном прерывании TIM1_BRK_UP_TRG_COM.
      Вопрос 1: Что это за стек или система прерываний? 
      Вопрос 2: Когда будет вызываться обработчик прерывания TIM1_BRK_UP_TRG_COM_IRQHandler, если также есть обработчик прерывания TIM1_CC_IRQHandler?
      Вопрос 3: период переполнения таймера равен 100 мкс. Сколько раз будет вызываться обработчик прерывания TIM1_BRK_UP_TRG_COM_IRQHandler до обработчика прерывания TIM1_CC_IRQHandler? По логике вещей, предполагаю, что 100 раз?
      Заранее благодарен!

      Всем радости))