Форум
Приветствую Вас, Гость · RSS Вторник, 17.10.2017, 14:23

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Форум по статьям сайта » Все темы » Схема устройства универсального измерительного (Bascom-AVR) (САМОСТОЯТЕЛЬНАЯ РАБОТА с ИСХОДНИКАМИ...)
Схема устройства универсального измерительного (Bascom-AVR)
C@аtДата: Пятница, 25.01.2013, 19:35 | Сообщение # 1
Группа: Управляет МК
Эта ветка форума, создана для тех кто самостоятельно освоил или начинает осваивать начальный этап программирования по "мотивам" этой написанной программы Универсальная схема для построения измерительных устройств, МК Atmega8 – LED 2х3. (Автор  программы MACTEPok.)в среде Bascom-AVR
Так как тут еще возможно невероятное количество вариантов прошивок, прошу всех кто самостоятельно корректирует исходники этой программы , писать в этой ветке форума .
это также ваша возможность поделится своими успехами в этом деле с другими любителями таких схем.

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

Первый архив исходников и прошивок для этой таблицы ,
можно скачать ЗДЕСЬ
Прикрепления: Davlenie100_uro.rar(33Kb) · Naprjazhenie-te.rar(32Kb)
 
C@аtДата: Пятница, 25.01.2013, 19:35 | Сообщение # 2
Группа: Управляет МК
Эта ветка форума, создана для тех кто самостоятельно освоил или начинает осваивать начальный этап программирования по "мотивам" этой написанной программы Универсальная схема для построения измерительных устройств, МК Atmega8 – LED 2х3. (Автор  программы MACTEPok.)в среде Bascom-AVR
Так как тут еще возможно невероятное количество вариантов прошивок, прошу всех кто самостоятельно корректирует исходники этой программы , писать в этой ветке форума .
это также ваша возможность поделится своими успехами в этом деле с другими любителями таких схем.

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

Первый архив исходников и прошивок для этой таблицы ,
можно скачать ЗДЕСЬ
Прикрепления: Davlenie100_uro.rar(33Kb) · Naprjazhenie-te.rar(32Kb)
 
MACTEPokДата: Воскресенье, 27.01.2013, 21:09 | Сообщение # 3
Группа: Управляет МК
Сообщений: 351
И этим списком дело не ограничится.
 
MACTEPokДата: Понедельник, 28.01.2013, 08:20 | Сообщение # 4
Группа: Управляет МК
Сообщений: 351
Давление 5v..0v  0..100 , уровень 5v..0v 0..200 Зависимость линейная

 
Код
  X = 50                    ' чтобы опрос АЦП произошел в первом круге
Do
    If X > 40 Then                    ' увеличили период опроса АЦП, чтобы значения не прыгали ======
       Stop Timer0 : Stop Timer1                             ' на время преобразования останавливаем таймеры
       Set Adc_ready                    ' После опроса АЦП поднимаем флаг
       X = 0
       Ch1 = Getadc(5)                    ' 1 канал                    'опрос АЦП
       Ch2 = Getadc(4)                    ' 2 канал                    'опрос АЦП (диапазон от 0 до 1023)
       Chvar_1 = Ch1
       Chvar_2 = Ch2
       Start Timer0 : Start Timer1
    End If

    If Adc_ready = 1 Then
       Reset Adc_ready                    ' после расчета сбрасываем флаг, чтобы вычисление было 1 раз
       Chvar_1 = 1023 - Chvar_1
       Any_var = Chvar_1 / 10.23                             'пересчет тут любая формула для требуемого диапазона или необходимой характеристики ==============
       Chvar_1 = Any_var
       If Chvar_1 > 100 Then Chvar_1 = 100                   'верхний предел показаний

       Chvar_2 = 1023 - Chvar_2
       Any_var = Chvar_2 / 5.115                             'пересчет тут любая формула для требуемого диапазона или необходимой характеристики ==============
       Chvar_2 = Any_var
       If Chvar_2 > 200 Then Chvar_2 = 200                   'верхний предел показаний
       Stop Timer0 : Stop Timer1
       Channel_1 = Chvar_1                    ' присваиваем значения переменных для индикации
       Channel_2 = Chvar_2
       Start Timer0 : Start Timer1
    End If


Обработка нажатия кнопки Up:
Код
'
Up_const:
    Enable Interrupts : Enable Timer0 : Start Timer0
    Count = 0
    If Time_pause > 10 Then Time_pause = Time_pause - 5
    Select Case View_menu
       Case 1 :
             If On1 < 100 Then Incr On1                      '
       Case 2 :                    '
             If Off1 < 100 Then Incr Off1
       Case 3 :                    '
             If On2 < 200 Then Incr On2                      '
       Case 4 :                    '
             If Off2 < 200 Then Incr Off2
    End Select
    Waitms Time_pause
