[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Термопара
m-mishelДата: Пятница, 16.01.2015, 23:45 | Сообщение # 1
Группа: Проверенные
Сообщений: 7

Статус: Offline
существует написаная программа автором . http://avrproject.ru/publ....-1-0-70

 если  добавить к схеме реле ,то как им управлять?
если задача такова : включить реле если температура термопары 50 C или меньше, то   работает реле покуда не достигнет до 200С и отключается реле и пошел отсчет времени 1 минута и снова сравниваем температуру если она составила снова 50 С или меньше,то включаем реле до 200С и т.д.

Таймер зайдествовать внутренний типа Timer или Waitms ?
какой код лучше тут использовать If и Else или же как-то лучше по другому ?
помогите дописать :-) а то застопарился и не знаю как запустить это дело хотя б без экрана(без меню программирования порогов срабатывания реле по температуре с помощью кнопок )



[code][/code]
$regfile = "m8535.dat" 'выбранный тип микроконтроллера атмега 8535
$crystal = 8000000 'частота 8 герц, от внутренего генератора атмеги
$hwstack=40
$swstack=16
$framesize=32
Dim T As Integer 'переменная T в которую будет записыватся показания

Config Portd.0 = Output 'выход для реле
Reley Alias Portd.0 'Даем имя порту Reley чтоб было чуть проще

'Подключение двухстрочного диспелея

Config Lcdpin = Pin , Rs = Portb.0 , E = Portd.7 , Db4 = Portd.6 , Db5 = Portd.5 , Db6 = Portb.7 , Db7 = Portb.6 'указаные порты LCD
Config Lcd = 16 * 2 'Тип матрицы экрана
Cursor Off 'выключаем мигание курсора на экране
Cls 'Чистим экран

'Считывание значений с Аналогово-цифрового Преобразователя(АЦП) по прериваниванию по таймеру

Config Timer1 = Timer , Prescale = 64
On Timer1 Acp

'Конфигурация АЦП

Config Adc = Single , Prescaler = Auto , Reference = Avcc 'Adc-режим считывание . Single- единичное считывание . Prescaler-чистата дискретизации=64 .
'Reference -выбор Источника Опорного Напряжения =Avcc - напряжение питания схемы у нас это 5 вольт

Enable Interrupts
Enable Timer1
'Выводим простую информацию для проверки экрана
Lcd "temp. control" 'наше устройство
Lowerline 'вторая строка
Lcd "AVRproject.ru" 'наш любимый сайт
Wait 3
Cls 'чистим экран заново после нашего текста

Do 'вечное выполнение нашей нижней программы
If T > = 50 Then 'условие
Reley = 1

Else

Reley = 0 'иначе, если это условие не выполняется

Waitms 1000
End If

Cls

Lcd "Temp.:"
Lowerline
Lcd T ; "C"

Waitms 200

Loop

Acp:

Start Adc
'этой командой на преобразователь поступает питание
'работу преобразователя также можно остановить в любой момент
'для этого пишем команду:
'Stop Adc
T = Getadc(1) 'считываем первый канал PC1/ADC1 АЦП и записываем в переменную
T = T / 1.28 'подгоняем замеры под действительность температуры
Return

End
Прикрепления: proba_temp.lib (2.6 Kb) · proba_temp.bm (0.1 Kb)


 
sany2Дата: Суббота, 17.01.2015, 01:00 | Сообщение # 2
Группа: Проверенные
Сообщений: 107

Статус: Offline
У вас настроен таймер1 :
Config Timer1 = Timer , Prescale = 64
On Timer1 Acp
stop Timer1   'остановим таймер
частота 8мгц,отсюда таймер будет переполняться каждые  0,52428 c  (64/8000000*65535).Делм 60 на 0,52428-получаем 114,4426642252232(ну округлим до 114-думаю вам большая точность не нужна,если нужно точнее уменьшайте предделитель,выбирайте другой кварц и т.д.).
start ADC можно сразу после конфигурации ADC
В программе переполнения увеличиваем зараннее созданную переменную допустим
Dim w1 as byte 'считать только до 114 ,поэтому хватит и такой
Acp:
incr w1
Return

код(примерный)
$regfile = "m8def.dat"
$crystal = 8000000

Dim T As Byte
Dim W1 As Byte

Config Portd.0 = Output
Rele Alias Portd.0
Main:
Stop Timer1
W1 = 0

Do
T = Getadc(1)
T = T / 1.28

If T<=50 then
rele=1
end if

If T>200 then
Gosub Ost
end if
waitms 50
loop

ost:
rele=0
start timer1
Do
T = Getadc(1)
T = T / 1.28
if w1>=114  then
If T <= 50 Then
Goto Main
end if
If T > 50 Then
W1 = 0
End If
End If
waitms 50
Loop

Acp:
incr w1
Return

Это не есть абсолютая истина-можно написать короче и красивее,в одном цикле,но чтобы разобраться думаю пойдёт




Сообщение отредактировал sany2 - Суббота, 17.01.2015, 01:18
 
victor_barinchykДата: Вторник, 26.07.2016, 16:02 | Сообщение # 3
Группа: Проверенные
Сообщений: 2

Статус: Offline
под какой контроллер подходит прога http://www.owen.by/produkt....olleryi ???

 
exersizzeДата: Вторник, 26.07.2016, 23:34 | Сообщение # 4
Группа: Администраторы
Сообщений: 723

Статус: Offline
Ни под какой, это код для микроконтроллеров atmega а не ПЛК.

 
victor_barinchykДата: Среда, 27.07.2016, 10:15 | Сообщение # 5
Группа: Проверенные
Сообщений: 2

Статус: Offline
angry
Спасибо..


 
  • Страница 1 из 1
  • 1
Поиск: