Показать сообщение отдельно
Старый 20.10.2014, 23:38   #2
ВладимирC
Старший Пользователь
 
Регистрация: 20.08.2007
Возраст: 51
Город: Москва
Регион: 77, 97, 99, 177
Машина: Hyunday Grandeur 3.3
Сообщений: 852
ВладимирC is a glorious beacon of lightВладимирC is a glorious beacon of lightВладимирC is a glorious beacon of lightВладимирC is a glorious beacon of lightВладимирC is a glorious beacon of light
По умолчанию

Кнопки подключаю к Arduino Pro micro
Благодаря lti1 получилось следующее:
Совмещенный скетч:
Код:
int ACC = 4;
int Hub = 5;
int Hall = 6;
int flagACC = 0;
unsigned long pauseTime = 0;

int analogPin=A0;
int data;
int data1 = 0;
int flag = 0;
unsigned long eventTime = 0;

void setup() 
 {
  pinMode(ACC, INPUT);
  pinMode(Hub, OUTPUT);
  pinMode(Hall, OUTPUT);

  Serial.begin(9600);
  digitalWrite(analogPin, HIGH);  
 }


void loop()
{
  if (digitalRead(ACC)== HIGH && flagACC == 0)
   {
   digitalWrite(Hub, HIGH);
   pauseTime = millis();
   flagACC = 1;
   }
  if (millis()-pauseTime>=2000 && flagACC == 1) // пауза 2 секунды
   {
   digitalWrite(Hall, HIGH);
   pauseTime = 0;
   }
   
  if (digitalRead(ACC)== LOW && flagACC == 1)
   {
   digitalWrite(Hall, LOW);
   pauseTime = millis();
   flagACC = 0;
   }
  if (millis()-pauseTime>=600000 && flagACC == 0) // пауза 10 минут
   {
   digitalWrite(Hub, LOW);
   pauseTime = 0;
   }
   
data=analogRead(analogPin);

if(data>=950 && data1 != 0 && flag <= 1)
 {
  Serial.print("<release:");
  Serial.print(data1);
  Serial.print(">");
  data1 = 0;
  flag = 0;
  delay(10);
 }

if(data>=950)
 {
 eventTime = millis();
 }

if(data<=949 && flag != 13 && millis()-eventTime>=50 && millis()-eventTime<=800)
 {
  flag = 2;
  data1 = data;
 }

if(data>=950 && flag == 2)
 {
  Serial.print("<click:");
  Serial.print(data1);
  Serial.print(">");
  flag = 0;
  delay(10);
 }

if(data<=949 && flag == 2 && millis()-eventTime>800)
 {
  Serial.print("<hold:");
  Serial.print(data); 
  Serial.print(">");
  data1 = data;
  flag = 1;
  delay(10);
 }
}
Изображения
 

Последний раз редактировалось admin; 20.03.2017 в 02:54.
ВладимирC вне форума   Ответить с цитированием