Микроконтроллеры avr для начинающих "aцп в Atmega 16"

Поделиться
HTML-код
  • Опубликовано: 18 ноя 2024

Комментарии • 110

  • @alexvisard
    @alexvisard 10 лет назад +1

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

  • @Nocsik1
    @Nocsik1 10 лет назад +1

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

  • @Vinipoh1
    @Vinipoh1 9 лет назад

    Спасибо за АЦП. Вольтметр в протеусе сделал. Рад, как ребенок.

    • @АлександрПисанец
      @АлександрПисанец  9 лет назад +1

      Сам такой :) Буквально сегодня WiFi модулями разобрался, довольный что слон.

  • @romanhvozd2260
    @romanhvozd2260 10 лет назад +2

    Здравствуйте!
    Очень познавательные уроки.
    С работой АЦП по прерыванию, вроде как понятно.
    Но хотелось бы узнать, как можно брать значения АЦП в конкретном месте программного кода и из разных входов.

  • @mishafomin3973
    @mishafomin3973 10 лет назад

    классно! очень понятно! USART, rs485 еслеб как-нибудь услышать..... :) TWI, I2C :) В атмел студио есть библиотеки на 1-wire. USART и т.д.... Может позже есть смысл вам привязываясь к ним объяснять остальные возможности... :) это как вариант.

  • @DmMukhin
    @DmMukhin 10 лет назад

    Большое спасибо за статью

  • @ruslan.zhumabai
    @ruslan.zhumabai 5 лет назад

    Какую книгу предложите для изучения микроконтроллеров avr на си.

  • @Игорь-е8к9я
    @Игорь-е8к9я 10 лет назад +1

    Спасибо, все понятно разложили по полочкам. Но есть одно НО. Так как, я являюсь новичком, в программирование микроконтроллеров, то мне не все понятно. А точне, что вообще такое АЦП и каков принцип его работы?

    • @АлександрПисанец
      @АлександрПисанец  10 лет назад +1

      Понятия ацп, относится к основам электроники и программирование микроконтроллеров,тут не причем. В следующем видео, буду на основе ацп измерять напряжение, думаю там все станет понятно.

    • @Nocsik1
      @Nocsik1 10 лет назад

      АЦП - Аналого- цифровой преобразователь. Т.е перевод аналогового сигнала в цифровой ( в данном случае движение джойстика переводится в цифровые значения).

  • @utahr
    @utahr 8 лет назад

    Добрый день!
    Обещали в следующих уроках показать, как усреднять значение, чтобы не прыгал последний разряд.
    Напишите как это сделать.
    Заранее благодарю!

  • @Alex4221908
    @Alex4221908 7 лет назад

    Как работать с несколькими каналами АЦП? Я пробовал работать в Codevision avr, там видимо упростили задачу: просто запускаем АЦП, выставляем частоту (через кодвизард всё автоматически настраивается и генерируется "шаблон" кода) а потом тупо считываем значение АЦП с любого канала (read_adc(0), read_adc(1), и т.д.).
    В Atmel Studio видимо как-то по другому. Разъясните пожалуйста кто-нибудь. Заранее благодарю!

  • @СергейСамойленко-в8в

    Доброго дня. Не получается скачать проект.

  • @dmitriibannikovasx
    @dmitriibannikovasx 5 лет назад

    Скажите, почему запись, например ADMUX |= (0

  • @иванрусев-ш5щ
    @иванрусев-ш5щ 8 лет назад

    мне устанавливать ADMUX ? или другие регистры тоже устанавливать

  • @Prostoslojnom
    @Prostoslojnom 8 лет назад

    Если не затруднит , подскажите:
    3:03 Там делитель частоты преобразования 2,2,4,8,16,64,128 вместо 1,2,4,8,16,32,64,128 ???
    Это опечатка или действительно нет 1 и 32 ???
    5:20 Зачем нужны MUX3 , MUX4 если они всегда =00

    • @АлександрПисанец
      @АлександрПисанец  8 лет назад

      3:03 нет опечатки именно так , МUX3 и MUX4 не нули, Участвуют когда нужны диференциальные входа.

    • @Prostoslojnom
      @Prostoslojnom 8 лет назад

      Александр Писанец Спасибо !

  • @utahr
    @utahr 8 лет назад

    Благодарю! Не увидел в плейлисте.

  • @anatoliyst1997
    @anatoliyst1997 10 лет назад

    Просто я думаю какая нужна обвязка для ножки АЦП , потому что когда двумя пальцами касаюсь gnd и и ножки АЦП то датчик дает правильные показания, а когда отпускаю то зашкаливает

    • @АлександрПисанец
      @АлександрПисанец  10 лет назад

      Однозначно ножка работающая на АЦП должна быть подгружена . К примеру, резистором к минусу . Хотя все зависит от схемотехники .

    • @anatoliyst1997
      @anatoliyst1997 10 лет назад

      Как у вас подключена ножка АЦП? Можете дать схему? А то в интернете неоднозначные предложения.

  • @nagirich
    @nagirich 10 лет назад

    Крутяк, Спасибо!!!

  • @иванрусев-ш5щ
    @иванрусев-ш5щ 8 лет назад

    как лучше програмно зажечь светодиод и погасить отАЦП?

  • @amd9800
    @amd9800 10 лет назад

    Скажите а как поступить если хочу оцифровать сигнал с напряжением от 0 до 30mV? Предварительно его усилить операционным усилителем?
    Можно ли AREF поставить скажем 100mV, таким образом оцифровывать опираясь на такое напряжение? Можно ли подавать опорное напряжение на AREF через мультиплексер?

  • @indicatorish
    @indicatorish 8 лет назад

    Здравствуйте Александр.Решил освоить АЦП и ввел с экрана код. Компиляция прошла успешно в Atmel Studio 6.Фьюзы установил 0xFF и 0xC9. На макетной плате собрал устройство по Вашему рисунку.7 сегментный индикатор ничего не показывает. Не могли бы Вы сбросить ссылку с прошивкой и кодом? Спасибо.

    • @АлександрПисанец
      @АлександрПисанец  8 лет назад

      +Виктор Сычев Здравствуйте. К сожилению я не сохранил код данного урока. Урок давний.

    • @АлександрПисанец
      @АлександрПисанец  8 лет назад

      +Виктор Сычев Разве ссылка не работает?, Проект:dfiles.ru/files/olr6vvgif

  • @anatoliyst1997
    @anatoliyst1997 10 лет назад

    Какой самый стабильный вариант подключения ацп?

    • @АлександрПисанец
      @АлександрПисанец  10 лет назад

      Все варианты стабильны. Смотря, для каких задач. Для точного измерения с помощью АЦП нужно стабильное питания и замер производить в медленном режим

  • @virtual1981ify
    @virtual1981ify 9 лет назад

    Доброго Вам дня Олександре. Переглядаючи відео побачив відладочьну плату, а схемки немає?

    • @АлександрПисанец
      @АлександрПисанец  9 лет назад

      Aleksandr Maslo Данную плату коллега по работе делает на продажу, правда цена кусается в 800гр.

  • @иванрусев-ш5щ
    @иванрусев-ш5щ 8 лет назад

    есть ли альтернативные недорогие отладчики?Dragon из дорогих

    • @АлександрПисанец
      @АлександрПисанец  8 лет назад

      +иван русев я таких не находил. Разве только какой то самодельный сделать

  • @иванрусев-ш5щ
    @иванрусев-ш5щ 8 лет назад

    как подключить несколько выводов ацп подскажите алгоритм

    • @АлександрПисанец
      @АлександрПисанец  8 лет назад

      +иван русев По очереди, делаете установки для первого. Происходит замер первого. Программа переходит в вектор прерывания ацп. Так вы знаете что замер произведен. Затем устанавливаете установки для второго ацп и так далее.

  • @RainGameStudio
    @RainGameStudio 8 лет назад

    Добрый день! У меня есть необходимость измерения угла между двумя балками. Собственно придумал два варианта реализации его: с помощью АЦП и переменного резистора , которым меняет значение в зависимости от угла или вместо резистора использовать энкодер. Если первоначальный угол всегда известен и всегда равен 180 градусов, а измерять нужно только его изменения, как вы думаете, какой из этих вариантов мне будет более грамотным? Или, возможно, есть какой-то третий вариант? Заранее благодарю за ответ!

    • @АлександрПисанец
      @АлександрПисанец  8 лет назад

      +Rain Game Studio Как насчет гироскопа, можно по всем трем координатам контролировать угол.

    • @RainGameStudio
      @RainGameStudio 8 лет назад

      Александр Писанец скорее всего не получится, так как положение в пространстве не будет стационарным... Изначальное положение зафиксировано только по отношению друг к другу, а как их повернёт человек, который будет производить измерения, одному Богу известно...

    • @АлександрПисанец
      @АлександрПисанец  8 лет назад

      Тогда переменный резистор. Проще программа будет.

    • @RainGameStudio
      @RainGameStudio 8 лет назад

      Александр Писанец Хорошо. Спасибо за ответ!

  • @иванрусев-ш5щ
    @иванрусев-ш5щ 8 лет назад

    спасибо.

  • @КоляЛев-й1в
    @КоляЛев-й1в 10 лет назад

    Спасибо за урок по АЦП.
    Хотел уточнить если преобразование АЦП занимает 13 тактов то если пред делитель выставить / 2 то преобразование АЦП займет 26 тактов ?
    и еще если АЦП настроить на 8 бит то нужно ли запрещать прерывания при сохранении данных в переменную?
    и можно ли использовать ADCW в программе например
    a = 5 / ADCW; или if(ADCW==512)

    • @АлександрПисанец
      @АлександрПисанец  10 лет назад

      Здравствуйте. При выстовленом пред делители , АЦП как выполнялось 13 тактов так и будет 13 тактов. А вот время микроконтроллера займет 26 тактов. Насчет 8 битного режима не скажу, некогда не применял (мне и 10 битного мало) Что касается "a = 5 / ADCW " не стоит применять, могут возникнуть глюки, другие режимы "*,==,+"работают нормально.

    • @КоляЛев-й1в
      @КоляЛев-й1в 10 лет назад

      Александр Писанец Спасибо

  • @Колючийнонекактус

    А разве подтягивающий резистор к ноге DDRA не нужен?

  • @XXZZXXkdfuhsdjkfhfg
    @XXZZXXkdfuhsdjkfhfg 9 лет назад

    Здравствуйте Александр! Скажите зачем подключать опорное напряжение, и какая разница между подключением Внутреннего ИОН и AVcc?

    • @АлександрПисанец
      @АлександрПисанец  9 лет назад

      Простыми словами. ИОН задействуется внутренний стабилизатор напряжения или напряжение подано на ножку микроконтроллера. Как выставите пред установки для ацп. AVcc напряжение питания микроконтроллера.

    • @XXZZXXkdfuhsdjkfhfg
      @XXZZXXkdfuhsdjkfhfg 9 лет назад

      Спасибо за оперативный ответ! Я правильно понимаю: Опорное напряжение нужно для питания АЦП? Выбор источника никак не влияет на качество и стабильность результата?

    • @АлександрПисанец
      @АлександрПисанец  9 лет назад

      Конечно влияет, если опорное напряжение не стабильное. То и результат измерения соответственно хреновый.

    • @XXZZXXkdfuhsdjkfhfg
      @XXZZXXkdfuhsdjkfhfg 9 лет назад

      Александр Писанец Спасибо!

  • @ericsson3507
    @ericsson3507 10 лет назад

    символ w работает токо в ADC или везде где есть два байта

  • @ІванВерьовкін
    @ІванВерьовкін 8 лет назад

    Не пойму почему тогда вы бит ADIF не опрашиваете и не сбрасываете ?
    ведь бит ADFR режим непрерывного преобразования вы не включили,и почему у вас на экране ацп не прыгает ? у меня есть скачки даже когда задержку на вывод на экран поставил ??

    • @АлександрПисанец
      @АлександрПисанец  8 лет назад

      Давно урок делал, вникать нет времени.

    • @ІванВерьовкін
      @ІванВерьовкін 8 лет назад

      ну я понял у вас режим однократного преобразование + разрешили прерывание по завершению ацп и в функции прерывание ацп в конце опять запускаете ацп,а бит ADIF который показывает что ацп завершилось вы не проверяете ! рассказывали одно сделали другое)
      а ваш канал по avr из русско язычных ,один из лучших!!
      хорошое видео спасибо!

    • @АлександрПисанец
      @АлександрПисанец  8 лет назад

      Зачем мне проверять бит ADIF. Как преобразование закончилось уходит программа в вектор прерывания"преобразование АЦП завершено".

    • @ІванВерьовкін
      @ІванВерьовкін 8 лет назад

      Ну вы свое видео посмотрите внимательно вы говорите что бит ADIF становится в 1 по прерыванию ацп ,и надо только в ручную его сбрасывать если вы в однократном режиме прерывания ,а я скажу что это только флаг и сбрасывается он сам как только вы запустили прерывание)

  • @MrKr1k
    @MrKr1k 9 лет назад

    Сложно ли сделать midi клавиатуру на пьезоэлементах? Т.е. чтобы при разном усилии разная сила звука была.

    • @АлександрПисанец
      @АлександрПисанец  9 лет назад

      Nik RU42
      Не знаю, не разбирался с таким.

    • @MrKr1k
      @MrKr1k 9 лет назад

      Принцип такой (digital-drums.ru/handmade/handmade-triggers). Там данные элементы приклеиваются для примера к поверхности барабана. Потом сигнал поступает в триггерный блок, в котором (видел по описаниям) стоит Atmega644. Если подумать, то по сути мы преобразовываем сигнал вибрации в сигнал миди. Только вот подробнее пока информации мало нашел. В любом случае спасибо за ответ.

    • @АлександрПисанец
      @АлександрПисанец  9 лет назад

      С датчиком проблем нет, я имел виду не знаю протокол миди.

    • @MrKr1k
      @MrKr1k 9 лет назад

      Понятно.

  • @MrKr1k
    @MrKr1k 9 лет назад

    Александр, здравствуйте. А можно ли подключить к данному микроконтроллеру датчик 2-х проводный, который работает от 10-30 Вольт, при этом на выходе 4-20 мА ? Если можно, так как именно это можно сделать?

    • @АлександрПисанец
      @АлександрПисанец  9 лет назад

      Nik RU42 Да можно, через сопротивление или на операциониках преобразователь уровня собирать, так сходу схему не припомню. Но в нете много разных решений можно найти.

    • @MrKr1k
      @MrKr1k 9 лет назад

      А через сопротивление это получиться делитель напряжения? Т.е. если напряжение с источника питания 24 Вольт, представить что R1 - это сопротивление датчика, R2 - поставить резистор 250 Ом, а потом с участка R2 мерить напряжение, при этом один конец (до R2) подключить к порту A0, а второй конец на землю питания микроконтроллера?

    • @АлександрПисанец
      @АлександрПисанец  9 лет назад

      Да именно так. Конечно это не совсем правильно, но работать будет

    • @MrKr1k
      @MrKr1k 9 лет назад

      А что неправильного в данном методе?

    • @АлександрПисанец
      @АлександрПисанец  9 лет назад

      Такой метод негде в даташите я не встречал, везде нужны какие то микросхемы.

  • @иванрусев-ш5щ
    @иванрусев-ш5щ 7 лет назад

    у меня вопрос .я замеряю 3ф с пускателя при включении пускателя мега 16 зависает в чём причина
    отключаю датчики тока включаю нагрузку(асинхронный двигатель) подвесания нет помогите

    • @АлександрПисанец
      @АлександрПисанец  7 лет назад +1

      Фильтра нужно ставить по входам. Мне помоги ферритовые кольца, пару витков с токовых датчиков пропускаете через кольцо, тем самым высокочастотные всплески вроде как отсекало.

    • @иванрусев-ш5щ
      @иванрусев-ш5щ 7 лет назад

      Благодарю Александр.Я начинающий программист.Скажу так.Практика от теории немного отличается.Буду дальше учиться.

  • @e-cantech2649
    @e-cantech2649 9 лет назад

    подскажите пожалуйста как сделать веса из атмеги 16 если можно покажите как это сделать?

    • @АлександрПисанец
      @АлександрПисанец  9 лет назад

      Elburs Nasibov Не очень понял вопрос. Весы ?

    • @e-cantech2649
      @e-cantech2649 9 лет назад

      Да, весы

    • @e-cantech2649
      @e-cantech2649 9 лет назад

      извините за ошибку,

    • @АлександрПисанец
      @АлександрПисанец  9 лет назад

      Урок точно не буду делать, долго все это. Все зависит от датчика применяемого. Есть с выходом 0-5В там все просто, замер цап и все. А есть мостовые, сними немного сложнеее. По крайне мере не описать в двух словах

  • @ИльясАбдулхаков
    @ИльясАбдулхаков 9 лет назад

    Здравствуйте! Действительно, а как использовать сразу несколько ножек ацп? Регистр то, который хранит значение всего 1.

    • @АлександрПисанец
      @АлександрПисанец  9 лет назад +1

      Здравствуйте. Опрашиваете по порядку. Сначала один канал, забираете данные. Затем второй и т.д

    • @ИльясАбдулхаков
      @ИльясАбдулхаков 9 лет назад

      Александр Писанец Спасибо))

    • @JackSparrow-dn1cu
      @JackSparrow-dn1cu 9 лет назад

      Александр Писанец А напишите как. Пжлста!

    • @JackSparrow-dn1cu
      @JackSparrow-dn1cu 9 лет назад

      Александр Писанец А может Вы в своих уроках уже где то коснулись этого момента, тогда намекните в каком. Очень очень спасибо!

    • @АлександрПисанец
      @АлександрПисанец  9 лет назад

      Как пример:
      ISR (ADC_vect)
      {
      ACP=ADCW;
      Kanal ++;
      switch (Kanal)
      {
      case 0: ADMUX &=~(1

  • @АртемБорщ-т1ю
    @АртемБорщ-т1ю 7 лет назад

    Подскажите пожалуйста, почему у меня не работает окно периферии? Открываю, а там ничего нажать нельзя, никакие флажки не меняются, даже порты не могу настроить, не говоря о АЦП. К стати вкладки AD_CONVERTER так же нету. Скачал ваш проект, открыл и ничего, окно так же не рабочее

    • @АлександрПисанец
      @АлександрПисанец  7 лет назад

      Путь установки студии, не должен содержать русские символы.

    • @АртемБорщ-т1ю
      @АртемБорщ-т1ю 7 лет назад

      К сожалению проблема не в этом.
      Путь к Студии: C:\PROGRAMMI\AVR Studio\7.0
      Путь к самому проекту: C:\Users\artio\Desktop\USB_Flash_Code\GccApplication1

    • @astronom100
      @astronom100 7 лет назад

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

  • @astronom100
    @astronom100 7 лет назад

    непонятно зачем нужен цикличный режим опроса ацп если и с ручным все работает? В каких случаях его применяют?

    • @АлександрПисанец
      @АлександрПисанец  7 лет назад

      Конечно работает, все зависит от задачи.

    • @astronom100
      @astronom100 7 лет назад

      Таки хотелось бы иметь представление, когда какой режим использовать.. Вот зачем прерывание включать, это я понимаю.. (чтобы ничто не смогло прервать измерение).. с цикличностью непонятно..

  • @gin87100
    @gin87100 9 лет назад

    Спасибо за видео, познавательно. Попробую повторить. Единственно коробит комменты в стиле "АЦР". Непонятно что это значит...И автор еще в видео ADC читает как "А ДЭ ЭС" WTF?

  • @ericsson3507
    @ericsson3507 10 лет назад

    почему вы забираите данные с ADCWа не с ADC

  • @PrUveTGoogl
    @PrUveTGoogl 8 месяцев назад

    Так и не показали как программно убрать дерганье последнего разряда

  • @ДмитрийНосатый
    @ДмитрийНосатый 8 лет назад

    Александр, спасибо за ваш труд. Все очень доходчиво разжевано! Сейчас столкнулся с проблемой, по последовательному чтению с двух каналов АЦП. При чем в симуляторе и протеусе всё красиво, а в реальном устройстве два СД, которые должны загораться каждый от своего АЦП, загораются одновременно от обоих каналов. Будьте добры подскажите в чем ошибка. Вот код в три строки)) yadi.sk/d/qYrTLxpl327E6j

    • @АлександрПисанец
      @АлександрПисанец  8 лет назад

      Код рабочий, все норм. Такое может быть если у вас входа ацп в воздухе, не чем не подгружены.
      Сначала задаем канал, затем включаем ацп.
      case 0:{
      NPin=1;
      ACPPinA0Motion = ADCW; //считаваем значения АЦП
      ADMUX |=(1

    • @ДмитрийНосатый
      @ДмитрийНосатый 8 лет назад

      Спасибо большое, действительно подтянул неиспользуемый вход и все стало хорошо! Кошмар, два дня промучился, чего я только не делал))) Вот что значит опыт! Еще раз спасибо, Сэнсэй!

    • @АлександрПисанец
      @АлександрПисанец  8 лет назад

      Та я сам такой )

  • @черныйваня-ь4з
    @черныйваня-ь4з 8 лет назад

    не могу скачать проект почему?

  • @indicatorish
    @indicatorish 8 лет назад

    NOD32 бьет тревогу.

    • @АлександрПисанец
      @АлександрПисанец  8 лет назад

      +Виктор Сычев Та нет там вирусняков, покрайне мере я из не архивировал :)

  • @chusovles
    @chusovles 10 лет назад

    флаХ