Помогите со скетчем - мигалка по нажатию кнопки на джостике ps2

Life818
Offline
Зарегистрирован: 08.07.2018

вступление: Всем привет, прошу понять и простить, в этом деле я 0, но многого добился методом тыка. Но зашёл в тупик.



Делаю масинку на ардуино управляемую через джостик от ps2. Всё работает прекрасно.

Хотел сделать ещё мигалки, умею только через delay, но это не подходит в моём случаи.

Нашёл в инете скетч который мне подходит, но незнаю как его привязать к своему.



В общем, нужно чтобы этот процесс мигания, запустился только после нажатия кнопки на джостике.



кусок скетча машинки, кнопка:

if(ps2x.ButtonPressed(PSB_PINK))

(чтобы весь нижний код заработал, только после нажатия кнопки (указан выше))



скетч мигалка:

#include<SmartDelay.h>

SmartDelay led12(1000000UL);
SmartDelay led11(777000UL);

setup () {

pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
}

byte led12state=0;
byte led11state=0;

void loop () {

if (led12.Now()) {
    digitalWrite(12,led12state);
    led12state=!led12state;

}
if (led11.Now()) {
digitalWrite(11,led11state);
led11state=!led11state;
}
}

 

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Life818 пишет:
многого добился методом тыка
Маладца!

Life818 пишет:
незнаю как его привязать
Говно-вопрос, привязывай!

Если захочешь чему-нибудь научиться и потребуются ссылки на хорошие книги - обращаяся, поможем.

 

Life818
Offline
Зарегистрирован: 08.07.2018

Спасибо, очень интересная книгаю

Life818
Offline
Зарегистрирован: 08.07.2018

А если есть люди которые разбираються и смогут помочь, буду очень благодарен.

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Люди-то есть. И помочь они могут, тока вот захотят ли? Ты сам почитай свой пост как бы со стороны:

"мужики, я нихера не знаю, и учиться не хочу, я всё тыком делаю. Но тут меня проблема, тыком не вышло (хотя я и не пробовал - чего пальцы об клаву лишний раз тереть). Нука быстренько решите решите эту проблему  за меня, а то мне влом что-то изучать, я только тыком"

Нравится? Первый вопрос, "а попу тебе подтереть не надо"?

Если ты будешь делать сам, тебе помогут (я писал про это в превом посте), но делай сам и выкладывай коды, рассказывай как пробовал, что именно не получилось. А если надо просто сделать за тебя - здесь есть платный раздел, где делают за деньги - заказывай там.

Вот как-то так. Такие здесь традиции.

Life818
Offline
Зарегистрирован: 08.07.2018

Если это трудно, то ладно, не нужно помогать. Я просто незнаю как запусить процес от нажатия кнопки на кнопке от джостика. Если вдруг кто знает, и это просто, то благодарен за помошь.

Весь код готовый есть, просто чтобы он запустился от нажатия.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

1. У тех людей, которые разбираются, несколько иные представления о том, что можно считать помощью, а что - нет.

2. Готовый код - это тот, который не только компилируется и работает, а еще и работает так, как надо. Если код работает не так, как надо, его нельзя считать готовым.

Life818
Offline
Зарегистрирован: 08.07.2018

Есть два кода
1 - код машинки (управляеться от джостика машинка) - рабоает.

2- код мигалки - так же работает.

Нужно эти два кода соеденить. Чтобы не мозолить глаза, вставил кусок от 1-го кода, и весь 2 код.

Нужно чтобы весь этот рабочий 2-код заработал от нажатия кнопки 1-го кода.
Я НЕ РАЗБИРАЮСЬ, думал это просто всё делается. Поэтому попросил о помощи. Если это сложно, то прошу прощения что отвлек (без сарказма). Буду дальше тыкать.

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Life818 пишет:

то благодарен за помошь.

Если сам изучать не хочешь, то вот правильный раздел. Договоришься о размере благодарности и получишь решение.

Life818
Offline
Зарегистрирован: 08.07.2018

понятно в общем, походу времени сегодня не те. Удачи всем.

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Времена всегда одинаковые. И тебе удачи!

sadman41
Offline
Зарегистрирован: 19.10.2016

Life818 пишет:

Есть два кода
1 - код машинки (управляеться от джостика машинка) - рабоает.

2- код мигалки - так же работает.

Нужно эти два кода соеденить. Чтобы не мозолить глаза, вставил кусок от 1-го кода, и весь 2 код.

