Activity

Тепловые режимы электронных компонентов

Общеизвестно, что электроника потребляя энергию, выделяет тепло т.е. греется.
При постройке RC-моделей точно оценить тепловые режимы практически невозможно.
Представьте какое разочарование приходит от того, что модель терпит крушение (частенько из-за отказа регулятора или двигателя).
При постройке тренера из потолочной плитки у меня возникла задача выяснить тепловые режимы.

Я взял Arduino Nano, два датчика DS18B20, SD-Cardreader, 4 резистора на 4,7 кОм. набросал примитивную схемку.

В данной схеме присутствует модуль телеметрии который легко исключается.
В Arduino залил скетч для опроса датчиков DS с записью на SD карту.
Собственно сам скетч не претендующий на оригинальность.

#include <OneWire.h>
#include <DallasTemperature.h>
#include <SPI.h>
#include <SD.h>
int CS_pin = 10;
long ID = 1;
#define ONE_WIRE_BUS 2

OneWire oneWire(ONE_WIRE_BUS);

DallasTemperature sensors(&oneWire);

DeviceAddress Thermometer1 = { 0x28, 0xFF, 0x1C, 0xD8, 0x63, 0x14, 0x02, 0x22 }; // адрес датчика DS18B20 28ff1cd863140222

DeviceAddress Thermometer2 = { 0x28, 0xFF, 0x65, 0xBB, 0x63, 0x14, 0x02, 0xA4 }; // адрес датчика DS18B20 28ff65bb631402a4

void setup() {
Serial.begin(57600);
Serial.println(“init SD Card”);
pinMode(CS_pin, OUTPUT);

sensors.begin();
sensors.setResolution(Thermometer1, 10);
sensors.setResolution(Thermometer2, 10);

if (!SD.begin(CS_pin))
{
Serial.println(“Card Filed”);
// return;
}
else {
Serial.println(“Card Ready”);
}
}
/*
void printDS(DeviceAddress deviceAddress) {
float tempC = sensors.getTempC(deviceAddress);
Serial.println(tempC);
}
*/
void loop() {

int sensorValue = analogRead(A0);
// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
float Vbat = sensorValue * (15.0 / 1023.0);
sensors.requestTemperatures();

float tempC1 = sensors.getTempC(Thermometer1);
float tempC2 = sensors.getTempC(Thermometer2);

String dataString = String(ID) + “;” + String(tempC1) + “;” + String(tempC2) + “;” + String(Vbat) ;
String dataString2 = String(ID) + " " + String(“Motor=”) + String(tempC1) + " " + String(“Reg=”) + String(tempC2) + " " + String(“Vbat=”) + String(Vbat) ;

File dataFile = SD.open(“LOG.csv”, FILE_WRITE);
if (dataFile)
{
dataFile.println(dataString);
dataFile.close();
Serial.println(dataString2);
}
else
{
Serial.println(“Couldn’t access file…”);
Serial.println(dataString2);
}
ID++;

delay(1000);
}

Все это хозяйство разместил на борту, DS-ки разместил на регуляторе и у основания двигателя и после контрольного полета получил первые результаты.


Явный перегрев как говориться на лицо. Полученные данные были учтены в дальнейшем при размещении регулятора и при устройстве вентиляции.
P:S В дальнейшем устройство обросло датчиком давления и модулем 3 DR Radio на 433 MHz.