Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.59/29: Рейтинг темы: голосов - 29, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 28.01.2014
Сообщений: 2

Управление соленоидами через микроконтроллер

29.01.2014, 00:29. Показов 6532. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, уважаемые обитатели форума.

Для моего исследовательского проекта необходимо выбрать блок управления соленоидами (микроконтроллер?) по следующим критериям:
1) 1 32-битный таймер (16 битный таймер предоставляет слишком мало времени)
2) 10 выходов для соленоидов
как выглядит.
Толкающий с возвратной пружинкой. Пока едут из Китая.
Спецификации на него:
Rated Voltage: DC 5V
Type: Push
Force & Stroke: 2mm, 58g
Body Size: 12 x 11 x 8mm/0.47'' x 0.43'' x 0.3''(L*W*H)
Plunger Bar Dia: 4mm/0.15“
Total Length: 13mm/0.5'‘
Cable Length: 15cm/5.9'‘
Мощность: 0.5W
Рассчитал, что сила тока вроде как получается 0.1А
Скорее всего, нужен будет транзистор между ножкой МК и соленоидом с подключением через общий эмиттер, но может быть, есть более оптимальные варианты? Приоритеты на уменьшение размеров и цены.
3) Bluetooth модуль для связи со смартфоном/ПК (вероятно, будет подключаться по UART)
4) Гироскоп (скорее всего, подключение через IIC) для обратной связи.

Как я примерно представляю себе работу:

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
R0 для 32битного таймера.
R1-R10 - выходы для соленоида.
if a R1 1, 3, 5..etc - число не четное, ток идет на соленоид
else ток не идет.
R2...R10 так же, как R1
R11 - для хранения информации о функции исполняемой.
R12 - гироскоп. 
R13 - модуль Bluetooth.
R14 - хранит память о загруженном профиле\режиме работы.
 
Start
func(stroke1) { 
  add R1, R1, 1// R1=1+R1 - ток пошел под одному из проводов, число не четное. *для чего мы увеличиваем число на 1 - для того, чтобы потом больше задействовать незанятые соленоиды при написании новых функций при опросе их через BT, если потребуется, статистика.
  sleep (100);
  add R1, R1, 1// R1=1+R1 - ток выключился, число стало четным
  mov R11, 0//присвой значение нуль
}
 
func(stroke2) {
  add R1, R1, 1// R1=1+R1 - ток пошел под одному из проводов, число не четное.
  add R2, R2, 1// R2=1+R2 - ток пошел по второму проводу
  sleep (100); //ждём 100 мс
  add R1, R1, 1// R1=1+R1 - ток выключился, число стало четным
  add R2, R2, 1// R2=1+R2 - ток выключился, число стало четным
  mov R11, 0//присвой значение нуль
  //добавь исполнение команды через n мсек в лист проверки таймера.
}
 
func(stroke3) {
  add R1, R1, 1;// R1=1+R1 - ток пошел под одному из проводов, число не четное.
  sleep (50);
  add R2, R2, 1;// R2=1+R2 - ток пошел по второму проводу, число не четное
  sleep (100);
  add R1, R1, 1;// R1=1+R1 - ток выключился, число стало четным
  add R2, R2, 1;// R2=1+R2 - ток выключился, число стало четным
  mov R11, 0//присвой значение нуль
}
 
...
 
if R0 = 1 //Если с таймера пришла информация о наступлении 1мс,  
then mov R11, stroke3 //то измени значение регистра R11 на stroke3 - запускается функция соотв.
//функция отрабатывает
if R0 = 0x000111 //Если с таймера пришла инфа о наступлении 111 мс,
then mov R11, stroke1 //то измени значение регистра R11 на stroke1
 
...
if R13=timer  //если по BT пришел запрос timer
mov R0, R13//передай значение таймера на BT
//на смартфоне принимаем время, исходя из расписания анализируем, какие команды выполнены, подводим статистику.
 
If R13=stroke1 //если по BT пришел запрос stroke1
mov R13, R11 //передай значение R13 на R11. (можно ли сделать команду вырезать/вставить?)
//исполнение функции
mov R13, 0 //обнули значение BT
 
...
mov R13, mode1 //по BT приходит инфа, о том, какой профиль использовать
mov R14, R13// передай на R14 инфу, какой профиль используется.
загрузка разных функций этого профиля через BT, вроде stroke4, ... strokeN.
возможность перезаписи stroke0 с другими параметрами.
 
mov R0, 0//обнулить таймер.
mov R13, 0 //BT готов к использованию.
...
 
после исполнения функции сначала опроси BT, затем проверяй условия для таймера.
Если во время слушания таймера (а не во время исполнения функции типа stroke1 !) придет сигнал с R13, 
сделай прерывание, обработай сигнал, вернись к прослушиванию таймера.
 