Нужно чтобы весь этот рабочий 2-код заработал от нажатия кнопки 1-го кода.
Я НЕ РАЗБИРАЮСЬ, думал это просто всё делается. Поэтому попросил о помощи. Если это сложно, то прошу прощения что отвлек (без сарказма). Буду дальше тыкать.

Есть два компонентв:

1) Шасси от мерседеса - целое, не гнутое.

2) Колеса от садовой тачки - катаются нормально, отходили три сезона.

Нужно сделать самобеглую коляску - чтобы шасси каталось на этих колёсах. Я НЕ РАЗБИРАЮСЬ, но думаю что нужно просто их соединить вместе. Поэтому попросил о помощи.

 

Life818
Offline
Зарегистрирован: 08.07.2018

как смешно хаха. Я НЕ ПРОШУ НАПИСАТЬ МНЕ МЕМУАРЫ или изобрести велик.
Просто, спросил, как делаеться так чтобы код работал не сам по себе, а от нажатия кнопки. 
Тут либо бабло просят, либо петросянов строят.

ТЕМА ЗАКРЫТА.

Life818
Offline
Зарегистрирован: 08.07.2018

ПРИМЕР ВОПРОСА И ОТВЕТА!
Как сделать чтобы при нажатии одной кнопки загорелась лампочка, при нажатии другой выключалось:
ответ:

  if(ps2x.ButtonPressed(PSB_GREEN)) digitalWrite(8, HIGH);
  if(ps2x.ButtonPressed(PSB_PINK)) digitalWrite(8, LOW);

 


СПАСИБО

Вопрос: как сделать так чтобы лампочка включалась и выключалась при нажатии одной кнопки.
ответ: 

if(ps2x.ButtonPressed(PSB_PINK))

PINKdlts = !PINKdlts; 

СПАСИБО.

Или в моём случаи: твой вопрос сложен, могут помочь только за оплату.
Или просто если не знают, идут дальше листать.
Без сарказма.

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Почему сложен? Просто неинтересен. 

Life818
Offline
Зарегистрирован: 08.07.2018

Раньше (может и сейчас есть), был проект на маил ру, вопрос ответ. Там люди (и я в том числе отвечали на вопросы связанные с пк), смотрели вопросы и отвечали кто что знает.
Сейчас я также в надежде на помошь - задал вопрос, получил всё что угодно, но не помошь.

sadman41
Offline
Зарегистрирован: 19.10.2016

Так тут и не мейл.ру, не так ли? 

Халявщиков-студентов развелось тут невероятное количество, поэтому и такое отношение ко всем, кто просит и ничего сам не пытается  делать.

Life818
Offline
Зарегистрирован: 08.07.2018

Ну так я ж не Прошу мне с нуля код писать. Я занимаюсь этим т.к. очень интересно. Не зная вообще ничего о программировании и т.п., просто читая чужие форумы и т.п. сам собрал довольно хороший скетч по управлению машины. Я бы и дальше искал, но у меня не физическая кнопка, а джостик, поэтому трудно найти нужную инфу под мои цели. А цель чтобы при нажатии кнопки включались мигалки. Я умею только через delay. Нашел готовый скетч, хотел узнать может кто поможет чтобы этот кусок заработал от кнопки.

sadman41
Offline
Зарегистрирован: 19.10.2016

Life818 пишет:
Я бы и дальше искал, но у меня не физическая кнопка, а джостик, поэтому трудно найти нужную инфу под мои цели.

Какая разница-то?

Хорошо. Берем первый фрагмент кода из #13 и вместо вкл/выкл делаем присвоение переменной true/false. 
Потом берем код, который мигает и исполняем его только тогда, когда вышеозначенная переменная == true. 
Подойдет такая инфа?

 

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

sadman41 пишет:

Подойдет такая инфа?

Тебе ж сказали какая подойдёт.

Life818 пишет:

ПРИМЕР ВОПРОСА И ОТВЕТА!
Как сделать чтобы при нажатии одной кнопки загорелась лампочка, при нажатии другой выключалось:
ответ:

  if(ps2x.ButtonPressed(PSB_GREEN)) digitalWrite(8, HIGH);
  if(ps2x.ButtonPressed(PSB_PINK)) digitalWrite(8, LOW);

А ты чо написал?

Life818
Offline
Зарегистрирован: 08.07.2018

Я чуток запутался. Я написал кусок кода, который при нажатии одной кнопки вкл диод, при нажатии другой выкл.))))))))))))))))))))

