#1 Re: Програмування Arduino » Помогите разобраться с кодом » 2016-04-22 12:06:12

NoName пише:

Wiper, привет, я тоже новичок в ардуино!
посмотрите на свой код, он ведь реально непонятный,
а раз плохо читается то и проблему не увидите

Добрый день. Вы имеете ввиду то, как расположены операторы в коде?
Я пытался расставлять так, как предлагает программа.
Если можете покажите пример как удобно и я переделаю.

Спасибо!

#2 Re: Програмування Arduino » Помогите разобраться с кодом » 2016-04-20 18:11:27

NoName пише:

выносите выключение светодиодов в таймер,  по сути отдельный поток, и делайте обработку условными семафорами  ( 1 -  нужно включать 1 уровень, и т.д. 4 - выключать плавно, 0 - ничего не делать  )

Я новичок в ардуино! Как это правильно сделать?

#3 Re: Програмування Arduino » Помогите разобраться с кодом » 2016-04-12 12:13:04

Well пише:

Проблема простая,при снижении напряжения светодиод начинает "мерцать" по тому что ему мало напряжения и это особенность полупроводником.Проэксперементируйте саме.Удачи

Чем это можно компенсировать или как переделать?

#4 Re: Програмування Arduino » Помогите разобраться с кодом » 2016-03-29 18:45:21

Вот сам код.

#define LED1 3         // 1 канал светодиода, подключен к 3 пину ARDUINO
#define LED2 5         // 2 канал светодиода, подключен к 5 пину ARDUINO
#define LED3 6         // 3 канал светодиода, подключен к 6 пину ARDUINO
#define LEDon 13       // Светодиодный индикатор на 13 пине, включается когда срабатывает датчик движения
#define DayNight 500   // Парог срабатывания датчика освещенности
#define timeON 3       // Скорость плавного включения светодиодов
#define timeOFF 27     // Скорость плавного выключения светодиодов
#define delayON 120000 // Время задержки на выключение, если нет сигнала с датчика движения
int Move = A0;         // Датчик движения, подключен к пину A0 на ARDUINO
int Foto = A1;         // Датчик освещенности, подключен к пину A1 на ARDUINO
int i = 0;
int on = 0;
int off = 1;
unsigned long timeroff;
int L = 0;
int N = 0;

void setup() {
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  pinMode(LEDon, OUTPUT);
  pinMode(Move, INPUT);
  pinMode(Foto, INPUT);
}

void loop() {
  int val1=digitalRead(Move);
  delay(10);
  int val2=analogRead(Foto);

  if (val1==1) {
    digitalWrite(LEDon, HIGH);
  }
  else if (val1==0) {
    digitalWrite(LEDon, LOW);
  }
  if (val1==1&&on==0&&L==1) {
    for (i = i; i < 256; i++) {
      analogWrite(LED1, i);
      analogWrite(LED2, i);
      analogWrite(LED3, i);
      delay(timeON);
    }
    on=1;off=0;
    L=0;
    N=1;
  }
  if (val2<200 && N==0) {
    analogWrite(LED1, 1);
    delay(150);
  }
  if (val2>300 && N==0) {
    analogWrite(LED1, 0);
    delay(150);
  }
  
  if (val1==1&&on==0&&L==0&&val2<800) {
    for (i = 0; i < 256; i++) {
      analogWrite(LED1, i);
      delay(timeON);
      if (i==255) {
        for (i = 0; i < 256; i++) {
          analogWrite(LED2, i);
          delay(timeON);
          if (i==255) {
            for (i = 0; i < 256; i++) {
              analogWrite(LED3, i);
              delay(timeON);}
          }
        }
      }
    }
    on=1;off=0;N=1;}

else if (val1==1&&on==1) {
  off=0;timeroff=0;
}

else if (val1==0&&val2<800&&timeroff==0) {
  timeroff=millis();
}

else if (val1==0&&off==0&&millis()-timeroff>delayON) {
/*  digitalWrite(LED1, LOW);
  digitalWrite(LED2, LOW);
  digitalWrite(LED3, LOW);
  delay(10);*/
  for (i = 255; i >= 0; i--) {
    analogWrite(LED1, i);
    analogWrite(LED2, i);
    analogWrite(LED3, i);
    delay(timeOFF);

  int val1=digitalRead(Move);
  int val2=analogRead(Foto);
  N=0;
  if (val1==1) {
    digitalWrite(LEDon, HIGH);
  }
  else if (val1==0) {
    digitalWrite(LEDon, LOW);
  }

    if(digitalRead(Move)==HIGH && val2<800) {
      L=1;
      break;
    }
  }
  off=1;on=0;timeroff=0;
}
}

#5 Програмування Arduino » Помогите разобраться с кодом » 2016-03-29 18:35:36

Wiper
відповідей: 8

Код рабочий, но не получается добиться нужного эффекта!
А именно имеется 3 канала, которые должны плавно зажигаться
друг за другом и спустя 2 минуты плавно затухать, но вместе.
Зажигаются нормально, а вот затухают почему-то с мерцанием!

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

Підвал форуму