Проведение измерений на платформе ARDUINO

Описание:
Доступные действия
Введите защитный код для скачивания файла и нажмите "Скачать файл"
Защитный код
Введите защитный код

Нажмите на изображение для генерации защитного кода

Текст:

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«Сибирская государственная автомобильно-дорожная академия

(СибАДИ)»

Кафедра: Управление качеством и производственными системами.

Курсовая работа

на тему: «Проведение измерений на платформе ARDUINO»

Дисциплина:  Методы и средства измерений, испытаний и контроля

        Выполнила:Богочанова А.А.

2 курса      

                                                                                
    очной формы обучения

группы УКб-14Э1

Руководитель:          доцент, к.т.н.,

  Байда А.С.

Оценка

________________________

                                                                         Дата сдачи работы:

«____»____________2016.г                    «___» ________________2016 г.

Омск 2016г.

Содержание

Введение. 3

1. Arduino. 4

1.2. Начало работы с Arduino. 5

2.Практические задания. 6

Практическое задание №1. 6

Практическая работа №2. 8

Практическая работа №3. 15

Практическая работа №4. 22

Введение

Arduino – аппаратная вычислительная платформа, состоящая из двух основных компонентов: плата ввода-вывода и среда разработки на языке Processing/Wiring. Arduino удобна для разработки электронных устройств как для новичков, так и для профессионалов. Эта платформа пользуется огромной популярностью во всем мире из-за простого языка программирования, открытой архитектуры и программного кода. Особенность данной платформы является то что она программируется без использования программаторов через USB. С помощью Arduino компьютер может выйти за рамки виртуального мира в физический, благодаря множеству датчиков которые можно подключить к плате. Датчики могут получать информацию об окружающей среде, а также управлять различными исполнительными устройствами.

Целью данной курсовой работы является приобретение практических навыков в области программирования микроконтроллеров.

Задачамикурсовой работы являются:

1.           Приобретение навыков работы  с платформой ARDUINO.

2.           Изучение средств программирования платформы ARDUINO.

3.           Написание программ для успешного программирования ARDUINO.

1. Arduino

Плата Arduino состоит из микроконтроллера и элементов обвязки для программирования и интеграции с другими схемами. На многих платах так же имеется линейный стабилизатор напряжения. Тактирование осуществляется на частоте 16 или 8 МГц кварцевым резонатором ( прибор, в котором пьезокристаллический эффект и явление механического резонанса используется для построения высокодобротного (свойство колебательной системы, определяющее полосу резонанса и показывающее, во сколько раз запасы энергии в системе больше, чем потери энергии за один период колебаний ) резонансного элемента электронной схемы. В микроконтроллер предварительно прошивается загрузчик( программа отвечающая за загрузку исполнительных файлов и запуск новых процессов ) BootLoader, поэтому внешний программатор не нужен. Плата Arduino содержит инвертирующую схему для конвертирования уровней сигналов RS-232( Recommended Standart 232, физический уровень для асинхронного интерфейса ) в уровни ТТЛ (Транзисторно-транзисторная логика-разновидность цифровых логических микросхем, построенных на основе биполярных транзисторов (трёхэлектродный полупроводниковый прибор) и резисторов.), и наоборот.

Интегрированная среда разработки Arduino – это кросплотформенное приложение на Java, включающая в себя редактор кода, компилятор и модуль передачи прошивки в плату. Язык программирования используемый для Arduino очень похож на СИ++, дополненный некоторыми библиотеками. Обработка программ осуществляется с помощью препроцессора, а компилируется с помощью AVR-GCC.

1.2. Начало работы с Arduino

Для того что бы начать работать с Arduino понадобится следующее:

1)           Плата Arduino

2)           USB-кабель

3)           Среда разработки для Arduino

Arduino Uno получает питание автоматически от любого USB-подключения к компьютеру или другому источнику питания.

Подсоедините плату Arduino к компьютеру, используя USB-кабель. Должен загореться зеленый светодиод питания, помеченный PWR. Следующим шагом будет установка драйверов, для имеющейся модели. После того как драйвера были установлены, запускаем среду разработки Arduino. Во многих средах разработки Arduino уже есть готовый пример скетча, который можно запустить и проверить правильность подключения платы к компьютеру. В настройках среды разработки необходимо указать модель платы Arduino, иначе даже при правильно написанном скетче, плата будет работать неправильно. Так же необходимо выбрать последовательный порт. Далее проверяем работоспособность платы.

