#1 2024-03-11 23:30:50

CHAXLUK
Учасник
Зареєстрований: 2024-03-11
Повідомлень: 1

Допоможіть з першим кодом

В перше збирав на ардуїно детектор газу, та не можу дещо зрозуміти.

if (analogSensor > sensorThres)
  {
    digitalWrite(redLed, HIGH);
    digitalWrite(greenLed, LOW);
    tone(buzzer, 1000, 200);
  }
  else
  {
    digitalWrite(redLed, LOW);
    digitalWrite(greenLed, HIGH);
    noTone(buzzer);
Взяв код з интернета, але нормально не працювало. Зелений світлодіод працював лише тоді, коли концентрація дима була більша за sensorThres. А це не так, як повинно бути. Я змінив True та False місцями, та вийшло так:
if (analogSensor > sensorThres)
  {
    digitalWrite(redLed, LOW);
    digitalWrite(greenLed, HIGH);
    tone(buzzer, 1000, 200);
  }
  else
  {
    digitalWrite(redLed, HIGH);
    digitalWrite(greenLed, LOW);
    noTone(buzzer);

І тільки після цього все запроцювало, як треба. Але я не розумію, щому так? Начебто умова правди не виконана, чи я неправильно розумію?
Одразу вибачте за непорозуміння, я, дійсно, в перше цим займаюсь.

Неактивний

#2 2024-03-12 00:08:22

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 130

Re: Допоможіть з першим кодом

CHAXLUK пише:

Але я не розумію, щому так?

Світлодіод можна підключити двома способами: або щоб з піна струм через світлодіод тік в мінус живлення, тоді світлодіод вмикається високим рівнем на піні. Або щоб струм з плюса живлення через світлодіод втікав в пін. Тоді він вмикається низьким рівнем.
Програма з інтернету розрахована на один спосіб підключення, а у вас, певно, світлодіоди підключені другим способом.

Неактивний

#3 2024-03-13 00:53:23

dimich
Учасник
Зареєстрований: 2023-12-01
Повідомлень: 130

Re: Допоможіть з першим кодом

Або інший варіант - переплутали піни для червоного і зеленого. Ми ж не знаєм, які значення в redLed і greenLed, і як підключено насправді.

Неактивний

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

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

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