Return
'
 
MACTEPokДата: Понедельник, 28.01.2013, 08:26 | Сообщение # 5
Группа: Управляет МК
Сообщений: 351
Напряжение 0v..5v 0.200 , DS18B20 температура 0..120

Код
X = 60                    ' первое измерение АЦП без паузы

Do
    If X > 50 And Timer0 < 50 Then
       Stop Timer0 : Stop Timer1                             ' на время преобразования останавливаем таймеры
       Ch1 = Getadc(5)                    ' 1 канал                    'опрос АЦП
       Chvar_1 = Ch1
       Start Timer0 : Start Timer1
       Any_var = Chvar_1 / 5.115                             'пересчет тут любая формула для требуемого диапазона или необходимой характеристики ==============
       Channel_1 = Any_var
       If Chvar_1 > 200 Then Chvar_1 = 200
       X = 0
    End If

    If Conv_flag = 0 And Timer0 < 50 Then
       1wreset                    '
       1wwrite &HCC                    ' Выдаем команду чтения ПЗУ
       1wwrite &H44                    ' Запуск измерения
       Set Conv_flag
       Ds_count = 0
    End If
                    '
    If Read_flag = 1 And Timer0 < 50 Then                    '
       1wreset
       1wwrite &HCC
       1wwrite &HBE                    ' Команда чтения ОЗУ датчика
       Bd(1) = 1wread(9)
       If Bd(9) = Crc8(bd(1) , 8) Then
          Bd1 = Bd(1)                    ' Читаем нулевой байт
          Bd2 = Bd(2)                    ' Читаем первый байт
          If Bd2 >= 248 Then
             Bd1 = &H100 - Bd1
             Bd2 = &HFF - Bd2
             If Err = 0 Then Set Minus_flag                  '     Znak = "-"
          Else
             Reset Minus_flag                    '     Znak = "+"
          End If
          T1 = Bd1 / 16                    ' Сдвигаем нулевой байт вправо на 4 бита (2*2*2*2=16)
          T2 = Bd2 * 16                    ' Сдвигаем первый байт влево на 4 бита (2*2*2*2=16)
          T1 = T1 + T2
'        T1 = T1 * 10
          Chvar_2 = T1                    'отсекаем от температуры все после запятой
          If Err = 0 Then
             If Chvar_2 > 120 Then Chvar_2 = 120
             Set Upravl_flag
             Channel_2 = Chvar_2
          End If
          Reset Read_flag
          Reset Conv_flag
       End If
    End If


Обработка нажатия кнопки Up: 
Код
'
Up_const:
    Enable Interrupts : Enable Timer0 : Start Timer0
    Count = 0
    If Time_pause > 10 Then Time_pause = Time_pause - 5
    Select Case View_menu
       Case 1 :
             If On1 < 200 Then Incr On1                      '
       Case 2 :                    '
             If Off1 < 200 Then Incr Off1
       Case 3 :                    '
             If On2 < 120 Then Incr On2                      '
       Case 4 :                    '
             If Off2 < 120 Then Incr Off2
    End Select
    Waitms Time_pause
Return
'
 
TIOSAДата: Среда, 30.01.2013, 15:16 | Сообщение # 6
Группа: Пользователи
Сообщений: 5
Подскажите , в каком месте(местах) кода устанавливается точка разряда, есть желание под свои 
нужды, переделать "Вольтамперметр МК Atmega8 с автоматическим выбором измеряемого диапазона силы тока". Пока интересует точка вольтметра.
Нужно сделать прошивку для 2х диапазонного вольтметра, амперметра, он же вольтамперметр с автоматическим выбором измеряемого напряжения. Первый предел от 0 до 99.9v, второй от 100 до 300v или от 100 до 500v (второй как Вам будет легче). Ток от 0 до 9.99а. Входа от 0 до 5V. Источник с прошивками и исходниками http://c2.at.ua/load....-1-0-79 
Архив прошивок
Прикрепления: 5-0.0_999_9.99.rar(15Kb)
 
C@аtДата: Четверг, 31.01.2013, 16:24 | Сообщение # 7
Группа: Управляет МК
Товарищи, любители схем и МК не пишите в этой теме подобные вопросы

С этим нужно, возможно сюда или в еще какую тему в которой идет разбор "почему горят контроллеры от программатора"
alpar09 по сути ваших вопросов , для этой темы ничего полезного нет.....
Файлы которые вас интересуют прикреплены к первому сообщению этой темы
 
