BASCOM AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
KOTик
Встал на лапы
Сообщения: 148
Зарегистрирован: Пн июн 07, 2010 16:16:57
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение KOTик »

edm2007 писал(а):KOTик, а ИОН у АЦП кто?
Приветствую, учитель :)
Вот код

Код: Выделить всё

$regfile = "attiny85.dat"
$crystal = 1000000
$hwstack = 40
$swstack = 16
$framesize = 32
Config Debounce = 75 
Open "comb.1:9600,8,n,1" For Output As #1                   'UART PB.1 TXD


Dim Adc_value As Word                                       'сюда положим значение АЦП во время измерения

'На каждые 0,1 вольт значение АЦП = 10 -------> !!! Зависит от нагрузки. Чем мощнее нагрузка, тем больше падение напряжения и, соответственно, значение АЦП тоже скажет.
'Делитель напряжения
'[ВХОД] -----10к --------> 4,7к [GND]
'                   |
'                   |
'              ADC(1)

Const Threshold = 740                                       '11.6B
Config Portb.0 = Output                                     'OUT
Led Alias Portb.0                                          'LED висит PORTB.0


'Настройка АЦП
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Stop Adc


'Программа

Do

Start Adc                                                      'запускаем АЦП
Adc_value = Getadc(1)                                 'кладем значение в Adc_value
Print #1 , "ADC1 = " ; Adc_value                   'выводим в терминал

If Adc_value > Threshold Then                      'Если значение АЦП > Threshold
Led = 1                                                       'включаем светик
End If                                                         'конец условия

If Adc_value =< Threshold Then                  'Если значение АЦП =< Threshold
Led = 0                                                      'выключаем светик
End If                                                         'конец условия

Loop

'-------------------------------------------------------------------------------
End                                                         'end program
Basic-AVR Help говорит, что у тини85 Reference voltage может быть:
  • - AVCC
    - EXTERNAL or OFF
    - INTERNAL_1.1
    - INTERNAL_2.56_NOCAP
    - INTERNAL_2.56_EXTCAP
Но в таком случае, как считать вольты и подключать 7ой пин (ADC1) к МК?
И тут где-то читал, что у внутреннего ИОНа тоже имеется погрешность.

Буду признателен, если поможете :)
Реклама
Аватара пользователя
Мурлокотам
Встал на лапы
Сообщения: 139
Зарегистрирован: Вт ноя 06, 2012 12:37:08
Откуда: СПб

Re: BASCOM AVR в вопросах и ответах

Сообщение Мурлокотам »

Для начала хотелось бы увидеть полную схему. ибо объяснения на пальцах не понятны. И если у вас под нагрузкой проседает напряжение источника питания, то ничего хорошего ждать не приходится.
как считать вольты и подключать 7ой пин (ADC1) к МК?
7-ой пин к МК уже подключен, полагаю - вы имеете ввиду что на него подавать - не выше напряжения ИОНа, в противном случае будет переполнение АЦП. А считать как в datasheet : ADC=Vin*1024/Vref или Vin = ADC*Uref/1024.

Проверку условий можно проще записать:

If Adc_value > Threshold Then
Led = 1
Else
Led = 0
End If

Я бы еще в конце задержку добавил, чтоб не мельтешить, но это на ваше усмотрение.
Лом - это сложное техническое устройство.
Реклама
Sergik07
Родился
Сообщения: 19
Зарегистрирован: Вт сен 10, 2013 18:12:58

Re: BASCOM AVR в вопросах и ответах

Сообщение Sergik07 »

Если Reference = Avcc,то АЦП будет опираться именно на напряжение питания схемы(контроллера). Если при включении нагрузки питание контроллера меняется,значит и показания АЦП будут меняться. Было бы логичней использовать внутренний ИОН на 2.56 и подключить ногу АЦП по даташиту.Если ядреной точности не нужно,то и внутренний ИОН вполне сгодится. В крайнем случае можно сделать 50-70 выборок и усреднить показания АЦП. Если АЦП запущен и не остановлен в основном цикле,наверное нет необходимости в команде Start ADC в том же основном цикле.
Аватара пользователя
KOTик
Встал на лапы
Сообщения: 148
Зарегистрирован: Пн июн 07, 2010 16:16:57
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение KOTик »

Мррр :)
Простите за молчание
Мурлокотам писал(а): ...
Проверку условий можно проще записать:

