![]()  | 
	
| 
			
			 | 
		#1 | 
| 
			
			 Administrator 
			
			
			
				
			
			Регистрация: 12.04.2010 
				Адрес: Москва 
				
				
					Сообщений: 9,618
				 
				
				
				Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
		
		
			
			 
			
			Управление шаговым двигателем 28BYJ-48 
		
		
		
			Попался мне в руки Шаговый двигатель 28BYJ-48 решил его использовать для управления жалюзи на кухне. Шаговый двигатель 28BYJ-48, использует в кондиционерах, термовентиляторах и т.п. Он как правило продается с простейшим драйвером собранном на микросхеме ULN2003 На плате есть 4 светодиода отображающие на какой из обмоток есть напряжение Характеристики: номинальное напряжение питания: 5В или 12В число фаз: 4 сопротивление фазы: 200 Ом ±7% угловой шаг: 5,625° соотношение: 1:64 частота: 100 Гц крутящий момент: 450 г*см сопротивление изоляции: >10 МОм (500В) диаметр: 25 мм высота 18мм. плата управления: 27 х 17 мм. общий вес: до 80 гр. Схема Со встроенной библиотекой Stepper Library, моторчик отказался работать Написал тестовый скетч для ардуино, что бы заставить его вращаться В полношаговом режиме PHP код: 
	
			
	PHP код: 
	
			
	Соответственно в полношаговом режиме скорость вращения будет в 2 раза выше В будущем планирую написать для этого ШД библиотеку  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#2 | 
| 
			
			 Junior Member 
			
			
			
			Регистрация: 08.04.2013 
				
				
				
					Сообщений: 9
				 
				
				
				Вес репутации: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			Тоже эксперементировал с таким шаговиком для управления оконными жалюзями. Хотелось чтобы подходили к 2-м жалюзям 4 провода (2 витых пары, а не 9 = 1 земля питания + 4 фазы + 4 фазы для управления всеми обмотками), поэтому сделал управление на ATTINY2313 и ULN2003, макетка влезла внутрь корпуса жалюзи. ATTINY2313 управляется по UART, т.е. требуется 4 провда "+","-","rx","tx". Реализованы 4 команды полное открытие, полное закрытие, открытие на определенный угол, закрытие на определенный угол. Открытие-закрытие делал поворотом пластин, поднятие/опускание не делал. Шаговик соединял с осью вращения через обрезок корпуса ручки, на ось и шаговик наматывал изоленту, чтобы и плотно было и могло немного проскользнуть. Небольшое проскальзывание нужно чтобы не использовать датчики конечных положений. При инициализации просто поворачивается на угол чуть больше максимального поворота, за счет проскальзывание выставляетс в "0". Потом уже от этого нуля высталяется угол. 
		
		
		
		
		
		
		
	PHP код: 
	
			
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#3 | 
| 
			
			 Administrator 
			
			
			
				
			
			Регистрация: 12.04.2010 
				Адрес: Москва 
				
				
					Сообщений: 9,618
				 
				
				
				Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
		
		
			
			 
			
			Спасибо. 
		
		
		
		
		
		
			
		
		
		
		
	Мне понравилась реализации шага методом сдвига. Таким образом можно просто реализовать хранение последнего местоположения и сам процесс шага Из недостатков такой реализации, управление мотором нужно подключать к одному GPIO  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#4 | 
| 
			
			 Junior Member 
			
			
			
			Регистрация: 11.07.2017 
				
				
				
					Сообщений: 13
				 
				
				
				Вес репутации: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			Тоже инитересует тема управления скоростью вращения ШД, но не совсем пока разбираюсь в чужих скетчах. 
		
		
		
		
		
		
		
	Какие способы управления скоростью ШД существуют (кроме задержки) для изменения частоты управляющих импульсов? Нужно менять скорость такого ШД в соответствии с определенной мат. зависимостью.  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#5 | 
| 
			
			 Administrator 
			
			
			
				
			
			Регистрация: 12.04.2010 
				Адрес: Москва 
				
				
					Сообщений: 9,618
				 
				
				
				Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
		
		
			
			 
			
			Можно математически изменять задержку между импульсами
		 
		
		
		
		
		
		
			
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#6 | 
| 
			
			 Junior Member 
			
			
			
			Регистрация: 11.07.2017 
				
				
				
					Сообщений: 13
				 
				
				
				Вес репутации: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			Математически задержку и предполагалось менять. Вопрос был в том. Есть ли способы управления скоростью  без использования функции задержки между импульсами
		 
		
		
		
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#7 | 
| 
			
			 Junior Member 
			
			
			
			Регистрация: 11.07.2017 
				
				
				
					Сообщений: 13
				 
				
				
				Вес репутации: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			Еще одна проблема нарисовалась. 
		
		
		
		
		
		
		
	Моя Ардуинка не допускает операций с плавающей точкой, но в программе появляются числа (и операции с плавающей тчк.). Необходимо так же использовать тригонометрические ф-ции в которых как раз в качестве аргумента не целые радианы используются. Получается с моей платой вообще тригонометрия не предусмотрена? Возможно ли использование целочисленного аргумента в градусах? Понимаю, что немного не по теме. Может в другой отдел перенести?  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#8 | |
| 
			
			 Administrator 
			
			
			
				
			
			Регистрация: 12.04.2010 
				Адрес: Москва 
				
				
					Сообщений: 9,618
				 
				
				
				Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
		
		
			
			 Цитата: 
	
 Добавьте соответствующую библиотеку  | 
|
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#9 | 
| 
			
			 Junior Member 
			
			
			
			Регистрация: 11.07.2017 
				
				
				
					Сообщений: 13
				 
				
				
				Вес репутации: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			Подозреваю, что при этом скорость вычислений и соответственно скорость вращения ШД измениться так как вычислять функцию с плавающими переменными придется в бесконечном цикле. 
		
		
		
		
		
		
		
	Какие то способы избежать операций с плавающей тчк. существуют?  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#10 | 
| 
			
			 Administrator 
			
			
			
				
			
			Регистрация: 12.04.2010 
				Адрес: Москва 
				
				
					Сообщений: 9,618
				 
				
				
				Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
		
		
			
			 
			
			Что бы из числа с запятой получить простое число , нужно его умножить на 1000 или на 1000000, в зависимости от числа знаков после запятой
		 
		
		
		
		
		
		
			
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
![]()  | 
	
	
		
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
		
  | 
	
		
  |