...
Вариант с гироскопом, на 
R13 = mode2
mov R14, R13// на BT приходит инфа о смене профиля
R14 = mode2 //
R13 = neo1, neo2... neon//на BT приходит список функций и их действий, кладется в стек.
Если отклонение по оси X > чем установлено, то
переводи его в конец стека,
Если отклонение по оси Y > чем установлено, то
mov R11, R13//переведи значение головы стека в регистр R11,
//исполняй команду
//после исполнения оставь внимание на R13
Если отклоненение по оси Z > чем установлено, то
удали голову в стеке.
Если информация с BT придет во время исполнения команды, прервись, запиши ее в BT, вернись к исполнению.

P.S. Если вы дочитали до конца, большое спасибо за уделенное время
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.01.2014, 00:29
Ответы с готовыми решениями:

Микроконтроллер 8-разрядный это тоже самое что 8-битный микроконтроллер?
Здравствуйте ! Подскажите пожалуйста, небольшой вопрос , касающийся терминологии . Микроконтроллер 8- разрядный это ...

PIC16 через какие порты микроконтроллер выводит данные на ЖКИ ?
Я полный нуль, в этом плане.. ...

Проблема с захватом сигнала от таймера через DMA микроконтроллер STM32F042G6U
Ребята, прошу помощи, не получается запустить захват сигнала чтобы измерить период, уже третий день маюсь, делал по примеру из референса и...

27
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
30.01.2014, 12:20
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от korsaj Посмотреть сообщение
Утверждать об нехватке выводов у меги вы поспешили.
есть конкретное задание
количество входов- выходов, мне что мультиплексор пришпандоривать ?
Цитата Сообщение от korsaj Посмотреть сообщение
Сам к меге 8 подключал 2 7-ми сегментных дисплея, матрицу клавиатуры 4х3 и 24 реле (итого 40 выводов).
и что?
скорость обработки то какая?
а вот когда нужно по USORT считать данные обработать и отдать на скорости 250кБод плюс еще индикатор плюс кнопки, плюс внешние сигналы
хватит скорости?
и почему я не могу использовать 8535 с полноценными 4 портами? разница в 20 рублей я на обвязку больше истрачу

Добавлено через 1 минуту
Цитата Сообщение от korsaj Посмотреть сообщение
Сам к меге 8 подключал 2 7-ми сегментных дисплея, матрицу клавиатуры 4х3 и 24 реле (итого 40 выводов).
я на 51 процессоре управлял 256 выходов ну и прачка входов(кнопки)
0
Эксперт быдлокодинга
 Аватар для Полный 30h
2095 / 529 / 70
Регистрация: 04.11.2010
Сообщений: 1,314
30.01.2014, 12:23
korsaj, тут полагаю спорить можно до бесконечности, если для управления использовать какой нибудь I2C для сношений с обвязкой так и вовсе полторы ноги хватит. Другое дело что за каждую плюшку приходится чем то расплачиваться. Тут как раз и нужна голова программиста, которая гигагерцами похвастать не может, но под пивко заливаемое в соответствующий интерфейс и инфу с датишей заливаемую параллельно анализирует что хорошо а что по деньгам.

Добавлено через 2 минуты
Цитата Сообщение от korsaj Посмотреть сообщение
Все зависит от частоты коммутации
Цитата Сообщение от ValeryS Посмотреть сообщение
скорость обработки то какая?
Господа товарищи, мне кажется вы об одном и том же.
0
30.01.2014, 12:28

Не по теме:

Цитата Сообщение от Полный 30h Посмотреть сообщение
мне кажется вы об одном и том же.
ну так и мне кажется
просто вот так безапелляционно
Цитата Сообщение от korsaj Посмотреть сообщение
Утверждать об нехватке выводов у меги вы поспешили.
одно дело когда часы для дома строишь, другое когда систему реального времени
да и железные решения чаще всего дороже программных
все эти тригеры-защелки, дешифраторы матриц, если не хватает всего пару ног
и ловить потом ложные срабатывания, гонку сигналов:)
дешевле камень другой взять

0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
30.01.2014, 12:37
Цитата Сообщение от korsaj Посмотреть сообщение
Сам к меге 8 подключал 2 7-ми сегментных дисплея, матрицу клавиатуры 4х3...
имхо, это выход из положения, но все равно неудобно, учитывая "многоногость" готовых решений.
скажем, STM32 в корпусе LQFP100 имеет 87 активных пинов. Взамен нужно будет к меге подключить 11(!) всяческих сдвиговых регистров, оно нам надо? Можно и на тиньке 85й неплохо управление дискретниками по SPI забабахать - на гирлянду и 3д куб может и хватить. но зачем, если есть вменяемые готовые контроллеры.
0
Эксперт быдлокодинга
 Аватар для Полный 30h
2095 / 529 / 70
Регистрация: 04.11.2010
Сообщений: 1,314
30.01.2014, 12:48
ValeryS, извратов в плане выбора много и не все они лежат в плоскости рационального, спорить можно до бесконечности. Между тем ещё раз пробежавшись по идее ТС пришёл к выводу, что ему ещё и на программирование мобильных систем придётся времени потратить не один день. Если он и в этом на том же уровне знаний что и МК+схемотехника, то этот проект станет его делом на ближайшие года три точно.