If Adc_value > Threshold Then
Led = 1
Else
Led = 0
End If
Да. Можно и так. Я просто писал на скорую руку и по памяти :)
Мурлокотам писал(а): Я бы еще в конце задержку добавил, чтоб не мельтешить, но это на ваше усмотрение.
А как?
Sergik07 писал(а):Если Reference = Avcc,то АЦП будет опираться именно на напряжение питания схемы(контроллера). Если при включении нагрузки питание контроллера меняется,значит и показания АЦП будут меняться. Было бы логичней использовать внутренний ИОН на 2.56 и подключить ногу АЦП по даташиту.Если ядреной точности не нужно,то и внутренний ИОН вполне сгодится. В крайнем случае можно сделать 50-70 выборок и усреднить показания АЦП. Если АЦП запущен и не остановлен в основном цикле,наверное нет необходимости в команде Start ADC в том же основном цикле.
А как реализовать эти выборки?
Высокая точность не нужна: +/-0,1Вольт достаточно. Код урезанный, потом и СтартАДЦ попал в главный цикл.
Вот схема:
circuit.JPG
протеус
(199.12 КБ) 437 скачиваний
Тут 7ой пин (ADC1) через делитель подключен к напряжению питанию всей схемы.
Получается, если задействовать внутренний ИОН, то этот пин можно будет использовать под другие нужды?
Тогда, как в таком случае считать значения АЦП и переводить их в Вольты?

Может будет у кого кусочек кода с комментами для разбора полетов :)
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Мурлокотам
Встал на лапы
Сообщения: 139
Зарегистрирован: Вт ноя 06, 2012 12:37:08
Откуда: СПб

Re: BASCOM AVR в вопросах и ответах

Сообщение Мурлокотам »

Начнем с конца. 7-ой вывод не является входом опорного напряжения, а используется как вход АЦП. ИОНом у вас является напряжение питания МК, и от того насколько оно качественное, зависит точность измерения. Каковы параметры источника питания? В первую очередь нужно добиться того, чтобы оно не менялось в зависимости от нагрузки. Это важно и при использовании внутреннего ИОНа 2,56 В или 1,1 В.
Далее, вы лампочку прямо на порт что-ли подключаете? Сожжете порт.
Я вообще, не случайно просил полную схему, т. е. с источником питания и подключением нагрузки.
Задержка - это просто: Wait или Waitms или Waitus и время в секундах или миллисекундах или микросекундах соответственно. В help' е все есть.
Лом - это сложное техническое устройство.
Реклама
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение edm2007 »

KOTик писал(а):Получается, если задействовать внутренний ИОН, то этот пин можно будет использовать под другие нужды?
Тогда, как в таком случае считать значения АЦП и переводить их в Вольты?
ИОН, это Источник Опорного Напряжения. Точка опоры для АЦП. Именно с ним сравнивается измеряемое напряжение, поданное на выводы ADC. В качестве ИОН может использоваться напряжение питания самого контроллера, внутренний ИОН на фиксированное напряжение (1,1В, 2,56В), а так же в некоторых микроконтроллерах существует возможность подать внешнее опорное напряжение на вывод AREF. Измеряемое напряжение не должно быть выше опорного (ничего страшного, но при достижении опорного значение АЦП достигнет максимума - 1023, и дальше изменяться не будет), и категорически не должно быть больше нормального напряжения питания МК.
KOTик писал(а):А как реализовать эти выборки?
Выборки это всего лишь наплюсовать кучу измерений и разделить полученное на количество измерений. Среднее арифметическое.
Последний раз редактировалось edm2007 Ср дек 16, 2015 14:53:18, всего редактировалось 1 раз.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Реклама
Sergik07
Родился
Сообщения: 19
Зарегистрирован: Вт сен 10, 2013 18:12:58

Re: BASCOM AVR в вопросах и ответах

Сообщение Sergik07 »

А как реализовать эти выборки?
Делал вольтметр так:

Код: Выделить всё

'вольтметр,входное напр макс.12в

$regfile = "attiny85.dat"
$crystal = 4000000
$hwstack = 40
$swstack = 16
$framesize = 32

Dim Un As Word
Dim Ud As Single
Dim A As Byte
Dim S1 As Single

Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc

Do

   Waitms 20

   For A = 0 To 45                                          'замеры АЦП с усреднением
      Un = Getadc(1)
      Un = Getadc(1)
      S1 = S1 + Un
   Next A

   Un = S1 / A
   Ud = Un * 0.01173                                        'напряжение в вольтах
   S1 = 0

