Примеры программ bascom avr

Не так давно я заинтересовался популярной платформой для разработки электронных устройств, это – Arduino. Сначала эта платформа мне очень понравилась ввиду её простоты, универсальности и удобства. Свою написанную программу можно оперативно загрузить в микроконтроллер по COM или USB порту, не прибегая к помощи программатора. Я собрал себе клон Arduino под названием FreeduinoMax 232.

И начал изучать для себя невиданную среду программирования Processing , начал писать на ней простенькие программки для мигания светодиодами и прочими вещами. Но моя радость была не долгой. Во-первых, потому что для меня Processing жутко неудобная среда и язык программирования C в ней мне не по душе. Во-вторых, размер программ (скетчей) написанных в Processing жутко большой, например программа, которая просто мигает светодиодом, занимает 890 байт Flash памяти микроконтроллера. Это много, и с этим можно сразу забыть маленькие микроконтроллеры серии Attiny . В итоге, приятные впечатления у меня остались только от самой платы.

Работа с АЦП на примере ATtiny13 в BASCOM-AVR

Моя самодельная плата Arduino:

Для программирования микроконтроллеров мне очень нравится среда BASCOM — AVR , так как она достаточно быстрая, удобная и имеет массу приятных вещей. И я задумался, а как бы подружить плату Arduino и BASCOM — AVR . Именно про это я и расскажу в этой статье.

Начиная с версии 2.0, в BASCOM — AVR включена поддержка Arduino , для использования его как программатора, который программирует сам себя. Давайте разберемся, как нам программировать Arduino из BASCOM — AVR . Для начала запустим BASCOM — AVR и пройдём в меню настроек по цепочке Options – Programmer , вот так:

Далее увидим следующею картину:

Здесь, в выпадающем списке сверху, где “Programmer” нужно выбрать “ARDUINO”. Также в выпадающем списке “COM-port” выберите порт к которому у вас подключена плата Arduino. В поле “BAUD” выберите “19200”. Всё это уже показано на скрине выше. После установки всех этих настроек нажмите кнопку “Ok”.

Теперь можно писать программу и прошивать её в плату! Для тестирования, давайте напишем классическую “мигалку” светодиода подключённого к PORTB.5 микроконтроллера (на платах Arduino там уже есть светодиод под названием L).

Исходный код программы:

Читайте также:
В какой программе есть счет фактура

Источник: rfanat.ru

Тег BASCOM-AVR

Среда разработки программного кода для микроконтроллеров серии AVR компании Atmel на языке, подобном стандартному Бейсику.

Статьи | Видео | Пользователи

Урок 14. Программный UART в BASCOM-AVR

Цикл уроков по AVR-микроконтроллерам. Урок 14. Программный UART в BASCOM-AVR

2 0 [0]

Урок 16. Работа с энкодером в BASCOM-AVR

18.12.2012

Новогодняя ёлка своими руками на МК

Накануне Нового Года хочется сделать что-нибудь праздничное! А самое лучшее украшение дома — это всеми любимая елка. В статье описывается изготовление ёлки и блока управления световыми эффектами на микроконтроллере ATmega8

5 0 [0]

17.01.2013

Урок 15. Работа с датчиком температуры DS18B20 в BASCOM-AVR

Работа с цифровым датчиком температуры фирмы Dallas DS18B20 в BASCOM-AVR. Написание программы и практическая работа.

19 5 [1]

  • Урок 16. Работа с энкодером в BASCOM-AVR
  • Урок 12. Работа с компьютерной PS/2 клавиатурой в BASCOM-AVR
  • Урок 9. Работа с АЦП на примере ATtiny13 в BASCOM-AVR

10.02.2013

Частотомер до 16 МГц на микроконтроллере

Простой частотомер на микроконтроллере AVR Atmel tiny2313, с пределом измерения 16 МГц

15 3.5 [1]

  • Частотомер до 1 ГГц
  • Частотомер на CPLD
  • Частотомер на PIC16F628

03.03.2013

