фоторезистор и свет

Dmitriy.E.S
Offline
Зарегистрирован: 09.10.2017

здраствуйте прошу помощи так как запутался и не понимаю как добавить фоторезистор

первое что было это управление светом через блютус добавил лед ленту(грехом пополам разобрался), как работает по коду наверное поймете сейчас идея такова что при получение значения (5 не суть) ардуино через фоторезистор гасила свет тоесть реле, реле подключено через проходной выключатель код приложил P.S. я новичек прошу камнями не закидывать

 

int SV1 = 12;            // свет 1\2 конмната
int SV2 = 11;            // свет 1\2 конмната
int lock = 10;           // замок закрыть
int unlock = 9;          // замок открыть
int led = 3;             // пин ленты
int b = 0;               // параметры ленты
int V = 2;               // питание для ленты
int raw = 0;             // параметры фоторезистора
const int pinPhoto = A0; // фоторезистор
int V1 = 4;              // питание фоторезистора

void setup() {
  Serial.begin(9600);
  Serial.setTimeout(4);
  pinMode(SV1, OUTPUT);
  pinMode(SV2, OUTPUT);
  pinMode(lock, OUTPUT);
  pinMode(unlock, OUTPUT);
  pinMode(led, OUTPUT);
  pinMode(V, OUTPUT);
  pinMode(V1, OUTPUT);
  pinMode(pinPhoto, INPUT );
  digitalWrite(V, HIGH);
  digitalWrite(V1, HIGH);
}

void loop() {
  raw = analogRead( pinPhoto );

  if (Serial.available() > 0) {
    int i = Serial.parseInt();
    if (i == 1) digitalWrite(SV1, !digitalRead(SV1));
    if (i == 2) digitalWrite(SV2, !digitalRead(SV2));
    if (i == 3) {
      digitalWrite(lock, HIGH);
      delay(100);
      digitalWrite(lock, LOW);
    }
    if (i == 4) {
      digitalWrite(unlock, HIGH);
      delay(100);
      digitalWrite(unlock, LOW);
    }
    if (i == 5, raw < 200)   {

      digitalWrite(SV1, HIGH);
      Serial.println( raw );
    }
    else if (raw < 200)
    { digitalWrite(SV1, LOW);
      Serial.println( raw );
    }
    if (i == 6, raw > 300)   {

      digitalWrite(13, LOW);
      Serial.println( raw );
    }



   

    if (i >= 256 && i <= 511) {
      //b = i-256;  // для RGB ленты
      b = 511 - i;
      analogWrite(led, b);
    }



    
  }
}

 

Araris
Offline
Зарегистрирован: 09.11.2012

Вы не запутались, у Вас проблемы с синтаксисом оператора if.

В строке 63 условие прописано правильно, а в строках 44 и 53 некая бессмыслица, увидьте разницу.

 

Dmitriy.E.S
Offline
Зарегистрирован: 09.10.2017

так помогите хотябы простейший пример дальше сам разберусь просто даже не понимаю в какую сторону двигаться с  if

Penni
Penni аватар
Offline
Зарегистрирован: 18.01.2015

Если Вам надо выполнить действие при i раном 5 и raw меньше 200 то это пишется так

if((i==5) && (raw < 200))

Araris
Offline
Зарегистрирован: 09.11.2012
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Dmitriy.E.S пишет:

так помогите хотябы простейший пример дальше сам разберусь просто даже не понимаю в какую сторону двигаться с  if

http://people.toiit.sgu.ru/Sinelnikov/PT/C/Kern_Ritch.pdf

Там достаточно примеров и пояснений.