Нажимаем кнопку «Загрузить» в программе – среде разработки. Ждём несколько секунд – начинают мигать светодиоды RX и TX на плате. В случае успешной загрузки в строке состояния появится сообщение «Done uploading» (Загрузка выполнена). Несколько секунд спустя после окончания загрузки будет видно как светодиод вывода 13 (L) на плате начнет мигать оранжевым цветом. Это свидетельствует о правильно подключении платы к компьютеру, её работоспособности и правильной установке программного обеспечения.

2.Практические задания Практическое задание №1

«Управление светодиодом»

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

Для этого был задан порт, определены контакты входа и выхода и установлена задержка во включенном и выключенном состоянии светодиода.

1)           3 секунды светодиод горит, 1 секунду выключен

int Led=13; 

//LED подсоединен к выводу 13

void setup () 

//выполняется действие один раз

{ pinMode(Led, OUTPUT); 

// устанавливаем вывод 13, как выход

}

void loop () 

//повторение команды

{

digitalWrite(Led, HIGH); 

// включаем LED

delay(3000); 

// пауза 3 секунда

digitalWrite(Led, LOW);

// выключаем LED

delay(1000);

// пауза 1 секунда

}

2)           0,2 секунды светодиод горит, 0,2 секунду выключен

int Led=13;

void setup ()

{ pinMode(Led, OUTPUT);

}

void loop ()

{

digitalWrite(Led, HIGH);

delay(200);

digitalWrite(Led,LOW);

delay(200);

}

3)            1 секунду светодиод горит, 0,3 секунды выключен

int Led=13;

void setup ()

{ pinMode(Led, OUTPUT);

}

void loop ()

{

digitalWrite(Led, HIGH);

delay(1000);

digitalWrite(Led,LOW);

delay(300);

}

4)           0,5 секунды светодиод горит, 2,5 секунды выключен

int Led=13;

void setup ()

{ pinMode(Led, OUTPUT);

}

void loop ()

{

digitalWrite(Led, HIGH);

delay(500);

digitalWrite(Led,LOW);

delay(2500);

}

После подключения Arduino к компьютеру, была загружена программа в контроллер и получено мигание светодиода с учетом заданных параметров в программе, которая указывает светодиоду время во включенном и выключенном состоянии и повторяет мигание благодаря функции void loop ().

Практическая работа №2

«Простое шифрование сигнала. Азбука Морзе»

1)           В этой работе необходимо было составить программу для Arduino, выполняя которую контроллер миганием светодиода передаст информацию о слове из шести букв, с использованием азбуки Морзе за слово из шести букв было принято слово «МОЛОКО». Для этого был задан порт, определены контакты входа и выхода, слово было зашифровано миганием светодиода, за единицу времени принимается длительность одной точки. Длительность тире равна трём точкам. Пауза между элементами одного знака - одна точка, между знаками в слове - три точки.

 

int Led=13;

void setup ()

{ pinMode(Led, OUTPUT);

}

void loop ()

{

 digitalWrite(Led,LOW);

 delay(5000);

 //M

 digitalWrite(Led, HIGH);

 delay(3000);

 digitalWrite(Led,LOW);

 delay(1000);

 digitalWrite(Led,HIGH);

 delay(3000);

 //пауза между буквами

 digitalWrite(Led,LOW);

 delay(3000);

 //O

 digitalWrite(Led,HIGH);

 delay(3000);

 digitalWrite(Led,LOW);

 delay(1000);

 digitalWrite(Led,HIGH);

 delay(3000);

 digitalWrite(Led,LOW);

 delay(1000);

 digitalWrite(Led,HIGH);

 delay(3000);

 //пауза между буквами

 digitalWrite(Led,LOW);

 delay(3000);

 //Л

 digitalWrite(Led,HIGH);

 delay(1000);

 digitalWrite(Led,LOW);

 delay(1000);

 digitalWrite(Led,HIGH);

 delay(3000);

 digitalWrite(Led,LOW);

 delay(1000);

 digitalWrite(Led,HIGH);

 delay(1000);

 digitalWrite(Led,LOW);

 delay(1000);

 digitalWrite(Led,HIGH);

 delay(1000);

 //пауза

 digitalWrite(Led,LOW);

 delay(3000);

 //О

 digitalWrite(Led,HIGH);

 delay(3000);

 digitalWrite(Led,LOW);

 delay(1000);

 digitalWrite(Led,HIGH);

 delay(3000);

 digitalWrite(Led,LOW);

 delay(1000);

 digitalWrite(Led,HIGH);

 delay(3000);

 //пауза

 digitalWrite(Led,LOW);

 delay(3000);

 //К

 digitalWrite(Led,HIGH);

 delay(3000);

 digitalWrite(Led,LOW);

 delay(1000);

 digitalWrite(Led,HIGH);

 delay(1000);

 digitalWrite(Led,LOW);

 delay(1000);

 digitalWrite(Led,HIGH);

 delay(3000);

 //пауза

 digitalWrite(Led,LOW);

 delay(3000);

 //О

 digitalWrite(Led,HIGH);

 delay(3000);

 digitalWrite(Led,LOW);

 delay(1000);

 digitalWrite(Led,HIGH);

 delay(3000);

 digitalWrite(Led,LOW);

 delay(1000);

 digitalWrite(Led,HIGH);

 delay(3000);

 //пауза

 digitalWrite(Led,LOW);

 delay(3000);

 }

2) Составить программу для Arduino, выполняя которую контроллер миганием светодиода передаст информацию о пароле из пяти символов, с использованием азбуки Морзе. Одна «точка» равна 0,5 секунды. Паролем являлось «СЫР:7».

int Led=13;

void setup ()

{ pinMode(Led, OUTPUT);

}

void loop ()

{

digitalWrite(Led,LOW);

delay(5000);

//C

digitalWrite(Led, HIGH);

delay(500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led,HIGH);

delay(500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led,HIGH);

delay(500);

//пауза

digitalWrite(Led,LOW);

delay(1500);

//Ы

digitalWrite(Led,HIGH);

delay(1500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led,HIGH);

delay(500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led,HIGH);

delay(1500);

digitalWrite(Led,LOW);

delay(1500);

digitalWrite(Led,HIGH);

delay(500);

digitalWrite(Led,HIGH);

delay(1500);

//пауза

digitalWrite(Led,LOW);

delay(1500);

//Р

digitalWrite(Led, HIGH);

delay(500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led,HIGH);

delay(1500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led, HIGH);

delay(500);

//пауза

digitalWrite(Led,LOW);

delay(1500);

//:

digitalWrite(Led,HIGH);

delay(1500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led,HIGH);

delay(1500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led,HIGH);

delay(1500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led, HIGH);

delay(500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led, HIGH);

delay(500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led, HIGH);

delay(500);

//пауза

digitalWrite(Led,LOW);

delay(1500);

//7

digitalWrite(Led,HIGH);

delay(1500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led,HIGH);

delay(1500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led, HIGH);

delay(500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led, HIGH);

delay(500);

digitalWrite(Led,LOW);

delay(500);

digitalWrite(Led, HIGH);

delay(500);

После подключения Arduino к компьютеру, была загружена программа в контроллер и получено мигание светодиода, которое несло в себе зашифрованное слово и пароль. Путем анализа мигания светодиода, были выявлены точки и тире, указывающие на букву либо паузу между буквами, и расшифровано слово и пароль. Таким образом, с помощью Arduino и светодиода можно передавать слова, зашифрованные в азбуке Морзе.

Практическая работа №3

«Управление яркостью светодиодов»

1) В этой работе нужно было составить программу включения/выключения светодиодов согласно заданию. Римской цифрой обозначена степень яркости свечения светодиода: I - 30% яркости, II – 60% яркости,  III – 100% яркости, пустая ячейка – светодиод выключен.

Время, мс.

Желтый

Красный

Синий

Pin 11

Pin 10

Pin 9

3000

500

вкл

500

вкл

вкл

500

вкл

вкл

вкл

2000

500

вкл

500

вкл

500

вкл

500

вкл

500

вкл

500

вкл

2000

500

вкл I

500

вкл I

вкл I

500

вкл I

вкл I

вкл I

500

вкл I I

вкл I

вкл I

500

вкл I I

вкл I I

вкл I

500

вкл I I

вкл I I

вкл I I

500

вкл I I I

вкл I I

вкл I I

500

вкл I I I

вкл I I I

вкл I I

500

вкл I I I

вкл I I I

вкл I I I

2000

вкл I I I

вкл I I I

вкл I I I

Для этого была собрана схема (Рисунок 1), в которой были подключены 3 светодиода, заданы номера портов и цвета соответствующих светодиодов.

Рисунок 1

int Yellow=11;

int Red=10;

int Blue=9; 

void setup () 

{ pinMode(Yellow, OUTPUT);

pinMode(Red, OUTPUT);

pinMode(Blue, OUTPUT);

}

void loop () 

{

delay(3000);

//пауза 3 секунды

analogWrite(Yellow,255);

//включение на всю яркость (100%) желтого светодиода

delay(500);

analogWrite(Red,255);

// включение на всю яркость (100%) красного светодиода

delay(500);

analogWrite(Blue,255);

включение на всю яркость (100%) синего светодиода

delay(500);

analogWrite(Yellow,0);

analogWrite(Red,0);

analogWrite(Blue,0);

//выключение всех светодиодов

delay(2000);

analogWrite(Blue,255);

delay(500);

analogWrite(Blue,0);

analogWrite(Red,255);

delay(500);

analogWrite(Red,0);

analogWrite(Yellow,255);

delay(500);

analogWrite(Yellow,0);

analogWrite(Blue,255);

delay(500);

analogWrite(Blue,0);

analogWrite(Red,255);

delay(500);

analogWrite(Red,0);

analogWrite(Yellow,255);

delay(500);

analogWrite(Yellow,0);

delay(2000);

analogWrite(Yellow,75);

delay(500);

analogWrite(Red,75);

delay(500);

analogWrite(Blue,75);

delay(500);

analogWrite(Yellow,150);

delay(500);

analogWrite(Red,75);

delay(500);

analogWrite(Blue,75);

delay(500);

analogWrite(Red,150);

delay(500);

analogWrite(Blue,75);

delay(500);

analogWrite(Blue,150);

delay(500);

analogWrite(Yellow,255);

delay(500);

analogWrite(Red,255);

delay(500);

analogWrite(Blue,255);

delay(500);

analogWrite(Yellow,255);

delay(2000);

analogWrite(Red,255);

delay(2000);

analogWrite(Blue,255);

delay(2000);

analogWrite(Yellow,0);

analogWrite(Red,0);

analogWrite(Blue,0);

}

2)           В этой работе нужно было составить программу включения/выключения светодиодов.

Время, мс.

Желтый

Красный

Синий

Pin 6

Pin 7

Pin 8

3000

500

вкл

500

вкл

вкл

1500

500

вкл

вкл

500

вкл

вкл

500

вкл II

500

вкл II

вкл II

500

вкл II

500

вкл I

вкл I

500

вкл I

1500

500

вкл I

вкл I

500

вкл I

вкл I

500

вкл III

вкл III

вкл III

500

вкл III

вкл III

500

вкл III

500

вкл III

500

вкл III

вкл III

500

вкл III

вкл III

вкл III

int Yellow=6;

int Red=7;

int Blue=8; 

void setup () 

{ pinMode(Yellow, OUTPUT);

pinMode(Red, OUTPUT);

pinMode(Blue, OUTPUT);

}

void loop () 

{

delay(3000);

analogWrite(Yellow,255);

delay(500);

analogWrite(Red,255);

delay(500);

analogWrite(Blue,255);

delay(500);

analogWrite(Yellow,0);

analogWrite(Red,0);

analogWrite(Blue,0);

delay(1500);

analogWrite(Yellow,255);

delay(500);

analogWrite(Red,255);

delay(500);

analogWrite(Red,0);

analogWrite(Blue,255);

delay(500);

analogWrite(Yellow,0);

analogWrite(Red,150);

delay(500);

analogWrite(Blue,0);

analogWrite(Yellow,150);

delay(500);

analogWrite(Red,150);

delay(500);

analogWrite(Blue,150);

delay(500);

analogWrite(Blue,0);

analogWrite(Yellow,75);

delay(500);

analogWrite(Red,0);

analogWrite(Blue,75);

delay(500);

analogWrite(Red,75);

delay(500);

analogWrite(Yellow,0);

analogWrite(Red,0);

analogWrite(Blue,0);

delay(1500);

analogWrite(Red,75);

delay(500);

analogWrite(Blue,75);

delay(500);

analogWrite(Red,0);

analogWrite(Yellow,75);

delay(500);

analogWrite(Yellow,255);

delay(500);

analogWrite(Red,255);

delay(500);

analogWrite(Blue,255);

delay(500);

analogWrite(Blue,0);

analogWrite(Red,0);

analogWrite(Yellow,0);

analogWrite(Blue,255);

delay(500);

analogWrite(Red,255);

delay(500);

analogWrite(Yellow,255);

delay(500);

analogWrite(Yellow,0);

analogWrite(Red,0);

analogWrite(Blue,0);

}

После подключения Arduino к компьютеру, была загружена программа в контроллер и получено мигание светодиодов. При помощи команды analogWrite была задана интенсивность яркости светодиода. analogWrite(Led,255) задает самую большую яркость светодиода (100%), analogWrite(Led,150) задает более тусклое свечение (60%), а analogWrite(Led,75)  задает тусклое свечение светодиода. Таким образом,  при помощи этой команды можно запрограммировать светодиод мигать не только с различной скоростью, но и с разной яркостью, а так же отключать их при помощи analogWrite(Led,0).

Практическая работа №4

«Измерение освещенности с помощью фоторезистора»

1)           В данной работе необходимо было провести измерения в трех точках аудитории с разной освещенностью (Например: рабочее место, угол, окно). Для этого была собрана схема (Рисунок 2), программа загружена в плату и при помощи монитора порта сняты показания освещенности. Было проведено 2 эксперимента с разными резисторами.

Рисунок 2

void setup() {

pinMode(A0, INPUT); //ввод значения в А0

Serial.begin(9600); // связь с последующим портом

}

void loop() {

int t = analogRead(A0); //чтение значение с A0

Serial.println(t); //запись значения в последующий порт

delay(1000);

}

Таблица 1 – Результаты измерений

Местоположение

Эксперимент 1

Эксперимент 2

Сопротивление резистора, Ом

Значение на контакте Arduino

Сопротивление резистора, Ом

Значение на контакте Arduino

Рабочее место

10кОм

326

500Ом

171

Коридор

56

17

Окно

682

451

После загрузки программы в контроллер, был открыт монитор порта и измерена освещенность в разных точках аудитории с разной степенью освещенности. Измерения были произведены 2 раза с разными сопротивлениями резистора. Из полученных данных (Таблица 1) можно сделать вывод, что чем меньше сопротивление резистора, тем меньше показатели освещенности на Ардуино. Так при помощи контроллера и фоторезистора можно измерить степень освещенности и вывести значения в монитор порта.

«Детектор освещенности»

2)           В данном задании необходимо было подключить к Arduino светодиод, составить программу изменения яркости светодиода, в зависимости от освещенности помещения. Для этого была собрана схема (Рисунок 3), разработана программа, при помощи которой один светодиод с помощью степени яркости будет указывать на освещенность в помещении.

Рисунок 3

void setup() {

int=10;

pinMode(A0, INPUT);

Serial.begin(9600); // связь с послед. портом  

}

void loop() {

int t = analogRead(A0); //чтение значение с A0

analogWrite(10,1024/(t/4)); //интенсивность лампочки от освещенности

Serial.println(t); //запись значения в послед. порт

delay(300);

}

Таким образом, светодиод реагирует на степень освещенности в помещении и меняет яркость. Если в помещении темно, то светодиод горит тусклым светом, если в помещение становится светлее, то увеличивается яркость.

3)           В данном задании необходимо было подключить к Arduino три светодиода, составить программу включения, в зависимости от освещенности помещения. Для этого была собрана схема (Рисунок 4), разработана программа, при помощи которой три светодиода будут реагировать на освещенность в помещении.

Рисунок 4

void setup() {

int Red=9;

int Yellow=10;

int Blue=11;

pinMode(A0, INPUT);

Serial.begin(9600); // связь с послед. портом 

}

void loop() {

int t = analogRead(A0); //чтение значение с A0

if (t>900) {

analogWrite(Red,255);//Включили 1 лампочку

analogWrite(Yellow,255);

analogWrite(Blue,255);

}

else if (t<550) {

analogWrite(Yellow,255);

analogWrite(Red,0);

analogWrite(Blue,0);

}

else {

analogWrite(11,255);

analogWrite(9,255);

analogWrite(10,0);

}

Serial.println(t); //запись значения в послед. порт

delay(300);

}

Таким образом, при хорошей освещенности загорались все 3 светодиода, при слабой освещенности - два светодиода (красный и желтый), а при плохой освещенности - один (красный).

Список используемых источников

1.     Видеоуроки по Arduino от Джереми Блум. [Электронный ресурс].-Режим доступа: http://amperka.ru/ ( дата обращения: 23.04.15)

2.     Все об Arduino Uno. [Электронный ресурс].- Режим доступа: http://arduino.ua/ru/hardware/Uno ( дата обращения: 28.04.15 )

3.     Margolis M. – Arduino Cookbook – 2011 – 662 с.

4.     Boxall J. – Arduino Workshop – 2013 – 392 с.

5.     Arduino Cookbook M. Margolis — O"Reilly Media (2011) — 311 с.

Информация о файле
Название файла Проведение измерений на платформе ARDUINO от пользователя Гость
Дата добавления 10.5.2020, 19:45
Дата обновления 10.5.2020, 19:45
Тип файла Тип файла (zip - application/zip)
Скриншот Не доступно
Статистика
Размер файла 385.05 килобайт (Примерное время скачивания)
Просмотров 386
Скачиваний 143
Оценить файл