#1 2018-07-09 15:26:50

Влад4325
Участник
Зарегистрирован: 2018-07-09
Сообщений: 3

Помогите новичку

IMG_20180709_150634.jpegНе работает схема
int brightness = 0;
int fadeAmount = 5;
unsigned long currentTime;
unsigned long loopTime ;
void setup(){
    pinMode(10, OUTPUT);
    currentTime  = millis();
    loopTime = currentTime;
}
void loop(){
   if(currentTime >= (loopTime +20)){
        analogWrite(10, brightness);
        brightness = brightness + fadeAmount;
        if(brightness == 0 || brightness == 255){
            fadeAmount = -fadeAmount;
        }
        loopTime = currentTime;
    }
}

Редактировался Влад4325 (2018-07-09 15:38:07)

#2 2018-07-09 17:12:47

LynX
Участник
Зарегистрирован: 2018-04-19
Сообщений: 66

Re: Помогите новичку

currentTime не меняется.
При первом проходе цикла условие оказывается ложным, а дальше ничего не меняется, цикл повторяется заново и заново и не выполняется тело.

Замените  if(currentTime >= (loopTime +20)){
на  if(milllis() >= (loopTime +20)){

#3 2018-07-10 14:50:49

Влад4325
Участник
Зарегистрирован: 2018-07-09
Сообщений: 3

Re: Помогите новичку

Спасибі диод нечел гореть но нет плавного виключення и включення

Редактировался Влад4325 (2018-07-10 14:51:14)

#4 2018-07-10 15:35:22

LynX
Участник
Зарегистрирован: 2018-04-19
Сообщений: 66

Re: Помогите новичку

К сожалению яркость светодиода не пропорциональна заполнению ШИМ поданного на него.
Подавайте на него значения от 0 до около 10 (вместо 255). При этом значении светодиод горит почти на полную. Попробуйте разные значения 10, 20, 50....

#5 2018-07-10 16:30:43

renoshnik
Участник
Зарегистрирован: 2017-04-03
Сообщений: 330

Re: Помогите новичку

Нужно сделать логарифмическую таблицу (массив 255 значений)  и по ней рулить СД

#6 2018-07-10 16:37:38

Влад4325
Участник
Зарегистрирован: 2018-07-09
Сообщений: 3

Re: Помогите новичку

Большое вам спасибо очень помогли

Быстрое сообщение

Введите сообщение и нажмите Отправить

Подвал раздела