![]()  | 
	
| 
			
			 | 
		#1 | 
| 
			
			 Member 
			
			
			
			Регистрация: 29.03.2013 
				
				
				
					Сообщений: 68
				 
				
				
				Вес репутации: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			Всем привет. 
		
		
		
		
		
		
		
		
			Прошу помощи в написании кода для ардуины. Мне надо на вход ПЛК подать кратковременный сигнал от релюшки, секунды 4-5 чтобы держался. Пытаюсь написать программу для ардуины так, чтобы без функции delay(). Поискав информацию в инете, понял, что надо использовать прерывание по таймеру. А вот как это сделать, какую библиотеку использовать - голову уже сломал, не могу разобраться... Может что посоветуете? Спасибо! Последний раз редактировалось electric; 03.09.2015 в 17:25.  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#2 | 
| 
			
			 Administrator 
			
			
			
				
			
			Регистрация: 12.04.2010 
				Адрес: Москва 
				
				
					Сообщений: 9,618
				 
				
				
				Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
		
		
			
			 
			
			Если ардуина на ATmega328 то можно использовать библиотеку CyberLib 
		
		
		
		
		
		
			
		
		
		
		
	Можно и без прерываний обойтись Я думаю что этого примера будет достаточно , что бы написать код под себя Данный код выполняет Вашу функцию каждые 600 сек. Код: 
	uint32_t time=600000;
void loop() 
{
 if( millis()-time > 600000) //  задан интервал 600сек.
 {
  //здесь должен быть Ваш код или вызов функции
  time = millis();
 }
}
 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#3 | |
| 
			
			 Member 
			
			
			
			Регистрация: 29.03.2013 
				
				
				
					Сообщений: 68
				 
				
				
				Вес репутации: 0 ![]()  | 
	
	
	
		
		
			
			 Цитата: 
	
 У меня ардуина MEGA2560 и таймер хочу запускать немного по-другому - в основной программе включаю реле и передаю управлению таймеру по прерыванию с указанием времени на отключение. Через заданный промежуток времени прерывание срабатывает и реле отключается, при этом таймер "встает", т.е. повторно не срабатывает, как то так что ли...  | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#4 | 
| 
			
			 Senior Member 
			
			
			
			Регистрация: 14.06.2015 
				Адрес: СССР 
				
				
					Сообщений: 122
				 
				
				
				Вес репутации: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			а что будет делать мега2560 после того как отключит реле по таймеру?
		 
		
		
		
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#5 | 
| 
			
			 Member 
			
			
			
			Регистрация: 29.03.2013 
				
				
				
					Сообщений: 68
				 
				
				
				Вес репутации: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			Продолжать работу дальше по основному циклу. 
		
		
		
		
		
		
		
	Если по условиям программы надо будет еще щелкнуть реле - то опять включит, запустит таймер и через определенное время выключит... Блин, так и не разобрался с таймерами, сделал через милис костыль, но чувствую, так нельзя делать))))  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#6 | |
| 
			
			 Member 
			
			
			
			Регистрация: 12.01.2016 
				Адрес: Кривой Рог 
				
				
					Сообщений: 36
				 
				
				
				Вес репутации: 0 ![]()  | 
	
	
	
		
		
			
			 Цитата: 
	
 Могу предложить пример скетча написанный под сигнализацию и там этот вопрос решён.  | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#7 | 
| 
			
			 Member 
			
			
			
			Регистрация: 07.08.2014 
				
				
				
					Сообщений: 37
				 
				
				
				Вес репутации: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			anatoliylagutenko а можете выложить скетч для повышения образованности! заранее спасибо.
		 
		
		
		
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#8 | 
| 
			
			 Senior Member 
			
			
			
				
			
			Регистрация: 02.04.2012 
				Адрес: Питер 
				
				
					Сообщений: 1,125
				 
				
				
				Вес репутации: 1312 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
		
		
			
			 PHP код: 
	
			
	
				__________________ 
		
		
		
		
		
			istarik.ru Последний раз редактировалось stD; 29.01.2016 в 20:13.  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#9 | 
| 
			
			 Senior Member 
			
			
			
			Регистрация: 21.06.2013 
				Адрес: Москва 
				
				
					Сообщений: 176
				 
				
				
				Вес репутации: 0 ![]() ![]() ![]()  | 
	
	
	
		
		
			
			 
			
			На основе примеров из интернета составил скетч.Вроде все работает,но чувствую что-то неправильно.Огромная просьба проверить код. 
		
		
		
		
		
		
		
	Логика такова:при появлении +5в на входе 2 включается выход АО и работает 2сек независимо есть ли на входе +5в или нету. Вот код: PHP код: 
	
			
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
![]()  | 
	
	
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
| Опции темы | Поиск в этой теме | 
| Опции просмотра | |
		
  | 
	
		
  |