как программировать таймер DIGISPARK
- Войдите на сайт для отправки комментариев
Пт, 21/10/2016 - 22:45
делаю муляж бомбы для страйкбольных игр на базе arduino
принцип роботи прост:
нажал на одну кнопку увеличил время на 5 минут, нажал и держишь на другую кнопку время уменьшается
сигнал будет когда время выйдет или 2 кнопка будет отпускаетсa
но код не работает
/* knopka podkljucena mezdu pin i GND * scoby ne ispolzovat podtahjuscyj rezystor */ int p = 1; //led+ speaker int button=2 ; //knopka vremeny int pp = 2; // start long cas=0; //peremennaja dlja vremeny int var = 0; int i=5000; // vrema kotoroje budet dodavatsa void setup() { pinMode(button, INPUT_PULLUP); // cas pinMode(p, OUTPUT); // speaker pinMode(pp, INPUT_PULLUP); // start } void ledon() { digitalWrite(1,HIGH); } void ledoff() { digitalWrite(1,LOW); } void blik(){ digitalWrite(p, HIGH); delay(10000); digitalWrite(p, LOW); delay(1000); } void speaker() { while(var<200){ tone (p, 500); delay(100); tone(p, 1000); delay(100); var++; } } void loop() { if (digitalRead(button) == LOW) { //vkljuci led dlja proverky nazatye ledon(); } delay(250); if (digitalRead(button) == HIGH) { // dodaj vrema stolka ras cas=cas+i; // skolka raz nazal na knopku ledoff(); //(1 ras =5minut) } // (3 raza=15minut) if (digitalRead(2) == LOW) { // vkljuci led dlja proverky nazatye ledon(); delay(250); ledoff(); delay(cas); blik(); speaker(); } delay(250); if(digitalRead(2) == HIGH) { blik(); speaker(); } }
Вы действительно так думаете?
Очень интересно, спасибо большое)
5 sekund ja zdelal scob ne zdat 5 minut pry teste programy
daze pry ispravlenyy rozpynovky ne robotaet
kak posovetujete ispravyt delay ?
vot ispravlenyj kod + ubral speaker dlja testa a to uze usy est =(
Хм...
Блондинко?
Фото в студию!
Sudja po kodu vy kazetsa pravylno ponjaly
speaker() dolzen nachodytsa vmeste z blik() oni budut podavat signal o okoncanyy vremeny ili esly nepravylno rozdefuzyli
Ksozelenyju vasa versyja koda toze nerobotaet, pocemu nemogu skazat tak kak ja novycok v etom dele
( vo izbezanye drebezha star i dodavanye vremeny proischodylo posle odkljuzenye ot pin s intervalom 250ms scoby sokratyt kod budet li takoe robotat? )
Исправил, подключение кнопок в самом верху (Вы у себя тоже поменяйте)
- Проверил в протеусе -все работает.
nakonec to zarobotalo, bolsoe spasiba
tak ze chotel sprosyt, posle okoncanye vremeny, funkcyja kotoraja otvecaet za blikanye led
mozna li za nejo dadat speaker? i kak lutse eto zdelat scob bylo bez delay() s tem sco speaker budet na druhom pin
scoby polucylos kak to
esli ja pravylno ponejal etot kod
Нет! speaker(); Нужно подключить НЕ на 0 или1 пин (они нужны для отладки) алюбой другой, к примеру 5. Вставлять вызов нужно в блоке else перед break (После 110 сторочки)
Прошу прощения, я немного подправил код и вставил Вашу функцию. Пожалуйста замените код у себя!!!
ja daze neznaju kak tebe blahadarit, ty mne ocen pomoh spasiba
mozes isce proveryt etot kod
kde speaker na 5 pine + 4 pin eta falsyboe obezvrezovanyae
v digispark ne mnoha pinov od 0 do 5
na 1 pin podkljucen vstrojenyj LED kotoryj i budet ispolzovatsa kak sygnal o nazatyy
Понял! Тогда выполните 2й - #14 пункт идолжно работать/
kod robotaet no speaker nacinaet podavat signal tolka posle svetovoho signala LED, mozna eto kak to ispravit? esli mozna to kak?
А как Вам надо - спикер перед Лед или одновременно!
zabej na fb ato slyskom nespravedlyvo budet, no kod robotaet tak sco led robotaet pravylno no speaker srazu posle zapuska timera ne dozydaes okoncanyy vremeny
У меня на симуляторе работает все правильно. Отключите кнопку "fb" и задокументируйте код с ней, что бы настроить работу без неё. Вот так