Это я типо писал, например кто-то задал вопрос, и как обычно отвечают)))))))) А сам немогу добиться ответа))
Вы просто те кто сейчас читают, скажите, вы знает как осущесвтеить мою задачу в реальность? И сложно ли это? Я вроде уже готовый код скинул, просто чтобы привязать его к моей любимой кнопочке))))))))))))))

Life818
Offline
Зарегистрирован: 08.07.2018

вот, с этого по подробней если не трудно, если вас не затруднит, напишите этот код целиком. я не халявщик, я реально учусь. Но до этого я ещё не дошёл.

sadman41
Offline
Зарегистрирован: 19.10.2016

Мы знаем, как осуществить. Для нас это несложно. Но раз вы написали в раздел "программирование" - будем учить вас программировать до посинения, а не писать код за вас.

Life818
Offline
Зарегистрирован: 08.07.2018

Не хочу учиться, а хочу жениться)))))))))))))) "у меня сейчас приступ паники будет")))
Я учусь, чуть выше выложил ВЕСЬ свой рабочий скетч. Этому я уже научился, буду учиться дальше с этими дурацкими мигалками что делать. Если не получиться, собиру модуль из чего возможно, это будет наверное легче чем скетч писать)))))))

sadman41
Offline
Зарегистрирован: 19.10.2016

Кстати, да. Как вариант - взять два мигающих диода. Или мультивибратор собрать на МП39. Сразу и поженитесь.

Life818
Offline
Зарегистрирован: 08.07.2018

ВООТ, уже полезный ответ)))) Я только сейчас узнал что существуют мигающие диоды)

Life818
Offline
Зарегистрирован: 08.07.2018

В общем, прочитав все ответы, решил сделать просто, поставлю второй ардуино с кодом через delay, один будет включать второй ардуино и будут мне мигалки.

Всем спасибо за помошь.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Life818 пишет:

ВООТ, уже полезный ответ)))) Я только сейчас узнал что существуют мигающие диоды)

Та ладно. Есть уже и "умные светодиоды". Ну почти такие как из фантастики.https://www.youtube.com/watch?v=-4cxG05E0Vs

ПС:#6

infyniti
Offline
Зарегистрирован: 15.07.2017

тыки походу кончились)))) 

есть кнопка, есть готовый код под кнопку 

скорее плохо тыкали

продолжаем тыкать

Life818
Offline
Зарегистрирован: 08.07.2018

Вот и я о том же, незнаю как и куда потыкать. Кстати, скажите как удалить эту тему (вопрос)?

infyniti
Offline
Зарегистрирован: 15.07.2017

Life818 пишет:

В общем, прочитав все ответы, решил сделать просто, поставлю второй ардуино с кодом через delay, один будет включать второй ардуино и будут мне мигалки.

Всем спасибо за помошь.

интерестно а как вторая дуина будет включать с кнопки если на первой не получилось?

Life818
Offline
Зарегистрирован: 08.07.2018

Элементаро ватсон) Короче, питания на второй ардуино будет идти через  транзистор BD681. А с первого ардуино буду вкл и выкл сам транзистор.

У меня проблема не с кнопками, а именно с мигалками без delay, и чтобы этот процесс шёл только после нажатия кнопки. Ну уже не актуально, чем гемор делать, лучше так сделаю - с двумя платами или просто модуль собиру. компненты уже заказл (ждать млн придеться долго).
 

infyniti
Offline
Зарегистрирован: 15.07.2017

элментарно это когда взять первый фрагмент из кода #13 и вместо вкл\выкл делаем присвоение переменной true/false. 

Потом берем код, который мигает и исполняем его только тогда, когда вышеозначенная переменная == true.

как ответил sadman41.

 

Life818
Offline
Зарегистрирован: 08.07.2018

Друг, если не трудно, оч прошу, перепеши это код как ты и сейчас написал, я только куски могу собрать воедино, учусь ещё.

infyniti
Offline
Зарегистрирован: 15.07.2017

Life818 пишет:

Вот и я о том же, незнаю как и куда потыкать. Кстати, скажите как удалить эту тему (вопрос)?

методом тыка)))))

sva_khv
Offline
Зарегистрирован: 19.12.2016

Life818 пишет:

Элементаро ватсон) Короче, питания на второй ардуино будет идти через  транзистор BD681. А с первого ардуино буду вкл и выкл сам транзистор.

 Можно и без тарнзистора. На D1 второй ардуины подаем высокий уровень с первой когда надо мигать. И вторая начинает мигать на выходе D13.

