Эта ветка форума, создана для тех кто самостоятельно освоил или начинает осваивать начальный этап программирования по "мотивам" этой написанной программы Универсальная схема для построения измерительных устройств, МК Atmega8 – LED 2х3. (Автор программы MACTEPok.)в среде Bascom-AVR Так как тут еще возможно невероятное количество вариантов прошивок, прошу всех кто самостоятельно корректирует исходники этой программы , писать в этой ветке форума . это также ваша возможность поделится своими успехами в этом деле с другими любителями таких схем.
Наиболее востребованные варианты исходников, будут дополнятся в шапку этого форума в виде архива. Мой пример работы с этой замечательной программой, смотрите в составленной таблице различных прошивок (оригинал таблицы см. в конце статьи)
Первый архив исходников и прошивок для этой таблицы , можно скачать ЗДЕСЬ
Эта ветка форума, создана для тех кто самостоятельно освоил или начинает осваивать начальный этап программирования по "мотивам" этой написанной программы Универсальная схема для построения измерительных устройств, МК Atmega8 – LED 2х3. (Автор программы MACTEPok.)в среде Bascom-AVR Так как тут еще возможно невероятное количество вариантов прошивок, прошу всех кто самостоятельно корректирует исходники этой программы , писать в этой ветке форума . это также ваша возможность поделится своими успехами в этом деле с другими любителями таких схем.
Наиболее востребованные варианты исходников, будут дополнятся в шапку этого форума в виде архива. Мой пример работы с этой замечательной программой, смотрите в составленной таблице различных прошивок (оригинал таблицы см. в конце статьи)
Первый архив исходников и прошивок для этой таблицы , можно скачать ЗДЕСЬ
Дата: Понедельник, 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 '
Дата: Понедельник, 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 '
Подскажите , в каком месте(местах) кода устанавливается точка разряда, есть желание под свои нужды, переделать "Вольтамперметр МК Atmega8 с автоматическим выбором измеряемого диапазона силы тока". Пока интересует точка вольтметра. Нужно сделать прошивку для 2х диапазонного вольтметра, амперметра, он же вольтамперметр с автоматическим выбором измеряемого напряжения. Первый предел от 0 до 99.9v, второй от 100 до 300v или от 100 до 500v (второй как Вам будет легче). Ток от 0 до 9.99а. Входа от 0 до 5V. Источник с прошивками и исходниками http://c2.at.ua/load....-1-0-79 Архив прошивок
Товарищи, любители схем и МК не пишите в этой теме подобные вопросы
Цитата (alpar09)
Извините если не в тему, я только пробую ......А как эти коды добавлять?
Цитата (MACTEPok)
alpar09, качаем исходник и меняем соответственный кусок кода на нужный.
Цитата (alpar09)
Спасибо, попробую!
Цитата (MACTEPok)
alpar09, я же вам скинул необходимые прошивки.
Цитата (alpar09)
Спасибо! А я думал это архив с таблицы!!!! А можно как то подкоректировать напряжение, чтоб и десятые показывало? А то у меня, например 11,4, а показания скачут 11 12 ......
Цитата (MACTEPok)
alpar09, а вы зачем просили измеряемый диапазон 0..200, а сами используете 0..20??
Цитата (alpar09)
Я думал поставлю запятую и все, чтоб не морочить Вам голову!Я же говорил, что приборы в тр-р, а там 12 вольт! Просите
Цитата (MACTEPok)
alpar09, так ставьте запятую, а делитель напряжения на 20В настроить!
Цитата (alpar09)
Делитель настроил, но оно все скачет 11-12, при напряжении 11,4!
Цитата (MACTEPok)
alpar09, у вас должно показывать 11.4 . кто то из нас не догоняет, однозначно.
Цитата (alpar09)
Значит однозначно я! Но десятые все равно не идут! И возможно спалить атмегу при проверке от комповского бп? Напряжение не подымалось выше 5 в на ней! На операционник идет крен12 а после 78l05! Добавлено (29.01.2013, 14:38) --------------------------------------------- Может я не правильно делаю! На входе напряжения только резистивный делитель и все! Правильно?
Добавлено (29.01.2013, 14:39) --------------------------------------------- Может я не правильно делаю! На входе напряжения только резистивный делитель и все! Правильно?
Цитата (MACTEPok)
alpar09, назовите диапазон напряжения, измеряя непосредственно на ноге МК после делителя напряжения? Я так понимаю, что оно меняется от 0 до 0,5В вместо 0..5В
Цитата (alpar09)
От ноля до 2,8
Цитата (MACTEPok)
alpar09, если при изменении напряжения на входе АЦП МК от 0..5В на дисплее какие сегменты светятся? Монтаж верный? Такое ощущение, что работают всего первые 2 разярда.
Цитата (alpar09)
Все три как и положено! Только переношу запятую! Я настроил подстроечникомна входе 2.56 показывает то 11.0,то 12.0!!!Питалось от комповкого бп! Подключаю нагрузку к нему, напряжение падает до 10,8,на входе мк 2,4 а на индикаторе показания падают до 1.6?????Что это может быть! После очередного подключения нагрузки сгорел мк и ds18b20!!!! Наверно большие помехи прт искре!!!
Цитата (MACTEPok)
Какую нагрузку? Покажите свою схему, плату и прошивк
Цитата (alpar09)
Нагрузку, чтоб посадить питающее напряжение! У меня измеритель меряет напряжение, от которого и питается сам!Прошивка Ваша, ту что дали мне в архиве -напряжение 0_5 200 и датчик ds18b20! Напряжение показывало с точностью до вольта, а температуру нормально!Просто мк сжег при подключении к бп, от которого питается схема, мощной лампы 12в! Добавлено (29.01.2013, 15:49) --------------------------------------------- Схема Ваш универсальный измеритель, на одном канале просто один делитель, на втоом ds!
Цитата (MACTEPok)
просто не понятно, в чем проблема с измерением. в чем то косяк у вас, тк подобный измеритель делали многие. Прошивку проверял в протеусе, все пашет.
Цитата (alpar09)
Не может сбоить от компьютерного блока?
Цитата (MACTEPok)
Проверяется это элементарно - подключением устройства к АКБ.
Цитата (alpar09)
Сделаю! Но уже сжег так 3 атмеги(
Цитата (MACTEPok)
А вы настойчивый ))
Цитата (alpar09)
После сбоя первой,прошиваю вторую подключаю, сразу греется и индикаторы тухнут, ставлю в программатор, уже не определяется ........И так же следующая
Цитата (MACTEPok)
ну. так может сначала монтаж проверите?
Цитата (alpar09)
Монтаж в норме ))Сразу же показывало нормально, и температеру и напряжение, только десятые не точно!
Цитата (MACTEPok)
alpar09, однако ж МК сгорает и показывает неточно только у вас
Цитата (alpar09)
Проверю еще раз!
Цитата (alpar09)
Подскажите будет ли работать в этой схеме ATMEGA8A-PU???А то простые закончились(((((
Цитата (MACTEPok)
будет
Цитата (C@аt )
alpar09 в вашем случае для начала стоит запустить базовую схему этого измерителя, а потом заливать в нее модификации прошивок, а пока такое общение может длится до бесконечности (ограничено только запасом контроллеров?)
Цитата (alpar09)
Спасибо! В следующий раз буду внимательней к высказываниям!
С этим нужно, возможно сюда или в еще какую тему в которой идет разбор "почему горят контроллеры от программатора" alpar09 по сути ваших вопросов , для этой темы ничего полезного нет..... Файлы которые вас интересуют прикреплены к первому сообщению этой темы
Уставка амперметра одна Off1, при достижении которой нагрузка 1 отключается. Повторное включение 1 нагрузки кнопками Up или Down в основном режиме работы. Уставки вольтметра. Включение нагрузки 2 при превышении On2 (сигнализация превышения напряжения) Выключение нагрузки 2 при снижении напряжения ниже Off2 (мало ли пригодится)
Я тоже немного подправил, не сохранялись уставки, после исправления строки на Writeeeprom On1 , 0 запись уставки OFF2 в EEPROM (в оригинале было Off2 , 14) и Writeeeprom Off1 , 5 ... В общем не знаю как, но заработало. Спасибо!!
Объединил прошивки выше с 13 и 14 поста. Все работает на частоте 8Мгц без проблем. Пусть обкатывается пока в железе ночь, если все нормально, прошью мегу в смд корпусе и впаяю ее в почти готовую (не хватает меги8а и МС34063 стабилизатора) условно компактную плату вольтметра. Что означают цифры в прошивке после Sound_count , 124 , 500? Спасибо за помощь!!!!
dim-mzk, читай справку в баскоме. первая цифра указывает число импульсов, вторая - время состояния порта в "1" или "0". короче, опытным путем подбирать.
Прошу прощения за долгое молчание. Работа. Плата готова, микросхема прошита прошивкой из --2_TIOSA.rar(30Kb) В плате косяков нет. Не горят, иногда еле подсвечивают сегменты А(dig2, dig3, dig4, dig6).Еще такая закономерность, когда во второй цифре, т.е. dig5,загорается 1 или 4 ,то тухнет точка dig5. У меня все заработало ((сопелька в плате), спасибо огромное, позже вложу фото, печатку и т.д Еще раз спасибо.