Сгорела деталь

Firesprite
Offline
Зарегистрирован: 17.01.2015

Заметил, что подгорела деталь возле USB разъема

http://take.ms/4ManX

То ли кондер, то ли дроссель или резистор.

Помогите идентифицировать.

Илья73
Offline
Зарегистрирован: 06.09.2013

Посмотрел на своей дуине, похоже что дроссель.

Firesprite
Offline
Зарегистрирован: 17.01.2015

Да, это был точно дроссель

Вот он http://take.ms/8FbEf

L1 BLM21 

bwn
Offline
Зарегистрирован: 25.08.2014

Firesprite пишет:

Да, это был точно дроссель

Вот он http://take.ms/8FbEf

L1 BLM21 

А после замены дросселя, как, полет нормальный? Такие вещи вроде просто так не грят.

Firesprite
Offline
Зарегистрирован: 17.01.2015

да вроде как нормальный, но не совсем, рассказываю:

делаю подсветку для лестницы с датчиками hc-r04, на этапе прототипирования все работало как часы и питалось от компа

потом я собрал на шилде и подключил к 12v блоку питания, заметив что с подключенными датчиками начинаются ложные срабатывания.

Сразу подумал о наводках от бп, и планируя их полечить уже в собранном и установленном проекте. 

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

В сериалпорте прослушиваю что приходит от датчиков - тишина, причину срабатываний пытаюсь уточнить, код рабочий стопроцентов.

bwn
Offline
Зарегистрирован: 25.08.2014

Firesprite пишет:

да вроде как нормальный, но не совсем, рассказываю:

делаю подсветку для лестницы с датчиками hc-r04, на этапе прототипирования все работало как часы и питалось от компа

потом я собрал на шилде и подключил к 12v блоку питания, заметив что с подключенными датчиками начинаются ложные срабатывания.

Сразу подумал о наводках от бп, и планируя их полечить уже в собранном и установленном проекте. 

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

В сериалпорте прослушиваю что приходит от датчиков - тишина, причину срабатываний пытаюсь уточнить, код рабочий стопроцентов.

А просто Blinki и прочий вывод в Serial работают?

Firesprite
Offline
Зарегистрирован: 17.01.2015

да, работает и сериал и блинки

вот мой скетч, может кто то у себя протестит?

// Скетч для датчика hc-sr04 и ArduinoMega 2560 - у нее 15 PWM ног.
#define sensorPin A0                    // Нога для фоторезистора включается в A0 http://goo.gl/9gupvj;
#define ledNight 24                        // Нога для LED - показывает включение ночного режима;
unsigned int sensorValue = 0;            // Переменная для снятия показаний сенсора освещенности;
boolean night = 1;                        // Если 1 - то ночь;
byte OutPins[15] = {2,3,4,5,6,7,8,9,10,11,12,13,44,45,46}; // Массив PWM ног, сюда включаются входы http://goo.gl/ZM3xCw;
int i;                                    // Счетчик для зажигания и тушения диодов, определения день/ночь;
#define pingPin00 30                    // SEN00 - нижний ультрасоник, PWM Выход на ноге 30;
#define trigPin00 31                    // сюда присоединяем тригерную ногу нижнего ультрасоника;
#define pingPin01 32                    // SEN01 - верхний ультрасоник, PWM Выход на ноге 32;
#define trigPin01 33                    // сюда присоединяем тригерную ногу верхнего ультрасоника;
#define LedUltra 25                        // Нога светодиода - в ночном режиме показывает что любой ультрасоник схватил дистанцию, в дневном режиме просто светится;
unsigned int Distance=0;                // Дистанция с ультрасоника;

//************************* Все что ниже - определить самостоятельно ************************************************
unsigned int sensorRef = 650;            // Референсное значение сенсора освещенности, выше которого считается ночь;
#define timer 100                        // 100 Таймер для задержек при включении/выключении последовательности ступенек;
#define SwitchOffDelay 1000            // 15000 Задержка выключения посветки, милисекунды (здесь 15 секунд) ;
#define SwitchOnBright 200                // Яркость включенных ступенек, максимально - 255;
#define NightBright  20                    // Яркость подсвеченных ступенек в ночном режиме (первая, последняя);
//int timeForBlink = 100;                    // Число циклов мерцания включенной подсветки;
#define bottomDistance 15               // Расстояние в см для срабатывания нижнего ультрасоника
#define topDistance 15                    // Расстояние в см для срабатывания верхнего ультрасоника
#define smoothSwitchDelayStep 1           // Скорость нарастания яркости ступеньки мс., чем меньше тем быстрее нарастает;
//*******************************************************************************************************************
void setup() {
  Serial.begin(9600);
  pinMode(ledNight, OUTPUT);            // Ночной диод  ;
  pinMode(LedUltra, OUTPUT);            // Диод, индикатор "день" а ночью - чтобы видно было как действует ультрасоник;
  digitalWrite(LedUltra,LOW);
  pinMode(trigPin00,OUTPUT);
  pinMode(trigPin01,OUTPUT);
  pinMode(pingPin00,INPUT);
  pinMode(pingPin01,INPUT);

  for(i=0; i<15; i++) {                    // Режим работы PWM ног - выход;
    pinMode(OutPins[i], OUTPUT);
  }
}

