Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Функциональная организация программы

Поиск

 

Программа предназначена для работы с микроконтроллером ArduinoUNO. Программа, загружается на микроконтроллер и предназначается для управления им и управления его периферийными устройствами, необходимыми для передачи данных об измерениях температуры на персональный компьютер

Функционально программа состоит из:

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

Параметр конкретного типа термистора (из datasheet):

#define TERMIST_B 4300

 

#define VIN 5.0

 

void setup()

{

// мы хотим передавать информацию на компьютер через USB, а

// точнее через последовательный (англ. serial) порт.

// Для этого необходимо начать (англ. begin) передачу, указав

// скорость. 9600 бит в секунду — традиционная скорость.

// Функция «begin» не является глобальной, она принадлежит

// объекту с именем «Serial». Объекты — это «продвинутые»

// переменные, которые обладают собственными функциями,

// к которым обращаются через символ точки.

Serial.begin(9600);

// передаём заголовок нашей таблицы в текстовом виде, иначе

// говоря печатаем строку (англ. print line). Символы «\t» —

// это специальная последовательность, которая заменяется на

// знак табуляции (англ. tab): 8-кратный выровненный пробел

Serial.println("Minute\tMeteostantion\tTemperature\tMillis");

}

 

void loop()

{

// вычисляем температуру в °С с помощью магической формулы.

// Используем при этом не целые числа, а вещественные. Их ещё

// называют числами с плавающей (англ. float) точкой. В

// выражениях с вещественными числами обязательно нужно явно

// указывать дробную часть у всех констант. Иначе дробная

// часть результата будет отброшена

mil=millis();

float voltage = analogRead(A0) * VIN / 1024.0;

float r1 = voltage / (VIN - voltage);

 

 

float temperature = 1./(1./(TERMIST_B)*log(r1)+1./(25. + 273.)) - 273;

// печатаем текущую минуту и температуру, разделяя их табом.

// println переводит курсор на новую строку, а print — нет

Serial.print(minute);

Serial.print("\t");

Serial.print("\t");

Serial.print("\t");

Serial.print(temperature);

Serial.print("\t");

Serial.print("\t");

Serial.println(mil);

 

delay(5000); // засыпаем на минуту

++minute; // увеличиваем значение минуты на 1

// откроем окно Serial Monitor в среде Arduino, оставти на

// сутки, скопируем данные в Excel, чтобы построить графики

}


ЗАКЛЮЧЕНИЕ

 

Микроконтроллер — это устройство наподобие микропроцессора. Отличие заключается в том, что память, цифровые и аналоговые входы/выходы и т.д. у микроконтроллера интегрированы в одном единственном чипе так, что микроконтроллерное устройство зачастую состоит из небольшого количества компонентов.

Микроконтроллеры отличаются в первую очередь по ширине внутренней шины данных (по количеству бит шины данных): 4-х, 8-ми, 16-ти и 32-х битные. Это количество бит можно интерпретировать как размер (длину) данных, которые микропроцессор может обработать в одной команде. Самое большое число, которое можно закодировать 8-ю битами (одним байтом), равно 255. Таким образом, 8-битный микроконтроллер, например, за один вызов команды сложения может обрабатывать только числа меньше или равные 255. Для обработки б о льших чисел необходимо исполнить команду сложения б о льшее количество раз, что, конечно же, увеличивает время сложения чисел. Микроконтроллер, как и любой другой процессор, нуждается в задании такта. Максимальная тактовая частота процессор различается от 1МГц у старых контроллеров до 100МГц у дорогих 32-х битных микроконтроллеров. Однако эта частота еще ни что не говорит о действительной скорости микропроцессора. Так, например, у большинства 8051-микроконтроллеров частота делится на 12; получается, что микроконтроллер с частотой 24МГц работает в действительности с частотой 2МГц. Например, если для одной команды этот микроконтроллер требует двух тактов, то получается, что за секунду может быть обработан «всего» 1 миллион таких команд. В то же время микроконтроллер с частотой 8МГц без внутреннего деления частоты, которому требуется для такой же команды всего один такт, может за секунду обработать 8 миллионов команд.

В процессе выполнения данной работы были выполнены все поставленные задачи, были приобретены навыки работы с микроконтроллерами семейства Arduino и управлением ими, работа с термистором.

Так же получены навыки при написании программы на языке С семейства Arduino.

Результаты работы представлены на рисунке ниже.

 

Рисунок 8- Задание 1

Рисунок 8.1- Задание 2

 


 



Поделиться:


Последнее изменение этой страницы: 2016-12-27; просмотров: 96; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.58.34.132 (0.005 с.)