Бортовой компьютер на AVR микроконтроллере

Простой бортовой компьютер на микроконтроллере Atmel mega 8. Содержит часы реального времени, термометр, вольтметр и другие функции.

18 4.9 [3]

  • Бортовой компьютер для ЭБУ Bosch 7.9.7+ на MSP430
  • Бортовой компьютер для ВАЗ 2110
  • Бортовой тахометр на PIC16C84

21.03.2013

Урок 16. Работа с энкодером в BASCOM-AVR

Работа с энкодером в среде BASCOM-AVR, пример программы и практика

6 0 [0]

  • Урок 9. Работа с АЦП на примере ATtiny13 в BASCOM-AVR
  • Урок 12. Работа с компьютерной PS/2 клавиатурой в BASCOM-AVR
  • Урок 15. Работа с датчиком температуры DS18B20 в BASCOM-AVR

31.03.2013

Урок 17. Использование бутлоадера в BASCOM-AVR

Продолжение цикла уроков по BASCOM-AVR. Работа и использование бутлоадера в BASCOM-AVR. Теория и практический пример

2 4.9 [2]

13.04.2013

Урок 18. Работа с дисплеем от Nokia 3310

Работа с дисплеем от Nokia 3310 в BASCOM-AVR. Теория и практический пример.

29 5 [2]

  • STM32F4. Урок 6 — работа с дисплеем ST7783
  • STM32F4. Урок 33 — Работа с дисплеем SSD1289

24.04.2013

Универсальный двухканальный термометр на AVR

Перед вами проект двухканального термометра. Он может измерять температуру в диапазоне от -50.0 до +99.9 градусов. Устройство было разработано для измерения температуры в доме и на улице, но ему также можно найти и множество других применений. При небольшом изменении программы устройство также можно использовать в качестве термостата. Термометр построен на популярном и очень широко распространенном датчике DS18B20 и микроконтроллере ATtiny2313.

8 0 [0]

  • Универсальный программируемый термометр-термостат
  • Универсальный высоковольтный тестер
  • Универсальный цифровой тахометр

02.05.2013

Регулятор температуры для паяльника на 12 вольт с индикацией уровня на семисегментном индикаторе

Несложный цифровой регулятор температуры паяльника на 12 вольт с индикацией уровня на семисегментном индикаторе на AVR-микроконтроллере ATtiny13. С исходниками проектов в Proteus и BASCOM-AVR

Читайте также:
Лучшие программы для смены ВПН

9 4.6 [2]

1999-2023 Сайт-ПАЯЛЬНИК ‘cxem.net’

При использовании материалов сайта, обязательна
ссылка на сайт ПАЯЛЬНИК и первоисточник

Источник: cxem.net

Нажать и распознать ‒ микроконтроллер, Bascom-AVR и несколько кнопок

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

На этот раз рассмотрим работу с ним со стороны «устройств ввода информации», в качестве которых будут использоваться обычные кнопки.

Нефиксируемые, срабатывающие на замыкание.

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

1. Начнём с простой схемотехники

Обычно при подключении к микроконтроллеру одной или нескольких нефиксируемых кнопок пользуются вот такими схемами:

Если картинки данной статьи на вашем устройстве отображаются не очень отчётливо, можно попробовать открывать их отдельно, в соседней вкладке браузера. Или увеличить, просто щёлкнув по картинке мышью.

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

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

  • Каждая из подключенных кнопок занимает одну линию порта микроконтроллера. Целый отдельный вывод. И если на роскошном ATmega328P это не выглядит слишком большой расточительностью, то на крохах вроде ATtiny10, ATtiny13 или ATtiny45 может оказаться просто критичным для существования самой схемы.
  • Для каждой из подключенных кнопок необходимо разводить на плате отдельные печатные проводники или подключать кнопки отдельными проводами. Сказывается отрицательно на стремлении к миниатюризации конструкции.
  • К каждой кнопке по умолчанию прилагается свой отдельный резистор подтяжки. Для снижения эффекта «дребезга контактов» может прилагаться и отдельный конденсатор. А если задействовать срабатывание от нажатий кнопки по прерываниям, как вот здесь или здесь , то может потребоваться и по дополнительному разделительному диоду.

