Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Контур измерения температуры с выводом информации на светодиодную шкалу

Автор:   •  Январь 8, 2023  •  Лабораторная работа  •  1,174 Слов (5 Страниц)  •  219 Просмотры

Страница 1 из 5

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

федеральное государственное автономное образовательное учреждение высшего образования

 «САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ

КАФЕДРА ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ И СЕТЕЙ

ОЦЕНКА

ПРЕПОДАВАТЕЛЬ

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ

Контур измерения температуры с выводом информации на светодиодную шкалу

по дисциплине: Схемотехника

  РАБОТУ ВЫПОЛНИЛ

СТУДЕНТ ГР. №

подпись, дата

инициалы, фамилия

СТУД. БИЛЕТ №

Цель работы: 

Разработать принципиальную электрическую схему системы контроля температуры, разработать и отладить программу для реализации системы на микропроцессорном контроллере Arduino Uno R3 в среде TINKERCAD.

Исходные данные: 

Организовать контур измерения температуры с выводом информации на светодиодную шкалу. Для отображения данных о текущем значении температуры использовать светодиодную ленту типа «NeoPixel Ring 12», с рабочим диапазоном -50...+50°С. Шкала светодиодной ленты имеет дискретность 10°С, так в положительной части диапазона измерения шкала разбивается на ряд интервалов: +0…+9, +10…+19, +20…+19 и т.д. При изменении температуры на шкале последовательно загораются красные или синие индикаторы в зависимости знака измеренного значения температуры. В начале работы шкала полностью заполняется зелеными светодиодами

Состав комплектующих для выполнения работы:

Наименование компонента

Тип

Количество

1

Микропроцессорный контроллер

Arduino Uno R3

1

2

Датчик температуры

TMP36

1

3

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

NeoPixel Ring 12

1

4

Макетная плата

1

[pic 1]

Рисунок 1 – список элементов, сгенерированный средствами Tinkercad

[pic 2]

Рисунок 2 – элементы и их соединения в среде Tinkercad

[pic 3]

Рисунок 3 – электрическая принципиальная схема

Листинг программного кода:        

#include <Adafruit_NeoPixel.h>

#ifdef __AVR__

  #include <avr/power.h>

#endif

#define PIN 8

// Количество диодов NeoPixels подключенных к Arduino

#define NUMPIXELS 12

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

const int sensorPin = A0;

// Базовая температура в Цельсиях

const float baselineTemp = 0;

void setup() {

  Serial.begin(9600);

  pixels.begin();

  // устанавливаем LED пины как OUTPUT

  for (int pinNumber = 2; pinNumber < 5; pinNumber++) {

    pinMode(pinNumber, OUTPUT);

    digitalWrite(pinNumber, LOW);

  }

}

void loop() {

    // Считываем значение с аналогового входа A0

    int sensorVal = analogRead(sensorPin);

    // Переводим данные с сенсора в напряжение

    float voltage = (sensorVal / 1024.0) * 5.0;

    // Переводим напряжение в температуру

    float temperature = (voltage - .5) * 100;

    // Выводим значение температуры

    Serial.print(", Температура: ");

    Serial.print(temperature);

    Serial.print(" \xC2\xB0"); // Символ градусов

    Serial.println("C");

    // Закрашиваем по умолчанию все светодиоды зеленым цветом

    for (int i=0; i<12; i++) {

        pixels.setPixelColor(i, pixels.Color(0, 128, 1));

        pixels.show();

    }

    if (temperature > 0 && temperature < 9) {

        for (int i=0; i<1; i++) {

            pixels.setPixelColor(i, pixels.Color(255, 0, 0)); // Устанавливаем цвет светодиодов

            pixels.show(); // Посылаем сигнал на изменение цвета

        }

    }

    if (temperature > 10 && temperature < 19) {

        for (int i=0; i<2; i++) {

            pixels.setPixelColor(i, pixels.Color(255, 0, 0));

            pixels.show();

        }

    }

    if (temperature > 20 && temperature < 29) {

        for (int i=0; i<3; i++) {

            pixels.setPixelColor(i, pixels.Color(255, 0, 0));

            pixels.show();

        }

    }

    if (temperature > 30 && temperature < 39) {

        for (int i=0; i<4; i++) {

            pixels.setPixelColor(i, pixels.Color(255, 0, 0));

            pixels.show();

        }

    }

    if (temperature > 40 && temperature < 49) {

        for (int i=0; i<5; i++) {

            pixels.setPixelColor(i, pixels.Color(255, 0, 0));

            pixels.show();

        }

    }

    if (temperature > -10 && temperature < -0) {

        for (int i=11; i<12; i++) {

            pixels.setPixelColor(i, pixels.Color(0, 77, 255));

            pixels.show(); // Посылаем сигнал на изменение цвета

        }

    }

    if (temperature > -20 && temperature < -11) {

        for (int i=10; i<12; i++) {

            pixels.setPixelColor(i, pixels.Color(0, 77, 255));

            pixels.show();

        }

    }

    if (temperature > -30 && temperature < -21) {

        for (int i=9; i<12; i++) {

            pixels.setPixelColor(i, pixels.Color(0, 77, 255));

            pixels.show();

        }

    }

    if (temperature > -40 && temperature < -31) {

        for (int i=8; i<12; i++) {

            pixels.setPixelColor(i, pixels.Color(0, 77, 255));

            pixels.show();

        }

    }

    if (temperature > -50 && temperature < -41) {

        for (int i=7; i<12; i++) {

            pixels.setPixelColor(i, pixels.Color(0, 77, 255));

            pixels.show();

        }

    }

    delay(5000);

    pixels.clear();

}

...

Скачать:   txt (8.6 Kb)   pdf (472.5 Kb)   docx (364.2 Kb)  
Продолжить читать еще 4 страниц(ы) »
Доступно только на Essays.club