Страница 239 из 304

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

Добавлено: Вс дек 13, 2015 20:10:52
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) к МК?
И тут где-то читал, что у внутреннего ИОНа тоже имеется погрешность.

Буду признателен, если поможете :)

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

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

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

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

Я бы еще в конце задержку добавил, чтоб не мельтешить, но это на ваше усмотрение.

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

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

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

Добавлено: Вт дек 15, 2015 20:32:14
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 КБ) 441 скачивание
Тут 7ой пин (ADC1) через делитель подключен к напряжению питанию всей схемы.
Получается, если задействовать внутренний ИОН, то этот пин можно будет использовать под другие нужды?
Тогда, как в таком случае считать значения АЦП и переводить их в Вольты?

Может будет у кого кусочек кода с комментами для разбора полетов :)

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

Добавлено: Ср дек 16, 2015 08:55:13
Мурлокотам
Начнем с конца. 7-ой вывод не является входом опорного напряжения, а используется как вход АЦП. ИОНом у вас является напряжение питания МК, и от того насколько оно качественное, зависит точность измерения. Каковы параметры источника питания? В первую очередь нужно добиться того, чтобы оно не менялось в зависимости от нагрузки. Это важно и при использовании внутреннего ИОНа 2,56 В или 1,1 В.
Далее, вы лампочку прямо на порт что-ли подключаете? Сожжете порт.
Я вообще, не случайно просил полную схему, т. е. с источником питания и подключением нагрузки.
Задержка - это просто: Wait или Waitms или Waitus и время в секундах или миллисекундах или микросекундах соответственно. В help' е все есть.

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

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

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

Добавлено: Ср дек 16, 2015 12:12:25
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 для рассчета вольтметра.

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

Добавлено: Пт дек 18, 2015 11:53:16
Dnepr_1186
Мужики помогите решить задачку. Имеется экран 3310 с помощью кнопки должны менятся выводимые на дисплей параметры.
У меня три экрана параметров грубо говоря. Смену задал так. При нажатии кнопки переменная менятся от 0 до 2.
Дальше задал условие если переменная если равна 0 то выводим один параметр, если 1 то другой и т.д.
Но вот незадача-перед выводом следущих параметров необходимо очситить экран от старого и сделать это нужно только один раз. И тут условие это непроходит т.к. очитска экрана будет происходить каждый цикл программы. Как это реализовать чтобы экран очищался только первый цикл после изменения отображаемых параметров.?

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

Добавлено: Пт дек 18, 2015 12:17:38
COKPOWEHEU
Очищать по нажатию кнопки не устраивает?

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

Добавлено: Пт дек 18, 2015 12:30:00
edm2007
Здравствуйте.

* Выше ответили уже. :)

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

Добавлено: Пт дек 18, 2015 12:44:57
Dnepr_1186
БЛИН, затупил! Спасибо!

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

Добавлено: Ср дек 23, 2015 15:32:10
pavel1979
Возникла необходимость ставить 2 жки 16*2,информация на них будет выводиться разная,как можно это организовать?

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

Добавлено: Ср дек 23, 2015 15:36:01
edm2007
Здравствуйте.

Линии данных и RS параллельно, а выводы E как выбор активного индикатора.

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

Добавлено: Ср дек 23, 2015 16:32:47
pavel1979
Спасибо,попробую...

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

Добавлено: Чт дек 24, 2015 17:18:36
max50
А можно и через PCF8574, и не только два.

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

Добавлено: Чт дек 24, 2015 17:45:55
pavel1979
так и бьюсь-все никак,достал из запасов PCF8574T,толком на один индикатор не смог переделать,гуглом нашел примеры-по описанию глючные немного,решил ставить один 1602,а второй нокиа5110-так мне проще

чтото ваша ссылка устарела... :(

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

Добавлено: Чт дек 24, 2015 17:50:27
max50
У меня все нормально. http://bascomavr.3bb.ru/viewtopic.php?id=981

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

Добавлено: Чт дек 24, 2015 17:57:53
Moto_v3x
еще можно использовать библиотеку lcd4e2.lib и работать с двумя 16х2 как с одним 40х4
http://avrhelp.mcselec.com/index.html?lcd4e2.htm

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

Добавлено: Ср дек 30, 2015 14:27:12
_Vasilij_
Всех с наступающим !
Подскажите,пожалуйста по такому вопросу, раньше пользовал дисплей нокиа 1100 и библиотеку с увеличением шрифта.
Перешел на цветной дисплей нокиа 6100 и библиотеку pcf8833, есть ли для цветных дисплеев варианты увеличения шрифтов ? Штатный фонтэдитор создает максимум 32х32, а это 7мм в высоту -маловато будет, надо бы раза в полтора-два больше.
Пробовал десять картинок с цифрами(48х64), но они очень много памяти жрут - не вариант. Есть ли какие-то готовые библиотеки для масштабирования шрифтов или хотя бы просто цифр ?

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

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