Светодиодная лента

himikat
Offline
Зарегистрирован: 21.06.2016
int trans = 9; // переменная транзистора
int pir = 8; // переменная датчика
int led = 13;
boolean val=0;
void setup() {
  // put your setup code here, to run once:
pinMode (pir,INPUT); 
pinMode (trans,OUTPUT);
pinMode (led,OUTPUT);
}

void loop() {
val = digitalRead (pir);// считываем данные с датчика
if (val == true) { // если да то 
for (int i=0 ; i<=255; i++){ // плавно включаем ленту
analogWrite (trans,i);
delay (5);// задержка для плавности
}
}
else {
for (int i=255 ; i<=0; i--){ // достигли максимума 
analogWrite (trans,i); // плавно выключаем
delay (5);
}
}
}  
//}
//}

 

himikat
Offline
Зарегистрирован: 21.06.2016

Люди добрые помогите, проблема в том что лента всегда загорается через секунду загорается вновь и так постоянно . Питается все от 1 блока на 12 в и лента и ардуина. С ардуины датчик движения фиксирует движение и отправляет в ардуину , тот в свою очередь через мосфет (модуль) открывает затвор и подает на ленту.

Ворота
Ворота аватар
Онлайн
Зарегистрирован: 10.01.2016

Глубокомысленно.

Ворота
Ворота аватар
Онлайн
Зарегистрирован: 10.01.2016

Так у тебя ж условие в строке №21

for (int i=255 ; i<=0; i--)

не срабатывает от слова никогда. Этот цикл просто не работает вообще.

himikat
Offline
Зарегистрирован: 21.06.2016

Да все спасибо , сам уже увидел .