Многие (но не все) вышеперечисленные недостатки удастся обойти, если подключать кнопки по схеме делителя напряжения . Аппаратная сложность подключения при этом сопоставима с обычным способом подключения.

А из главных преимуществ ‒ возможность подключения практически любого (разумного) количества кнопок на одну линию порта микроконтроллера.

Подобные схемы, когда несколько кнопок подключены к одному входу и различаются только по коммутируемому сопротивлению, иногда можно видеть в конструкциях китайских разработчиков. Например вот в этом MP3-проигрывателе , только здесь используются разные сопротивления, что не совсем удобно.

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

А наша схема делителя напряжения может выглядеть примерно так:

2. Добавим немного расчётов

Перед сборкой понадобится рассчитать или хотя бы примерно прикинуть параметры делителя.

  • Мне необходимо использовать и распознавать нажатия от 8-ми кнопок. Соответственно делитель должен выдавать восемь уровней напряжения. То есть содержать минимум восемь последовательно соединенных резисторов, по одному на каждую кнопку.
  • Ток, протекающий через делитель, с одной стороны не должен быть слишком велик, ради экономии энергии источника питания, с другой, должен быть достаточным для определения срабатывания отдельной кнопки микроконтроллером. Я остановился на значении в 3-5 мА (это меньше, чем у индикаторного светодиода), но вполне возможны и другие варианты.
  • Сам делитель будет запитываться от источника питания с напряжением в 5 вольт.
Читайте также:
Стом х программа отзывы

Дальше закон Ома.

5 V / 0.003 А = 1667 Ом ‒ Это сопротивление всего делителя.

По 208 Ом на каждый из входящих в него резисторов.

У меня под рукой были резисторы на 180 Ом. При их использовании ток, протекающий через делитель, должен быть около 3.5 мА. Тоже вполне подойдёт.

Соответственно при последовательном нажатии кнопок (от одной до восьми) на выходе делителя напряжения теоретически получим 0.63, 1.26, 1.89, 2.52, 3.15, 3.78, 4.41 и 5.04 вольт.

3. Поясним общий принцип действия

Для распознавания нажатых кнопок задействуем аналого-цифровой преобразователь ‒ АЦП. Такой, и даже не один, есть практически в любом микроконтроллере AVR. Например в ATmega328P АЦП восьмиканальный для микроконтроллера в TQFP-корпусе и шестиканальный для микроконтроллера в DIP-корпусе. Нам будет достаточно использовать всего один канал. Каждый канал 10-ти разрядный, то есть измеряемое напряжение на входе канала может быть представлено в 1024 отсчётах: минимум ‒ 0, максимум ‒ 1023.

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

В данном же практикуме он не потребуется. Нам даже не потребуется переводить отсчёты измерения в вольты, преобразуя числа с плавающей запятой, экономя тем самым вычислительный ресурс микроконтроллера. Почему? Читаем дальше.

Из дополнительных преимуществ ‒ АЦП в микроконтроллере может работать с использованием системы прерываний. Что позволяет задействовать перевод микроконтроллера в спящий режим и снизить его энергопотребление. А на практике оказывается, что программировать распознавание кнопок с помощью АЦП даже проще, чем вести обработку нажатий обычных отдельных кнопок.

Для отображения результатов измерений будем использовать четырёхразрядный 7-ми сегментный индикатор, а также 10-ти сегментную светодиодную шкалу.

Тестовый стенд с ними ‒ «цифровой кирпичик номер 3» ‒ подробно рассматривался в прошлой статье .

Вот и пришла пора выводить на них что-то более осмысленное, чем циклический перебор значений заложенного в прошивку знакогенератора.

4. Представим окончательную схему

Сама же итоговая схема электрическая принципиальная для реализации описанной функциональности будет выглядеть так:

Источник: dzen.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru