| Термопара | 
| 
				
			 | 
| 
| 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 |  |   Группа: Администраторы Сообщений: 720 
 Статус: Offline | Ни под какой, это код для микроконтроллеров atmega а не ПЛК. 
 
 |  
 |  |  |  | 
| 
| victor_barinchyk | Дата: Среда, 27.07.2016, 10:15 | Сообщение # 5 |  |   Группа: Проверенные Сообщений: 2 
 Статус: Offline |   Спасибо..
 
 
 |  
 |  |  |  |