Управление дверью с помощью Arduino и концевиками
Я хочу сделать дверь с двумя концевыми выключателями и тремя кнопками: одна для остановки, а две другие для открытия и закрытия. Столкнулся с проблемой в коде кнопок запуска и концевиков. Я не могу написать код, потому что я новичок. Пожалуйста, может кто-нибудь помочь мне с каким-нибудь кодом или чем-то в этом роде?
Буду признателен, если вы мне поможете, потому что это для моего школьного проекта :)
@FIORIALIA, 👍1
Обсуждение1 ответ
Вам нужно будет написать код
- Управляйте двигателем. Вероятно, двигатель постоянного тока с двусторонним управлением. Это можно сделать с помощью четырех МОП-транзисторов и нескольких диодов или, что гораздо лучше, с помощью одной микросхемы H-моста. В вашем коде необходимо будет определить, какая из двух линий, идущих к двигателю постоянного тока, подключается к положительной шине, а какая к отрицательной/заземляющей, или обе отключены, с помощью трех описанных вами кнопок.
- Вам потребуется написать код, контролирующий концевые выключатели. Я бы посоветовал вам использовать для этого прерывания. Один контакт подключается к земле, другой — к контакту прерывания Arduino. Вы можете использовать функцию AttachInterrupt() для написания функций, которые выполняются сразу. Обязательно прочитайте, какие контакты вашего Arduino будут поддерживать прерывания.
- Вам нужно будет остановить движение двигателя либо напрямую, либо переключая переключатель с помощью прерывания (или любого другого метода обнаружения, который вы используете для концевого выключателя).
*одним из особых соображений является то, что любые переменные, которые вы используете внутри функций прерывания, должны быть помечены как изменчивые, поэтому int myVar;
становится Летучим int myVar;
*также не используйте Serial.print или millis() внутри функций прерывания, если этого можно избежать.
Отсюда Google «Переключатель Arduino» и работайте над реализацией концевых выключателей отдельно. Если хотите, погуглите «Прерывания Arduino» и улучшите свою реализацию для использования прерываний. Далее погуглите «Двунаправленное управление двигателем постоянного тока Arduino». Работайте над этим самостоятельно. Как только оба будут работать отдельно, объедините их в один проект.
Если у вас возникнут конкретные вопросы, дайте мне знать по мере прохождения, и я буду рад помочь вам научиться создавать его, используя имеющиеся у вас компоненты.
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
Попробуйте сначала сами что-нибудь попроще: одна кнопка, попробуйте прочитать; чем переключатель и попытаться прочитать его; оттуда вы предъявляете требования к тому, что вам нужно. А если вы столкнетесь с более конкретной проблемой, вы можете задать ее здесь еще раз; Я полагаю, вам также нужен мотор, чтобы открывать/закрывать дверь?, @Michel Keijzers
Пожалуйста, предоставьте код, который вы сделали, который не работает., @iudeen
Как фраза «Помогите мне с кодом…» поможет вам чему-то научиться? Существует множество руководств и примеров эскизов, которые помогут опробовать и понять, как можно использовать Arduino. В реальном мире бесплатных обедов не бывает :), @Mikael Patel