Life818
Offline
Зарегистрирован: 08.07.2018

Вот, ещё один очень хороший ответ) спасибо - применю.)

infyniti
Offline
Зарегистрирован: 15.07.2017

Life818 пишет:

Друг, если не трудно, оч прошу, перепеши это код как ты и сейчас написал, я только куски могу собрать воедино, учусь ещё.

так куски собрать если можешь что не собрал

два куска есть собери в один за одно будет видно можешь куски собирать или нет. 

Life818
Offline
Зарегистрирован: 08.07.2018

Почему вы все такие злые)) 
НОЛЬ я в кодах. В общем, решил сделать с двумя ардуино. (а когда придут "запчасти" собиру модуль). надоело тыкать коды.

infyniti
Offline
Зарегистрирован: 15.07.2017

Life818 пишет:

Почему вы все такие злые)) 
НОЛЬ я в кодах. В общем, решил сделать с двумя ардуино. (а когда придут "запчасти" собиру модуль). надоело тыкать коды.

а че там тыкать пару строк остальное копировать))))

Life818
Offline
Зарегистрирован: 08.07.2018

АААААААААААААААААААААААААААААААААААААААААААА
Не знаю я как и что и куда!!!))))
Если вы знаете, то почему не помогаете? если это геморно, то просто скажите геморно, хватит дразнить)

infyniti
Offline
Зарегистрирован: 15.07.2017

код машинки дай

Life818
Offline
Зарегистрирован: 08.07.2018
#include <PS2X_lib.h>  //for v1.6
#include <Servo.h>
PS2X ps2x;
int PS2 = 0; 
Servo LXservo;




const int ena = 3;    // PWM pin to change speed
const int in1 = 2;    // direction pin 1
const int in2 = 4;    // direction pin 2



volatile boolean REDHdlts;  //пишим название для ламп
volatile boolean BLUHdlts;  //пишим название для ламп
volatile boolean GRNHdlts;  //пишим название для ламп
volatile boolean PINKdlts;


int fspeed;           // forward speed 




void setup(){
  LXservo.attach(6);
  PS2 = ps2x.config_gamepad(13,11,10,12, false, false);   //Настройка выводов: (clock, command, attention, data, true, true)
  pinMode(in1, OUTPUT);      // connection to L298n
  pinMode(in2, OUTPUT);      // connection to L298n
  pinMode(ena, OUTPUT);      // connection to L298n

///////для лампочек и т.п.
  pinMode(1, OUTPUT);
  pinMode(5, OUTPUT); 
  pinMode(7, OUTPUT); 
  pinMode(8, OUTPUT); 
  pinMode(9, OUTPUT);  
}



void loop(){
  ps2x.read_gamepad();  //читать джойстик

/////////////////////////////////////////////////////////
if(ps2x.ButtonPressed(PSB_GREEN))
  
 GRNHdlts = !GRNHdlts; //Вкд/Выкл
  
digitalWrite(5,GRNHdlts); //какой пин и название ламп

////////////  
  
    if(ps2x.ButtonPressed(PSB_RED))
  
  
    REDHdlts = !REDHdlts; //Вкд/Выкл
  
    digitalWrite(7,REDHdlts); //какой пин и название ламп

////////////
  if(ps2x.ButtonPressed(PSB_BLUE))
  
    BLUHdlts = !BLUHdlts; //Вкд/Выкл
  
    digitalWrite(8,BLUHdlts); //какой пин и название ламп

////////////  
  
if(ps2x.ButtonPressed(PSB_PINK))        //// ВОТ ТУТ ЧТОБЫ МИГАЛ, а не просто включался.

PINKdlts = !PINKdlts;  //Вкд/Выкл

digitalWrite(9,PINKdlts); //какой пин и название ламп
   


/////////////////////////////////////////////////////////
  
  if (ps2x.Analog(PSS_LY) == 128) analogWrite(ena, 0);
 
  if (ps2x.Analog(PSS_LY) < 128){                      // или 123
    fspeed = map(ps2x.Analog(PSS_LY), 0, 127, 255, 0); //1,2,3,4  (3-при нажатии газ, 4-начало работы)
    digitalWrite(in1, HIGH);
    digitalWrite(in2, LOW);
    analogWrite(ena, fspeed);
  }  

  if (ps2x.Analog(PSS_LY) > 128){
    fspeed = map(ps2x.Analog(PSS_LY), 129, 255, 0, 255);
    digitalWrite(in1, LOW);
    digitalWrite(in2, HIGH);
    analogWrite(ena, fspeed);

  }
  

///////////////////////////////////////////////////////// 
  LXservo.write(map(ps2x.Analog(PSS_RX), 0,255,0,80)); ///1,2,3,4 (3-4 = работа от 3 до 4 угла всего) 
   
 
 
  delay(50);

}    

 