Loop
End
Вот здесь https://yadi.sk/d/WKum0Ob0mGFvsисходник и маленький файлик excel для рассчета вольтметра.
Аватара пользователя
Dnepr_1186
Потрогал лапой паяльник
Сообщения: 398
Зарегистрирован: Чт мар 26, 2009 20:53:27
Откуда: Беларусь.Минская обл.

Re: BASCOM AVR в вопросах и ответах

Сообщение Dnepr_1186 »

Мужики помогите решить задачку. Имеется экран 3310 с помощью кнопки должны менятся выводимые на дисплей параметры.
У меня три экрана параметров грубо говоря. Смену задал так. При нажатии кнопки переменная менятся от 0 до 2.
Дальше задал условие если переменная если равна 0 то выводим один параметр, если 1 то другой и т.д.
Но вот незадача-перед выводом следущих параметров необходимо очситить экран от старого и сделать это нужно только один раз. И тут условие это непроходит т.к. очитска экрана будет происходить каждый цикл программы. Как это реализовать чтобы экран очищался только первый цикл после изменения отображаемых параметров.?
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: BASCOM AVR в вопросах и ответах

Сообщение COKPOWEHEU »

Очищать по нажатию кнопки не устраивает?
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение edm2007 »

Здравствуйте.

* Выше ответили уже. :)
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
Dnepr_1186
Потрогал лапой паяльник
Сообщения: 398
Зарегистрирован: Чт мар 26, 2009 20:53:27
Откуда: Беларусь.Минская обл.

Re: BASCOM AVR в вопросах и ответах

Сообщение Dnepr_1186 »

БЛИН, затупил! Спасибо!
pavel1979
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

Re: BASCOM AVR в вопросах и ответах

Сообщение pavel1979 »

Возникла необходимость ставить 2 жки 16*2,информация на них будет выводиться разная,как можно это организовать?
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение edm2007 »

Здравствуйте.

Линии данных и RS параллельно, а выводы E как выбор активного индикатора.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
pavel1979
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

Re: BASCOM AVR в вопросах и ответах

Сообщение pavel1979 »

Спасибо,попробую...
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

Re: BASCOM AVR в вопросах и ответах

Сообщение max50 »

А можно и через PCF8574, и не только два.
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
pavel1979
Мучитель микросхем
Сообщения: 494
Зарегистрирован: Пн авг 12, 2013 19:07:47
Откуда: башкирия мелеуз

Re: BASCOM AVR в вопросах и ответах

Сообщение pavel1979 »

так и бьюсь-все никак,достал из запасов PCF8574T,толком на один индикатор не смог переделать,гуглом нашел примеры-по описанию глючные немного,решил ставить один 1602,а второй нокиа5110-так мне проще

чтото ваша ссылка устарела... :(
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

Re: BASCOM AVR в вопросах и ответах

Сообщение max50 »

У меня все нормально. http://bascomavr.3bb.ru/viewtopic.php?id=981
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
Аватара пользователя
Moto_v3x
Потрогал лапой паяльник
Сообщения: 307
Зарегистрирован: Ср мар 31, 2010 11:45:58
Откуда: Славянск

Re: BASCOM AVR в вопросах и ответах

Сообщение Moto_v3x »

еще можно использовать библиотеку lcd4e2.lib и работать с двумя 16х2 как с одним 40х4
http://avrhelp.mcselec.com/index.html?lcd4e2.htm
_Vasilij_
Встал на лапы
Сообщения: 124
Зарегистрирован: Пт янв 25, 2013 02:48:32

Re: BASCOM AVR в вопросах и ответах

Сообщение _Vasilij_ »

Всех с наступающим !
Подскажите,пожалуйста по такому вопросу, раньше пользовал дисплей нокиа 1100 и библиотеку с увеличением шрифта.
Перешел на цветной дисплей нокиа 6100 и библиотеку pcf8833, есть ли для цветных дисплеев варианты увеличения шрифтов ? Штатный фонтэдитор создает максимум 32х32, а это 7мм в высоту -маловато будет, надо бы раза в полтора-два больше.
Пробовал десять картинок с цифрами(48х64), но они очень много памяти жрут - не вариант. Есть ли какие-то готовые библиотеки для масштабирования шрифтов или хотя бы просто цифр ?
Sergik07
Родился
Сообщения: 19
Зарегистрирован: Вт сен 10, 2013 18:12:58

Re: BASCOM AVR в вопросах и ответах

Сообщение Sergik07 »

_Vasilij_ писал(а):Есть ли какие-то готовые библиотеки для масштабирования шрифтов или хотя бы просто цифр ?
Вот здесь не смотрели? http://bart-projects.cba.pl/font.html
Ответить

Вернуться в «AVR»