Технический форум

Технический форум (http://www.tehnari.ru/)
-   Электроника для начинающих (http://www.tehnari.ru/f117/)
-   -   Подскажите, в чем может быть проблема с LM35? (http://www.tehnari.ru/f117/t267114/)

VeeL 13.01.2020 18:09

Подскажите, в чем может быть проблема с LM35?
 
Вложений: 1
Приветствую, подскажите знающие и опытные технари)
Собрал схему терморегулятора оборотов кулера на LM35.
Температура скачет невообразимо от 0 до 150 гр - 5 раз в сек.
Ссылки не дает вставить
видео как он себя ведет.
5 датчиков и у всех одинаковая проблема.
PS. прошивки пробовал и другие, проблема не изменилась.

Андрей_Ран 14.01.2020 10:23

Сама схема-то где? Вы все 5 датчиков на одну ногу столь навесили?

VeeL 14.01.2020 13:08

То есть схема? плюс на левую ногу датчика, минус на правую, средняя на A1 в ардуину.
Нет, 5 датчиков по очереди, они не цифровые, по одной шине данных не работают ( к сажалению)).

Андрей_Ран 15.01.2020 11:10

Попробуйте так
Код:

#include    <Wire.h>
#include    <LiquidCrystal.h>

#define tempPin            A1  // the output pin of LM35
#define fan                11      // the pin where fan is
#define led                8        // led pin
#define tempMin            30  // the temperature to start the fan
#define tempMax            70  // the maximum temperature when fan is at 100%
#define updatePeriod    500

LiquidCrystal lcd(7,6,5,4,3,2);
unsigned long lastUpdateTickCount = 0;

void setup() {
    pinMode(fan, OUTPUT);
    pinMode(led, OUTPUT);
    pinMode(tempPin, INPUT);
    lcd.begin(16,2); 
}

void loop() { 

    if (lastUpdateTickCount + updatePeriod < millis()) {
        byte fanSpeed, fanLCD;
        int temp = analogRead(tempPin) * 0.48828125;
       
        if (temp  > tempMin) {
            fanSpeed = map(temp, tempMin, max(tempMax, temp), 32, 255);
            analogWrite(fan, fanSpeed);
        } else
            digitalWrite(fan, LOW);

        digitalWrite(led, (temp  > tempMax) ? HIGH : LOW);
        fanLCD = map(temp, tempMin, max(tempMax, temp), 0, 100);
       
        lcd.print("TEMP: " + String(temp) + "C          ");
        lcd.setCursor(0,1);
        lcd.print("FANS: " + String(fanLCD) + "%          ");
        lastUpdateTickCount = millis();
    }
 }


Может датчики нерабочие? Надо бы тестером проверить напругу на выходе.

VeeL 18.01.2020 16:00

Подскажите, как их проверить?

Андрей_Ран 18.01.2020 20:32

Запитать от 5 В и померить тестером напряжение на выходе относительно минуса на минимальном пределе измерений. Оно должно меняться с расчетом 10 мВ на градус, нагреть и остудить датчик проблем не составит.

VeeL 27.01.2020 19:21

В общем плюнул я на эти лм35 и сделал на ds18b20
подскажите, достаточно ли добавить библиотеку и изменить тип датчика в коде или надо все переделывать под этот датчик? нужный функционал готовых решений найти не смог с использованием этого датчика.((


Часовой пояс GMT +4, время: 02:47.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.