Life818
Offline
Зарегистрирован: 08.07.2018

там беспорядок, вызван тем что постоянно что-то менял (учился)

infyniti
Offline
Зарегистрирован: 15.07.2017

Life818 пишет:

там беспорядок, вызван тем что постоянно что-то менял (учился)

а что на 9 пине?

Life818
Offline
Зарегистрирован: 08.07.2018

просто лампочка. можно и набой другой пин 1 5 7 8 9 - все они свободы, к ним буду потом подключать лампочки.

необязательно именно мой код мигалки привязывать. мне просто хотелось бы что бы был стробоскоп (мигалка), без разницы какой код. Умею только через delay, но тут он не подходит (остальной скетч перестаёт работать).

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Life818 пишет:

Друг, если не трудно, оч прошу, перепеши это код как ты и сейчас написал, я только куски могу собрать воедино, учусь ещё.

Да что Вы заладили: "учусь, учусь!". Нифига Вы не учитесь!

Учиться - это когда сначала пишут палочки, потом крючочки, потом из них складывают буковки, потом из буковок слова и т.д.

И никто не учится при помощи ножниц и клея из "Войны и мира" и "Капитанской дочки" сделать "Марсианские хроники".

bwn
Offline
Зарегистрирован: 25.08.2014

На.Изучай.

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Life818 пишет:

Почему вы все такие злые)) 

Лисапета нету :(

Life818 пишет:

поставлю второй ардуино 

Ставить, так три. Одна будет сержантом над двумя другими, проследит, чтобы вовремя мигали и не сачковали.

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Life818

могу бесплатно подсказать в чёт твоя проблема и почему ты никак не можешь получить здесь желаемого.

Ты просто неадекватно воспринимаешь форум и ждёшь от него того, чего в нём не бывает. Ты ожидаешь, что будет вот так:

Life818 пишет:

ПРИМЕР ВОПРОСА И ОТВЕТА!

1. Как сделать чтобы при нажатии одной кнопки загорелась лампочка, при нажатии другой выключалось:

2. ответ:

  if(ps2x.ButtonPressed(PSB_GREEN)) digitalWrite(8, HIGH);
  if(ps2x.ButtonPressed(PSB_PINK)) digitalWrite(8, LOW);

СПАСИБО

Это абсолютно неверно! Форумы устроены по-другому и работают совсем по другому.

В итоге ты дёргаешься с №1, а №2 не получаешь и очень удивляешься. А удивляться нечему, форум ведёт себя как и должен.

Чтобы понять как на самом деле устроены и работают форумы, читай вот это раздел. Там в третьем абзаце описан как раз твой случай. Как видишь, автор абсолютно адекватно описал то, что здесь и произошло - всё ведь именно так, правда?

И по другому в реальной жизни не бывает :(

Life818
Offline
Зарегистрирован: 08.07.2018

Я не пришёл на форум как толькто у меня что-то не получилось. я до этого перелазил немало форумов. находил нужный скетч, всё работало. Но не мог выпонлить именну ту задачу которая необходимо. потратив много времени, решил обратиться на форум в надежде на человеское отношение. я был не прав. простите все. больше ничего спрашивать не буду.

я не "учу" весь процесс писания кодов. "учу" только то что мне необходимо для моих целей.
А именно - работа с 3d принетром - собрал конструктор, НАУЧИЛСЯ правильно на нём печатать и напечатал полноценное шасси для машинки. далее делал мозги для неё. пока что в тупике. но, буду стараться.

Не в обиду всем, НО люди реально изменились. Когда кто-то о чём то спрашивают, и вопрос глупый (для автора он сложен, для разбирающихся он легок) - люди в первую очередь напишут ему сарказмом, оскорбление, подколом - но никак не ответом. Я это ввиду к тому что - помочь другим - нее, только не это.

Очнитесь - сегодня вы насмехаетесь, завтро над вами. Кто умеет, тот помогает - вернитесь к этим временам. я не только о себе. а вообще об окружающих вас. 

ВСЕМ ОГРОМНОЙ УДАЧИ и мира над головой.