//===================================================================================================================
void loop() {
    NightIn();                            // Получаем данные День/Ночь;
    Serial.print(night);
    Serial.print(" - boolean night");
    Serial.println();

    if(1 == night) {                    // Если ночь;
        getDistance(trigPin00, pingPin00);            // Опрашиваем нижний ультрасоник;
        Serial.print(Distance);
        Serial.print(" - First Distance");
        Serial.println();
        delay(1);
        if(Distance < bottomDistance) {    // Проверка дистанции для нижнего ультрасоника;
            SwitchOnSmoothly(0);        // Включаем подсветку снизу вверх;
        }

        getDistance(trigPin01, pingPin01);            // Опрашиваем верхний ультрасоник;
        Serial.print(Distance);
        Serial.print(" - Second Distance");
        Serial.println();
        delay(1);

        if(Distance < topDistance) {    // Проверка дистанции для верхнего ультрасоника;
            SwitchOnSmoothly(1);        // Включаем подсветку сверху вниз;
        }
  }
}
//===========================================================================================
unsigned int getDistance(byte trig, byte ping) {// Чтение ультрасоника - получение дистанции;
    unsigned int duration = 0;
    digitalWrite(trig, LOW);
    delayMicroseconds(2);
    digitalWrite(trig, HIGH);
    delayMicroseconds(10);
    digitalWrite(trig, LOW);
    duration = pulseIn(ping,HIGH);
    Distance = duration/29/2;
  
    return Distance;
}
//===========================================================================================
boolean NightIn() {                                        // Чтение день или ночь;
    sensorValue = 0;
    unsigned int a = 0, b = 0;                            // Счетчики превышения сенсора над референсным значанием и значением минус гистерезис
int brightness;
    digitalWrite(LedUltra, HIGH);
    for(i = 0; i < 50; i++) {
        sensorValue = analogRead(sensorPin);            // Чтение показаний датчика;
        if (sensorValue < sensorRef) a++;                // Увеличиваем а, если темнее референсного значения;
        if (sensorValue <  (sensorRef - 3)) b++;        // Увеличиваем b, если темнее чем референсное значение минус допуск на гистерезис;
    }

    if ((night == 0) && (a > 49)) {                        // Если сейчас режим день и 50 раз значение датчика оказалось выше референсного,
                                                        // то переключаемся в ночной режим, включаем дежурную подсветку ступенек.
        digitalWrite(ledNight, HIGH);
        digitalWrite(LedUltra, LOW);
        //delayMicroseconds(10000);
           for (brightness = 0; brightness < SwitchOnBright; brightness++) {
                 
                analogWrite(2,10);
                analogWrite(46,10);
                delay(5);
            }
        
        night = 1;
    }

    if ((night == 1) && (b == 0)) {                        // Если сейчас режим ночь, и 50 раз значение датчика оказалось ниже референсного за
                                                        // вычетом запаса на гистерезис - включаем режим "день", гасим подсветку ступенек.
        digitalWrite(ledNight, LOW);
        digitalWrite(LedUltra, HIGH);
        analogWrite(2,0);
        analogWrite(46,0);
        night = 0;
    }

    return night;
}
//===========================================================================================
//void blink (int timeForBlink) {                            // Мерцание во время задержки
//   unsigned char brightness = 0;
//    for (int a = 0; a < timeForBlink; a++) {            // Цикл определяет длительность мерцания;
//       for(i = 1; i < 15; i++) {                        // Мерцаем диодами;
//           brightness = random((SwitchOnBright-25), SwitchOnBright);
//           analogWrite(OutPins[i], brightness);
//           delay(2);                                    // Маленькая задержка;
//       }
//    }

//   for(i = 1; i < 15; i++) {                            // Восстанавливаем свечение лестницы;
//       analogWrite(OutPins[i], SwitchOnBright);
//    }
//   return;
//}
//===========================================================================================
void SwitchOnSmoothly(bool direction) {                    // Включаем/выключаем в указанном направлении ;
    int brightness;
    digitalWrite(LedUltra, HIGH);

    if (!direction) {
        for (i=0; i<16; i++) {
            for (brightness = 0; brightness < SwitchOnBright; brightness++) {
                analogWrite(OutPins[i], brightness);
                delay(smoothSwitchDelayStep);
            }
        }
        delay(SwitchOffDelay);
        //blink (timeForBlink);                            // Померцаем;

        for (i=0; i<16; i++) {
            for (brightness = SwitchOnBright; brightness >= 0; brightness--) {
                analogWrite(OutPins[i], brightness);
                delay(smoothSwitchDelayStep);
            }
        }

    }
    else {
        for (i=15; i>=0; i--) {
            for (brightness = 0; brightness < SwitchOnBright; brightness++) {
                analogWrite(OutPins[i], brightness);
                delay(smoothSwitchDelayStep);
            }
        }
        delay(SwitchOffDelay);
        //blink (timeForBlink);                            // Померцаем;

        for (i=15; i>=0; i--) {
            for (brightness = SwitchOnBright; brightness >= 0; brightness--) {
                analogWrite(OutPins[i], brightness);
                delay(smoothSwitchDelayStep);
            }
        }
    }
    
 for (brightness = 0; brightness < NightBright; brightness++) {
                analogWrite(2, brightness);
                
                delay(15);
            }
 for (brightness = 0; brightness < NightBright; brightness++) {
                analogWrite(46,brightness);
                
                delay(15);
            }           
            // Включим первую и последнюю ступеньки.


}

 

Firesprite
Offline
Зарегистрирован: 17.01.2015

кстати, датчики сдохли и не отвечают при прослушивании (

питание не превышалось больше 13 в и не менялись полюса

Maverik
Offline
Зарегистрирован: 12.09.2012

у мну на funduino mega при питании от 12в стабилизатор греется как чайник, питаю от 9в