Добавлено через 8 минут
Цитата Сообщение от Voland_ Посмотреть сообщение
имхо, это выход из положения, но все равно неудобно, учитывая "многоногость" готовых решений.
скажем, STM32 в корпусе LQFP100 имеет 87 активных пинов. Взамен нужно будет к меге подключить 11(!) всяческих сдвиговых регистров, оно нам надо? Можно и на тиньке 85й неплохо управление дискретниками по SPI забабахать - на гирлянду и 3д куб может и хватить. но зачем, если есть вменяемые готовые контроллеры.
Контраргументов вагон. Неликвиды на складе, загрузить паяльщиков работой, заказчик дурак и солидность схемы для него определяется числом тараканов на плате. Это я про то, что прекрасное не всегда совпадает с разумным.
0
194 / 154 / 23
Регистрация: 16.08.2013
Сообщений: 738
30.01.2014, 13:57
Цитата Сообщение от ValeryS Посмотреть сообщение
есть конкретное задание
количество входов- выходов, мне что мультиплексор пришпандоривать ?
и что?
Точно!!! Эврика. Если нужно 1000 входов и столько же выходов будем ждать производства 2002 выводного мк...
Все должно быть рационально. А в слово "рационально" вкладывается не только стоимость и кол-во корпусов/выводов, а и стоимость работы по сборке/пайке стоимости изготовить ПП и разработки ПО. А разработка ПО для ТС будет самая дорогая часть проекта и будет логарифмически расти в зависимости от сложности/навороченночти примененного мк (давайте ТС порекомендуем че нибудь в 100 выводном корпусе и с тактовой под 1 ГГц, пусть голову ломает, зато точно ему его хватит).
А для управления соленоидами вполне хватит набора сдвиговых регистров, так как быстродействие механики соленоида в любом случае будет меньше чем быстродействие цепочки сдвиговых регистров.
1
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
30.01.2014, 14:30
Цитата Сообщение от korsaj Посмотреть сообщение
Точно!!! Эврика. Если нужно 1000 входов и столько же выходов будем ждать производства 2002 выводного мк...
Исчо раз
мне нужно заменить конкретную микросхему в конкретном устройстве
микросхема сгорела, прошивку не прочитаешь,таких больше не выпускают
это центральный процессор на плате который управляет тремя движками в режиме микрошага
я туда засандалил мегу 8 и мне впритык хватило ног
ты предлагаешь мне весь прибор переделывать?
где я говорил о 1000 входах
я с 1999 года работаю с микроконтроллерами
и примерно представляю что это такое
мне за это деньги плотют
Цитата Сообщение от korsaj Посмотреть сообщение
А разработка ПО для ТС будет самая дорогая часть проекта и будет логарифмически расти в зависимости от сложности/навороченночти примененного мк
т.е на микросхеме где 128 байт ОЗУ и тактовая частота 2 мГц проще писать, чем на 64кБайта и тактовая частота 72МГц????
Цитата Сообщение от korsaj Посмотреть сообщение
А для управления соленоидами вполне хватит набора сдвиговых регистров, так как быстродействие механики соленоида в любом случае будет меньше чем быстродействие цепочки сдвиговых регистров.
стоимость этих сдвиговых регистров, плюс лишняя пайка плюс отладка в расчет не берется????
я бы уже давно перешел на stmки но у меня еще штук 70 8535 лежат вот и пихаю их везде

у stm кроме цены сравнимой с мегой есть еще и отладчик
покажи мне отладчик для меги за 200 рублей
0
194 / 154 / 23
Регистрация: 16.08.2013
Сообщений: 738
30.01.2014, 14:43
Ну вы даете, а где я сказал что вам нужно было вместо 8535 брать мергу 8?
Вроде мы тут помогаем ТС, а не обсуждаем ваш выбор..
И проблема не в написании ПО, а в изучении мк..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.01.2014, 14:43
Помогаю со студенческими работами здесь

Последовательное управление 4-мя соленоидами
Добрый день,столкнулся с такой,на первый взгляд рядовой проблемой(пишу с телефона и как мне кажется большим шрифтом,не знаю как исправить)....

Управление светодиодами кнопкой (микроконтроллер Milandr)
Здравствуйте! Имеется отладочная плата LDM-HELPER-K1986BE1QI-FULL. Нужно в Keil написать код, позволяющий нажатием кнопки менять...

Передача данных через com -порт на микроконтроллер
Добрый день. Учусь передавать данные на микроконроллер. Данные передаются по com порту. Почитал информацию и своял во это: using System; ...

Разработать компьютерную программу для передачи данных от компьютера на Микроконтроллер через COM-порты
Друзья подскажите, задали вот такую задачу, нужна программка, может быть есть у кого готовая?Буду очень благодарен Разработать...

Взлом компьютера через ссылку или pdf, управление через удаленный доступ
Всем привет! Купил аккаунт с игрой , пришло на почту письмо с ссылкой на (pdf) по кнопке "скачать". После запуска игры через...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru