пеинтбольный маркер на ардуино
- Войдите на сайт для отправки комментариев
Имеется дешевый электронный маркер JT. Вся его электронность заключается в срабатывании спускового солиеоида при нажатии на курок.Это делает мягким курок, но никакой скорострельности и режимов стрельбы не дает. Задумал проапгрейдить его с помощью про мини. По скольку с железом я более-менее дружу, а с программированием я только научился мигать светодиодом, прошу у вас помощи с написанием скетча.
Имеется две кнопки курок и предохранитель, двухцветный диод индикации состояния предохранителя и сам соленоид с электронным ключом. Все уже это собрано в кучу с ардуиной и написан простейший скетч. Стандартные свои функции маркер уже выполняет (стреляет при нажатии на курок), а вот как написать ему режимы ума не приложу.
Вот скетч
int button = 2;
int sol = 8;
void setup() {
pinMode(sol, OUTPUT);
pinMode(button, INPUT);
}
void loop(){
if (digitalRead(button) == HIGH) {
digitalWrite(sol, HIGH);
}
else {
digitalWrite(sol, LOW);
}
}
По примеру мигания светодиода при нажатии кнопки.
Курок у меня на втором порту, предохранитель на третьем, соленоид на восьмом, девятый пин -красный светодиод, десятый- зеленый светодиод.
Как заставить по нажатию на предохранитель (пин 3) блокировать срабатывание, зажигать красный диод и при повторном нажатии снова разблокировать и зажечь зеленый диод?
Я так думаю мой кривой скетч для этого не подходит, да?)
напишите полностью что вы хотите получить от вашей стрелялки, обсудим
7808543@gmail.com
В иделе хочу, чтоб после загрузки ардуино устройство было заблокировано и загорался красный диод, при нажатии на предохранитель загорался зеленый и устройство разблокировалось.
Затем при нажатии на курок на миллисекунду на соленоид подавался сигнал длительностью в одню миллисекунду, а если удерживать курок в течении 500 миллисекунд подавалось еще два импульса длительностью в миллисекунду и с интервалом 500 миллисекунд.
И при двойном нажатии были бесконечные импульсы 1 миллисекунда с интервалами 500 миллисекунд.
На мыло?
как вы на курке собираетесь миллисекунды ловить)))))
Привет.
Пока работал, набросал.
Проверьте-дайте ответ что и как.
А разве ардуина не может отслеживать время удержания кнопки?
Когда писал код этого поста еще не было.
Спасибо, сейчас закину потестирую.
Оказываетая все не так сложно как я представлял.
Спасибо, сейчас закину потестирую.
Оказываетая все не так сложно как я представлял.
Да в любом языке программирования не все так сложно!)
Просто не всем без тренировки удается задачу на алгоритмы пошаговые разложить.
ваш скетч работает, при нажатии на предохранитель цвет диода менется, но при нажатии на курок снимается с предохранителя, зажигает зеленый диод и дальше стреляет без проблем.
т.е. снимается с предохранителя курком.
поигрался немного с вашим кодом. сделал короткие очереди по три.
ваш скетч работает, при нажатии на предохранитель цвет диода менется, но при нажатии на курок снимается с предохранителя, зажигает зеленый диод и дальше стреляет без проблем.
т.е. снимается с предохранителя курком.
поигрался немного с вашим кодом. сделал короткие очереди по три.
Курок не может срабатывать при включенном предохранителе, смотрите железо!
земетил, что при нажатии на предохранитель иногда срабатывает соленоид, и при нажатии на курок меняется статус предохранителя. перенес предохранитель на 7й пин и все стало работать как нужно.
осталось разобраться с режимами стрельбы..
посоветуйте статью для примера. где рассматриваются режимы нажатия кнопки.
земетил, что при нажатии на предохранитель иногда срабатывает соленоид, и при нажатии на курок меняется статус предохранителя. перенес предохранитель на 7й пин и все стало работать как нужно.
осталось разобраться с режимами стрельбы..
--На счет ложной сработки, кнопки подтянули?конденсаторы на них ставили?
--Режимы реализовать не сложно но нужно их ка-то выбирать. Или кнопку дополнительную ввести(предпочтительно) или через длинное нажатие ограничителя перебирать(так делать не рекомендую) в бою долго будет.
посоветуйте статью для примера. где рассматриваются режимы нажатия кнопки.
http://arduino.ru/forum/programmirovanie/rabota-s-knopkami-v-pomoshch-no...
http://arduino.ru/forum/programmirovanie/klass-titanovyi-velosiped-dlya-...
Нужно именно комбинацией нажатий курка менять режимы.Нажатие- один выстрел, удержание- короткая очередь, двойное нажатие -очередь. По крайней мере так реализовано на готовых платах.
Спасибо.
Я так понимаю, мне нужно использовать таймер millis(), верно?
да.
Дерзайте. Не получится напишите что не смогли- набросаю за лайки.
Спасибо. Нужно самому въезжать. Не буду же вечно вас просить)