В ролике показано подключение потенциометра к аналоговому входу микроконтроллера AVR и написание программы на языке релейных диаграмм LD в среде LDmicro для чтения АЦП. Демонстрируется создание компараторов для управления светодиодами в зависимости от значения на аналоговом входе, симуляция работы программы и компиляция с последующим программированием микроконтроллера.
- 00:03 Подключение потенциометра к аналоговому входу микроконтроллера AVR
- 03:57 Написание программы на языке LD в среде LDmicro для чтения АЦП
- 05:36 Чтение АЦП и сравнение значения переменной
- 09:43 Симуляция и управление светодиодами по порогам
- 11:12 Добавление компараторов и реле для портов D6, B5, D5, D4
- 20:03 Компиляция и программирование микроконтроллера
- AVR
- LD
- АЦП
Кому полезно: Инженерам, изучающим программирование микроконтроллеров AVR на языке LD
Описание составлено автоматически по расшифровке речи в ролике.
Расшифровка видео
0:03 Здравствуйте, меня зовут Петренко Анатолий Владимирович. Давайте продолжим наш интернет проект, изучаем полка контроллера и сегодня попробуем поработать с микроконтроллером. Алоэр написать для него программку. Среди программирования ЛД микро. На языке релейных диаграмм ЛД. Напишем следующую программку, вот здесь я открыл флокод. Мне нравится эта программа тем, что я здесь могу сейчас сразу же наблюдать наш микроконтроллер. И сегодня я хочу написать программку, в которую я подам.
0:48 Вот на этот вход порта, а 3 на 37 ножку. Подам сигнал. С переменного резистора, то есть, как подключено, возьму переменный резистор с 3 выводами 1 из крайних выводов. Подключу сюда на землю, другой вывод подключу сюда к источнику питания, а 3 вывод подключу вот к 30 7 ножки. То есть вывод, который будет посередине? Подсоединит 37 ножки, тем самым сделаю делитель напряжения на переменном резисторе и буду измерять напряжение вот на этой 37 ножки. Поскольку я вот к 40 30 9 38 подпаял светодиоды, эти светодиоды у нас будут загораться по мере того, как я буду вращать потенциометр.
1:46 Это, конечно, неправильно, но мы просто знакомимся с микроконтроллерами, Авр. Так если вот Порт, а у нас это, как правило, АЦП, аналоговый цифровой преобразователь. И желательно, конечно, к нему, если мы его используем как АЦП других устройств, желательно не подключать. Если есть такая возможность, дальше нам нужно будет обязательно подать напряжение. Питание вот на аналоговый порт, это вот эта ножка 30 в от Миге 16 Ав 2 Си подать сюда мать. Напряжение питания 5 вот и вот еще важна, вот эта ножка аре на эту ножку. Мы будем подавать опорное напряжение для компаратора ой для аналога цифрового преобразователя.
2:44 Напряжение. Я вот подаю напряжение и питание беру, вот отсюда и подаю сюда. Ну, это так для знакомства ознакомительных видео. Если мы сюда не подадим, то у аналоговый аналоговый цифровой преобразователь. Не будет работать, вот вот мы разобрались, что сюда подаем питание, сюда подаем + питание, сюда ты сюда + питание, сюда, обычно и сюда подаем напряжением питания. То есть сюда вот перемычку я так ставлю, это у нас будет опорное. Напряжение, относительно которого будет измеряться напряжение. Вот на моем 37 выводе здесь, у меня я при вращении потенциометра. Я использую потенциометр на 50 киловатт, у меня напряжение будет меняться от 0 до 5 вольт.
3:37 0 Будет соответствовать цифре 0 в программе ВЛД микро, а 5 вольт будет соответствовать 1023. Поскольку у меня 16 десятиразрядный аналог. Ну и давайте попробуем собственно написать программку. Вот сейчас я установил, вернее, она не устанавливается программой ЛДМИКро и Лдмикро, а просто исполняемый файл. Запусти в исполняемый файл и. Здесь мне удалось найти русскоязычную версию, уже переведенную на русский язык. И давайте, собственно, напишем программку, зайдем в инструкции и.
4:27 В инструкциях выберем вот такую инструкцию. Вывить чтение из АЦП вставляем инструкцию, где щелкаем 2 раза левой кнопкой мыши и присвоим имя. Этой инструкции, ну я присвою имя Порту, а 3. Порт, а 3 окей вот у нас. Действия. В микроконтроллере вот на порт порт, а это он у нас подключен сюда десятиразрядный аналого цифровой преобразователь. И здесь у нас мультиплексор, то есть он будет поочередно окрашивать эти входы микроконтроллера. И вот здесь порта 3 мы укажем, что будем его опрашивать. И вы не записываете значение, которое получит наше АЦП вот в эту переменную?
5:36 Дальше же в программе мы можем использовать эту переменную. Мы можем зайти в редактировать, вставить ступень после. И, скажем, здесь мы можем сделать операцию сравнения. Мы можем сейчас сделать вот тот перемена сопротивления на 50 кило, который я подключаю микроконтроллеру. При вращении потенциометра у меня я хочу сделать так, чтобы светодиоды, подпаянные к выводам микроконтроллера по мере вращения потенциометром загорались.
6:14 Понаблюдаем, как это будет у нас происходить. Вот здесь для того, чтобы эта перемена считалась. Должно быть активно, если мы здесь поставим контакт, контакт здесь. Вот можно поставить перед АА чтение АЦП преобразователя. То он чтение будет происходить только в том случае, когда здесь у нас будет активная линия, то есть здесь пройдет единица, только тогда будет читаться 1 штука.
6:47 Ну, давайте сделаем, зайдем в инструкцию и вставим. Ну вот. Ставим. Функцию больше. Щелкаем по ней 2 раза, а левая кнопка мыши здесь ставим переменную, а 3. Больше 100. Щелкаем здесь привод, ну ка мыши, инструкции и в Стальпеле. Вставляем реле. Щелкаем 2 раза левой кнопкой, мы еще порили и присваиваем ему имя, это у нас будет порт, а 0. Вставляем ступень после, где щелкаем лева кнопка мыши появляется горизонт, вертикальная линия даже заходим в инструкции.
7:56 Снова операция, больше компаратор больше ставить. Компаратор больше 2 раза левой кнопкой мыши по компаратору записываем переменную, а 3. Больше 200. Окей щелкаем левой кнопкой мыши здесь. Заходим в инструкции, вставляем реле. 2 Раза левая кнопка выше париле, это у нас будет порт, а? 1 Окей Давайте попробуем зайти в режим симуляции, режим симуляции, так так перемена, а п опять вот неправильно нажал. Выходим из режима симуляции 2 раза левая кнопка мыши. Здесь у меня должна стоять трубочка.
9:00 Компилятор выдал ошибку, вернее, сама среда разработки выдала ошибку эпилятор бы тоже выдал ошибку. Симуляции запускаем симуляцию, вот сейчас ошибок у нас не выдало никаких. И нажимаем старт симуляции. Дальше мы можем вот здесь, вот пронаблюдать наши переменные, вот у нас переменная порта 0 порта 1. И вот перемена чтения сп щелкаем 2 раза левой. Кнопкой мышка переменной, и теперь мы можем вот менять значение нашей переменной. Вот большинство у нас загорелся, этот светодиод загорится на плате.
9:41 Если будет больше 200 загорается следующий меньше газ на светодиоды, вот примерно так. Нам нужно сделать 9 светодиодов, потому что мне. Подпаяно 9 светодиодов и аналогично делаем все остальное. Сейчас редактировать, вставить ступень после левая кнопка мыши инструкции.
10:05 Компаратор больше 2 раза левая кнопка мыши по компаратору перемена, а п. А 3. Больше 300 Инструкции ставить реле 2 раза левой кнопкой мы еще парили. Это у меня будет порта, а 2 окей. Окей. Редактировать, ставить ступень после, возможно, можно как то быстрее написать, но это можно использовать какие то дополнительные функции. Мы пока будем делать самые простые программки для того, чтобы просто знакомиться. С микроконтроллерами Авр пока будем делать максимально просто.
10:59 2 Раза левой кнопкой мыши. А по а 3 больше 400? Левая кнопка мыши за карбюратором. Сравнения инструкции вставляем реле 2 раза левой кнопкой. Мы еще по реле, и здесь у меня уже будет порт порт Д 6. 6 Пин Редактировать, ставить ступень после здесь, у нас 6 выход будет. Левая кнопка мыши, инструкции. Компаратор больше 2 раза левая кнопка мыши по напаратору переменная, а? Теперь уже больше 500. Это у меня будет порт б 5 5 порт б 5. Репорт д 5 порт д 5.
12:30 Редактировать. Вывести после? 2 Раза левая кнопка мыши здесь на 7 линии инструкции. Карбюратор больше 2 раза левая кнопка мыши по карбюратору перемену вставляем.
12:58 Теперь уже больше 600. На выходе ставим реле инструкции вставить реле 2 раза левокнопка мыши порт д 4. Окей. Попробуем запустить симуляцию режим симуляции еще раз на симуляции старт симуляции либо контрл + р. Воду назад и добавляем. Вот загорелся 1 светодиод, загорелся. Следующий следующий следующий. Вот так передвигаем движком, и вот у нас потихонечку загораются наши светодиоды. И вот максимальное значение здесь у нас будет, 1023 поскольку у нас стоит 10 разрядный аналоговый цифровой преобразователь.
14:14 Вот он поделит наше напряжение от 0 до 5 вольт, которое будет измерять. Разделит его. На 1023 Вот максимальное значение выходим из режима симуляции. Вот еще здесь, в этой программке, почему только до АЦП нажимаю? Бывает, что это подвисает вот это вот движочек, он, бывает, подвисает. Тогда я нажимаю сгиб и скейт, и все начинает работать.
15:01 Редактировать, вставить ступень после левая кнопка мышиная ступени. Инструкция снова компаратор больше 2 раза левой кнопкой мыши. По компаратору переменная, а п. а 3. Больше 700 И за ним вставляем реле. 2 Раза левая кнопка мыши, это мне будет порт д 3 порт д 3 окей. Аналогично ступень после. Компаратор больше 2 раза ли я кнопка по компаратору? Инструкции реле ставить реле 2 раза левой кнопкой мышь по реле ПД 2. Портт д 2. Так сколько нужно сложить светодиода?
16:39 8 И еще добавим редактировать, вставить ступень после. Инструкция компаратор больше. 2 Раза левая кнопка мыши по компаратору переменная, а п. а 3. Больше 900 Окей. Ну, здесь могли, можно было бы поставить максимальное значение там. 1002 Ну, пока так и сделаем, постой поставим. 1900 Инструкции ставит реле 2 раза левой кнопкой мыши по реле порт д 1. Окей. Пробуем запустить симуляцию. Старт симуляции. И вот здесь вот наши переменные, и мы можем движком АЦП понаблюдать вот больше. 100 154 Но еще не 200 у нас на 1 выходе появился сигнал.
17:56 И вот постепенно увеличиваем и появляются у нас сигналы. Ну, Давайте пока выйдем из режима симуляции, теперь нам нужно зайти процессора так, пока чистоту и оставим частота кварца время цикла. Пока все таки оставим окей, еще зайдем в ставки микроконтроллер и выберем от Мега 16. 40 Выводов дип корпус, и теперь давайте подключим наши. Переменные к реальным выходам микроконтроллеров щелкаем 2 раза левой кнопкой мыши. Вот здесь у нас порт, а 0 подключим его к порту, а 0, 2 раза левая кнопка мыши. Вот переменная порт, а 1 порт, а 1 щелкаем 2 раза левая кнопка мыши по нему.
19:02 Порт А 2? Можно так вот выделить ножа такие можно, просто порт д 1. Нажать на нее 2 раза левая кнопка мыши. Пор д 2. Пор д 3. Портт д 4. Порт д 5 и порт д 6. И вход АЦП, вот у нас АЦП. У нас уже нулевой 1 2 подключены, вот у нас 3 37 ножка микроконтроллера. 2 раза левая кнопка мыши все подсоединили. Теперь давайте проведем компроведем компилляцию компилировать. Имя присвоено. Аналоговый вход. Аналог в вход сохранить компиляция прошла успешно. Теперь нам нужно запустить вот эту программку для программирования микроконтроллера подключить программатор.
20:55 Сейчас секундочку.
21:50 Подключили программатор и нажимаем программирование ошибка, так? Так я не выбрал файл, убираю файл аналог в открыть. Пробую сейчас программировать. Теперь программирование прошло успешно, ну и о том, что у нас получилось. Я уже сниму следующее видео на фотоаппарат, спасибо.
Расшифровка сделана автоматически (Yandex SpeechKit) и может содержать ошибки в терминах.
Принимаю заказы на автоматизацию технологических процессов. Разработка ПО для ПЛК, панелей операторов, SCADA. Доработка ПО. Возможно удалённо.