Перейти к содержанию

Робот-светофил, нужна помощь.


GeloMik

Рекомендуемые сообщения

 

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

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

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

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

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

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Только что, KRAB сказал:

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

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

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

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

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

"Я не знаю какой там коэффициент, я просто паять умею. "

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

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

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

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

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

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

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

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

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

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

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

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

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

И пусть судьба не справедлива, Жизнь игра - играй красиво!

И что б не кикнули тебя, Не злить Админа, юзверя!

Люблю "спасибки" :)

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

1 минуту назад, Dr. West сказал:

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

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

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

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

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

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

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

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

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

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

3 часа назад, GeloMik сказал:

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

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

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

4 часа назад, GeloMik сказал:

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

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

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

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

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

Изменено пользователем KomSoft
Описятки

Настоящему коту и в декабре март!

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

6 часов назад, GeloMik сказал:

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

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

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

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

Можно сделать все! Но чем больше можно, тем больше нельзя!

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

57 minutes ago, ruhi said:

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

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

Настоящему коту и в декабре март!

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

59 минут назад, KomSoft сказал:

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

"Я не знаю какой там коэффициент, я просто паять умею. "

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

В 22.06.2018 в 16:15, KomSoft сказал:

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

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

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

Можно сделать все! Но чем больше можно, тем больше нельзя!

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

30 минут назад, Геннадий сказал:

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

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

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

Можно сделать все! Но чем больше можно, тем больше нельзя!

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

1 hour ago, ruhi said:

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

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

Настоящему коту и в декабре март!

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

2 часа назад, KomSoft сказал:

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

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

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

Можно сделать все! Но чем больше можно, тем больше нельзя!

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

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • Похоже вас угораздило на латералы попасть. Они сами себя стабилизируют и никакой дополнительной стабилизации им не нужно. У меня двухкиловаттные Крафты так на металлических Эксиконах работают даже без "эмиттерных" резисторов. Тупо впараллель.
    • @korsaj Попробовал записать код в разных вариантах предложенных тобой. Первый вариант вообще отказался работать. Заработал второй вариант на приём. Теперь уже хотя бы есть полноценный приём. char i = 0; if (rx_buf[i] == 'M'){ i++; if (rx_buf[i] == '1') { //unsigned int n = getDecFromHexStr(rx_buf, i+2); //Выводим на экран номер текущего трека LED_1_ON(); LED_2_OFF(); send_UART('M'); send_UART('1'); send_UART(0x0D); send_UART(0x0A); _delay_ms(10); flags = 0; } else if (rx_buf[i] == '2') { //unsigned int n = getDecFromHexStr(rx_buf, i+2); //Выводим на экран количество треков LED_1_OFF(); LED_2_ON(); send_UART('M'); send_UART('2'); send_UART(0x0D); send_UART(0x0A); _delay_ms(10); flags = 0; } else if (rx_buf[i] == 'T') { //unsigned int n = getDecFromHexStr(rx_buf, i+2); //Выводим на экран общее время трека LED_1_ON(); LED_2_ON(); send_UART('M'); send_UART('T'); send_UART(0x0D); send_UART(0x0A); _delay_ms(10); flags = 0; } else if (rx_buf[i] == 'K') { //unsigned int n = getDecFromHexStr(rx_buf, i+2); //Выводим на экран текущее время трека LED_1_OFF(); LED_2_OFF(); send_UART('M'); send_UART('K'); send_UART(0x0D); send_UART(0x0A); _delay_ms(10); flags = 0; } } Но однако есть ещё некоторые вещи которые нужно подкорректировать. Пока я просто разбираю UART поэтому на терминал вывожу так сказать ответ ну и просто видеть потому как индикатора к микре не подключено пока что. Однако такой вариант с ответкой нужен будет мне и для другого проекта где UART лучше всего подойдёт. Это я уже смотрю на будущее. Но тут тоже когда приходит комманда по  UART микроконтроллер отправляет ответ, но он начинает постоянно спамится. Нужно как то сделать чтоб этого не происходило. Я же в свою очередь пробовать сбросить flags = 0;, но это никак не помогло. Может чего подскажешь тут понятно что нужно как то будет обнулить данные чтобы выйти из этого условия программы. Есть вот такая проблемка. И ещё есть одна проблема с строкой  unsigned int n = getDecFromHexStr(rx_buf, i+2); Не спроста я её отключил в коде с помощью комментария. А тут проблема в том что студия не может опзнать этот код. Возможно нужно что подключить из встроенных библиотек самой студии.
    • Зачем закладываться на максимальный ток стабилитрона? Поставьте по два двухкилоомных последовательно или возможно 3-5 килоома что то есть.
    • Здравствуйте. В эту магнитолу захотелось установить модуль блютуз. Вроде бы проблем нет, да? Привод CD выкинут как рудимент,- на нём драйвер сгорел (не хорошие инженеры, на огромной линейке моделей подложили бяку-серво двигатель и на нём платка переходник для распайки на плату обработки, только вот двигатель болтается в пластике посадочном убивая пайку делая плохое самочувствие драйверу-привода-лазера))). Вот. Проблемы начинаются следующие. Тюнер имеет мозги аудиопроцессору по цифре,-отпадает. Разъёма чейнджера нет но есть вся разводка без обвязки,-восстановление мелочи (стаб-рез) и эмуляция подключенного чейнджера не помогает, странно Kasuga Radio Co. Ltd. (это ирония про 1946 год) сэкономила на программном обеспечении . Ага. Подключится на вход УМЗЧ-пошло и глупо. Вопрос. Есть варианты подключить? kenwood_kdc-4590.pdf
    • А здесь всё о том как и чем делать ...
    • "Приходит мужик в магазин одежды, чтоб подобрать себе шляпу. Надевает первую попавшуюся, а она ему - как раз." А вообще не понятно. Он ему дает говорить, даже матюкаться, а анекдот не дает рассказать. Почему? (сори, если вопрос тупой, я просто не в теме радиосвязи и радиохулиганства)
  • Похожий контент

×
×
  • Создать...