MACTEPokДата: Пятница, 01.02.2013, 07:12 | Сообщение # 8
Группа: Управляет МК
Сообщений: 351
C@аtok
 
TIOSAДата: Воскресенье, 03.02.2013, 11:18 | Сообщение # 9
Группа: Пользователи
Сообщений: 5
Схема
Прикрепления: VA_avtoV.rar(20Kb)
 
MACTEPokДата: Среда, 06.02.2013, 10:46 | Сообщение # 10
Группа: Управляет МК
Сообщений: 351
Амперметр 0,00 .. 9,99А - двухдиапазонный вольтметр 00,0 .. 99,9; 0 .. 300В
PC3 - амперметр
PC4 - 00,0 .. 99,9В . Обязательно повесить стабилитрон на 5.0v
PC5 - 0..300В

Уставка амперметра одна Off1, при достижении которой нагрузка 1 отключается. Повторное включение 1 нагрузки кнопками Up или Down в основном режиме работы.
Уставки вольтметра. Включение нагрузки 2 при превышении On2 (сигнализация превышения напряжения)
Выключение нагрузки 2 при снижении напряжения ниже Off2 (мало ли пригодится)
Прикрепления: --2_TIOSA.rar(30Kb)
 
TIOSAДата: Среда, 06.02.2013, 15:51 | Сообщение # 11
Группа: Пользователи
Сообщений: 5
Благодарствую, сегодня испытаю отпишусь
 
MACTEPokДата: Суббота, 09.02.2013, 15:44 | Сообщение # 12
Группа: Управляет МК
Сообщений: 351

dim-mzk, подправил. Насчет несохранения типа индикатора, была удалена в коде строка
Код
Readeeprom Indicator , 26
 
По части мерцаний тоже подправил. Частоту обновления показаний можете сами изменить
Прикрепления: 5674503.rar(31Kb)
 
dim-mzkДата: Суббота, 09.02.2013, 16:38 | Сообщение # 13
Группа: Front-rank users
Сообщений: 9
Я тоже немного подправил, не сохранялись уставки, после исправления строки на
Writeeeprom On1 , 0                             запись уставки OFF2  в EEPROM (в оригинале было Off2 , 14)
и Writeeeprom Off1 , 5 ... В общем не знаю как, но заработало.
Спасибо!!
Прикрепления: _1.bas(23Kb)


Сообщение отредактировал dim-mzk - Суббота, 09.02.2013, 16:42
 
MACTEPokДата: Суббота, 09.02.2013, 16:46 | Сообщение # 14
Группа: Управляет МК
Сообщений: 351

dim-mzk,  в общем, результат многократного изменения исходников ))
 
dim-mzkДата: Суббота, 09.02.2013, 17:36 | Сообщение # 15
Группа: Front-rank users
Сообщений: 9
Объединил прошивки выше с 13 и 14 поста. Все работает на частоте 8Мгц без проблем. Пусть обкатывается пока в железе ночь, если все нормально, прошью мегу в смд корпусе и впаяю ее в почти готовую (не хватает меги8а и МС34063 стабилизатора)  условно компактную плату вольтметра.
 Что означают цифры в прошивке после Sound_count  , 124 , 500?
Спасибо за помощь!!!!
Прикрепления: _2.bas(23Kb)


Сообщение отредактировал dim-mzk - Суббота, 09.02.2013, 17:49
 
MACTEPokДата: Суббота, 09.02.2013, 20:18 | Сообщение # 16
Группа: Управляет МК
Сообщений: 351

dim-mzk,  читай справку в баскоме. первая цифра указывает число импульсов, вторая - время состояния порта в "1" или "0". короче, опытным путем подбирать.
 
TIOSAДата: Суббота, 16.02.2013, 15:10 | Сообщение # 17
Группа: Пользователи
Сообщений: 5
Прошу прощения за долгое молчание. Работа. Плата готова, микросхема прошита прошивкой из --2_TIOSA.rar(30Kb) В плате косяков нет. Не горят, иногда еле подсвечивают сегменты А(dig2, dig3, dig4, dig6).Еще такая закономерность, когда во второй цифре, т.е. dig5,загорается 1 или 4 ,то тухнет точка dig5.

У меня все заработало ((сопелька в плате), спасибо огромное, позже вложу фото, печатку и т.д Еще раз спасибо.
 
Форум » Форум по статьям сайта » Все темы » Схема устройства универсального измерительного (Bascom-AVR) (САМОСТОЯТЕЛЬНАЯ РАБОТА с ИСХОДНИКАМИ...)
Страница 1 из 11
Поиск:

Конструктор сайтов - uCoz
Copyright MyCorp © 2017