#1 Re: Програмування Arduino » Бесплатные Эмуляторы Ардуино » 2018-04-18 23:50:09

А вице премьер Украины "Азиров" случайно не Ваш родственник ? ??? (хотя по словарному запасу вы его на много преводсходите)

Вы сначала свои сообщения почитайте пожалуйста. Установите проверку грамматики хотя бы.

#2 Re: Апаратні питання » Временно появляются иероглифы на индикаторе (Mega2560 и Winstar 2004) » 2018-04-18 23:42:33

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

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

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

#4 Re: Програмування Arduino » Обработка длительной сработки PIR-датчика » 2018-04-06 18:13:11

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

Т.е. обновляем время чаще:

void pirmonitoring() {

  val = digitalRead(inputPin);
  if (val == HIGH) {
     digitalWrite(ledPin, HIGH);
     PirOn = millis();

     if (pirState == LOW) {      // пир-датчик включен
         pirState = HIGH;
         DigitpirState = 1;
     
         Serial.print("Motion ON!: ");
         Serial.print(h); Serial.print(":"); Serial.println(m);
         Serial.print("DigitpirState: ");
         Serial.println(DigitpirState);
         Serial.println();

        }
    }

     else {
         digitalWrite(ledPin, LOW);
         PirOff = millis();

         if (pirState == HIGH) {      // пир-датчик отключен
             pirState = LOW;
             Pir10Sec = 0;
             DigitpirState = 0;
     
             Serial.print("Motion OFF: ");
             Serial.print(h); Serial.print(":"); Serial.println(m);
             Serial.print("DigitpirState: ");
             Serial.println(DigitpirState);
             Serial.print("Pir10Sec: ");
             Serial.println(Pir10Sec);
             Serial.println();

            }
        }

      if (PirOff - PirOn > 10000) {    // длительная сработка пир-датчика
         Pir10Sec = 1;
         Serial.print("Motion LONG ON!: ");
         Serial.print(h); Serial.print(":"); Serial.println(m);   
         Serial.print("Pir10Sec: ");
         Serial.println(Pir10Sec);
         Serial.println();
        }

}

#5 Re: Програмування Arduino » Обработка длительной сработки PIR-датчика » 2018-04-05 22:58:29

Ну смотрите, в этой строке

      if (PirOff - PirOn > 10000) {    // длительная сработка пир-датчика

происходит что-то странное, а именно по условию "длительная сработка пир-датчика" происходит когда PirOff (время выключения датчика / последнее время НЕ сработки датчика) БОЛЬШЕ PirOn (времени включения / последнего времени сработки датчика).

В данном условии просходит сравнение "отключен ли датчик 10 секунд и более". Так что для начала поменяйте на

      if (PirOn - PirOff > 10000) {    // длительная сработка пир-датчика

#6 Re: Програмування Arduino » Потрібна допомога з написанням скетчу! » 2018-04-02 22:51:53

tuz-vetal пише:

Здравствуйте,прошу помочь со скетчем.
1.если на пин А4 приходит сигнал то лампочка плавно зажигаеться а если сигнал пропадает то лампочка плавно тухнет с задержкой 15 секунд .
2.если на пин А5 приходит сигнал то лампочка затухает в пол накала.
http://s1.radikale.ru/uploads/2018/4/1/d253c994cb58641c8010c4f6fc90b747-full.jpg
Заранее благодарю!

Например так:

int SIGNAL=HIGH; // сигнал это высокий уровень или низкий?
int in1=A4;
int in2=A5;
int out=3;
int brightness=0;

void setup() {
}

void loop() {
  
  if(digitalRead(in1)==SIGNAL)
    do
      { 
        brightness++;
        analogWrite(out,brightness);
        delay(15*1000/255); // 15 сек на 255 шагов
      }
    while(brightness<255);

  if(digitalRead(in2)==SIGNAL)
    do
      {
        brightness--;
        analogWrite(out,brightness);
        delay(15*1000/255); // 15 сек на 255 шагов
      }
    while(brightness>0);

}

Обработка кнопок прям как сказано. Яркость меняется ШИМ плавно, но это не значит что будет так же плавно визуально.

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