#26 2023-09-28 19:53:33

Honey
Учасник
З Київ
Зареєстрований: 2020-09-26
Повідомлень: 414

Re: не коректно працює реле

digitalWrite(vbochku, HIGH);
digitalWrite(zbochki, HIGH);
перенесіть із loop в setup, вони і дають "ШІМ"

Неактивний

#27 2023-09-28 19:58:32

Антончик
Учасник
Зареєстрований: 2023-05-18
Повідомлень: 19

Re: не коректно працює реле

ncux пише:

На вокви реле с активацией по HIGH, так что HIGH<>LOW
после запуска скетча можно ткнуть на датчик и менять показания.

https://wokwi.com/projects/377019990555021313

#define sensor A0
#define vbochku A1
#define zbochki A2

uint8_t polyv = 1;
uint16_t vologist = 0;
uint32_t last_time;

void setup() {
  Serial.begin(19200);

  pinMode(sensor, INPUT);

  pinMode(vbochku, OUTPUT);
  pinMode(zbochki, OUTPUT);

  digitalWrite(vbochku, LOW);
  digitalWrite(zbochki, LOW);
}

void loop() {

  vologist = analogRead(sensor);

  switch (polyv) {
  case 1:
    Serial.println("case1 fired");
    if (vologist <= 300) {
      digitalWrite(vbochku, HIGH);
      polyv = 2;
      last_time = millis();
    }
    break;
  case 2:
    Serial.println("case 2 fired");
    if (millis() - last_time >= 5000) {
      digitalWrite(vbochku, LOW);
      polyv = 3;
    }
    break;
  case 3:
    Serial.println("case 3 fired");
    digitalWrite(zbochki, HIGH);
    polyv = 4;
    last_time = millis();
    break;
  case 4:
    Serial.println("case 4 fired");
    if (millis() - last_time >= 5000) {
      digitalWrite(zbochki, LOW);
      polyv = 1;
    }
    break;
  }
  Serial.println(vologist);
  Serial.println(polyv);
  Serial.println(millis() - last_time);
  delay(1000);
}

спасибо большое, но не могли б вы прочитать один из моих ответов на коментарий учасника(там где я привёл 2 кода) просто я пытаюсь именно разобраться что не так

Неактивний

#28 2023-09-28 20:03:18

Антончик
Учасник
Зареєстрований: 2023-05-18
Повідомлень: 19

Re: не коректно працює реле

Honey пише:

digitalWrite(vbochku, HIGH);
digitalWrite(zbochki, HIGH);
перенесіть із loop в setup, вони і дають "ШІМ"

це і справді допомогло, але ви незнаєте чому це не заважало коду який написав до перериву?

Неактивний

#29 2023-09-28 20:18:13

Honey
Учасник
З Київ
Зареєстрований: 2020-09-26
Повідомлень: 414

Re: не коректно працює реле

Антончик пише:
Honey пише:

digitalWrite(vbochku, HIGH);
digitalWrite(zbochki, HIGH);
перенесіть із loop в setup, вони і дають "ШІМ"

це і справді допомогло, але ви незнаєте чому це не заважало коду який написав до перериву?

Тому, що:

analogRead(sensor);
digitalWrite(vbochku, HIGH);
digitalWrite(zbochki, HIGH);
...
digitalWrite(vbochku, LOW);

дає ШІМ з більшим коефіцієнтом заповнення нулем (це відповідає замкненому реле), ніж:

digitalWrite(vbochku, HIGH);
digitalWrite(zbochki, HIGH);
analogRead(sensor);
...
digitalWrite(vbochku, LOW);

по причині того, що analogRead(sensor); дає значну затримку в часі.
Тобто і там також була та ж проблема з ШІМ, але реле не встигало розмикатись.

Неактивний

#30 2023-09-30 21:01:40

Антончик
Учасник
Зареєстрований: 2023-05-18
Повідомлень: 19

Re: не коректно працює реле

Honey пише:
Антончик пише:
Honey пише:

digitalWrite(vbochku, HIGH);
digitalWrite(zbochki, HIGH);
перенесіть із loop в setup, вони і дають "ШІМ"

це і справді допомогло, але ви незнаєте чому це не заважало коду який написав до перериву?

Тому, що:

analogRead(sensor);
digitalWrite(vbochku, HIGH);
digitalWrite(zbochki, HIGH);
...
digitalWrite(vbochku, LOW);

дає ШІМ з більшим коефіцієнтом заповнення нулем (це відповідає замкненому реле), ніж:

digitalWrite(vbochku, HIGH);
digitalWrite(zbochki, HIGH);
analogRead(sensor);
...
digitalWrite(vbochku, LOW);

по причині того, що analogRead(sensor); дає значну затримку в часі.
Тобто і там також була та ж проблема з ШІМ, але реле не встигало розмикатись.

дякую

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

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