квест

palmer
Offline
Зарегистрирован: 22.05.2016

Доброго времени суток всем))начал писать код под квест и столкнулся с проблемами,а именно:

1.НЕ получается записать несколько действий на одну ардуино,т.е. например нужно чтобы при обнаружении человека-датчиком двжиения,загорелись 3 светодиода,затем нужно передвинуть цифру(геркон+магнит) и повернется серво на 180 градусов.Но при этом нужно чтобы датчик двжиения и серво с герконом были независимы.то есть мне наверно надо несколько void loop но как я понял так нельзя?

2. Тут же вытекает вторая проблема,как сделать так чтобы серво только открывался,а закрывлася обратно когда сделаю перезагрузку?так как магнит с герконом останутся включенными,и серво будет крутиться целый час пока геркон и магнит не разъединят то ест ьпока не пройдут квест.Это же касается и пешалки(пьезлоэлемента) нужно чтобы он попещал ненмого и выключился)то есть нажму на кнопку пещалка поиграет ,я отпущу кнопку оан все еще будет играть сек 20)))

Помогите кто меня понял,очень нужна ваша помощь)))Заранее огромнео спасибо))

alexval2007
Offline
Зарегистрирован: 10.11.2012

в ардуино все выполняется последовательно но достаточно быстро

//****************************************************************************************************
#define led1 11                 // Светодиод №1 подключенный к выходу 11
#define led2 12                 // Светодиод №2 подключенный к выходу 12
#define led3 13                 // Светодиод №3 подключенный к выходу 13


int inPin1 = 7;                   // кнопка на входе 7
int val = 0;                     // переменная для хранения значения
//****************************************************************************************************
void setup()
{
  pinMode(led1, OUTPUT);       // устанавливает режим работы - выход для 11го выхода
  pinMode(led2, OUTPUT);       // устанавливает режим работы - выход для 12го выхода
  pinMode(led3, OUTPUT);       // устанавливает режим работы - выход для 13го выхода
 
  pinMode(inPin1, INPUT);         //  устанавливает режим работы - вход для 7го вход/выхода (pin)
}
//****************************************************************************************************
void loop()

if (digitalRead(inPin1) == HIGH) // считываем значение с входа
{
   digitalWrite(led1, HIGH);     // Вкл светодиода №1
   digitalWrite(led2, HIGH);     // Вкл светодиода №2
   digitalWrite(led3, HIGH);     // Вкл светодиода №3
}
else if (pinFiveInput >= 1000)
{
  // выполнять действие B
}
else
{
  // выполнять действие  C
}
 
}

 

ну и поаналогии

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

palmer

Привет! Все что вы описали вполне потянет ардуинка.

 Беда в другом вам нужно или серьезно подтянуть свои знания или обратиться к спецу.

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

Поэтому или выкладывайте свои наработки и форумчане будут смотреть и подсказывать или идите в ветку http://arduino.ru/forumy/ishchu-ispolnitelya