Термопара
|
|
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
|
|
| |
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
| Спасибо..
|
|
| |