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

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

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

Текст:

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

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

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

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

(СибАДИ)»

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

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

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

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

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

2 курса      

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

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

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

  Байда А.С.

Оценка

________________________

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

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

Омск 2016г.

Содержание

Введение. 3

1.   Arduino. 4

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

2.   Практические работы.. 6

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

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

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

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

2.5.  Практическая работа №5. 26

Заключение. 33

Введение

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.  Практические работы 2.1      Практическая работа №2

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

В этой работе необходимо было запрограммировать 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.2      Практическая работа №2

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

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

 

Рисунок 1 – Азбука Морзе

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 и светодиода можно передавать слова, зашифрованные в азбуке Морзе.

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

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

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

Таблица 1 – Значения яркости светодиода

Время, мс.

Желтый

Красный

Синий

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

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

Рисунок 2 – Схема подключения трех светодиодов

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)  В данной работе необходимо было составить программу включения/выключения светодиодов.

Таблица 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).

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

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

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

Рисунок 3 – Схема подключения фоторезистора

void setup() {

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

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

}

void loop() {

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

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

delay(1000);

}

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

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

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

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

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

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

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

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

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

10кОм

326

500Ом

171

Коридор

56

17

Окно

682

451

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

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

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

Рисунок 4 – Схема подключения фоторезистора и светодиода

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 три светодиода, составить программу включения, в зависимости от освещенности помещения. Для этого была собрана схема (Рисунок 5), разработана программа, при помощи которой три светодиода будут реагировать на освещенность в помещении.

Рисунок 5 – Схема подключения фоторезистора и трех светодиодов

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 светодиода, при слабой освещенности - два светодиода (красный и желтый), а при плохой освещенности - один (красный).

2.5.    Практическая работа №5

«Пьезокерамический излучатель»

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

a)  Первая мелодия – веселая

int speakerPin = 3;

void setup()  {

pinMode(speakerPin, INPUT);

tone(speakerPin, 400);

delay (1000);

tone(speakerPin, 300);

tone(speakerPin, 500);

delay (1000);

tone(speakerPin, 350);

tone(speakerPin, 600);

delay (1000);

tone(speakerPin, 400);

tone(speakerPin, 800);

delay (1000);

tone(speakerPin, 500);

noTone(speakerPin);

}

void loop()  {

}

b)  Вторя мелодия – грустная

int speakerPin = 3;

void setup()  {

pinMode(speakerPin, INPUT);

tone(speakerPin, 100);

delay (1000);

tone(speakerPin, 200);

tone(speakerPin, 250);

delay (1000);

tone(speakerPin, 100);

tone(speakerPin, 250);

delay (1000);

tone(speakerPin, 100);

tone(speakerPin, 150);

delay (1000);

tone(speakerPin, 100);

noTone(speakerPin);

}

void loop()  {

}

Рисунок 6 – Схема подключения пьезокерамического излучателя

Таким образом, при помощи команды tone(speakerPin,…) была задана тональность звука. При изменении значения в команде, изменялась мелодия, и были получены веселая и грустная мелодии. Команда noTone(speakerPin) выключает мелодию.

2)  «Терменвокс»

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

a)  Мелодия первая

int speakerPin = 3; // пьезокерамический излучатель подключен к 3 пину

int photocellPin = 0; // сенсор и понижающий резистор подключены к a0

void setup()  {

}

void loop()  {

int reading = analogRead(photocellPin); // аналоговые значения с сенсора

int pitch = 200 + reading / 4;

tone(speakerPin, pitch);

}

b)  Мелодия вторая

int speakerPin = 3;

int photocellPin = 0;

void setup()  {

}

void loop()  {

int reading = analogRead(photocellPin);

int pitch = 800 + reading / 4;

tone(speakerPin, pitch);

}

c)   Мелодия третья

int speakerPin = 3;

int photocellPin = 0;

void setup()  {

}

void loop()  {

int reading = analogRead(photocellPin);

int pitch = 1200 + reading / 6;

tone(speakerPin, pitch)

}

Рисунок 7 – Схема подключения фоторезистора и пьезокерамического излучателя

При помощи команды int reading = analogRead(photocellPin); контроллер считывал информацию об освещенности,  а изменение числовых значений в команде int pitch = 200 + reading / 4 позволило изменять тональность звука.

3)  «Прибор оценки освещенности»

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

void setup() 

int red =11; 
int grean =9; 
pinMode(speakerPin, INPUT); 
pinMode(A0,INPUT); 
Serial.begin(9600); // связь с послед. портом 

void loop() 


int x = analogRead(A0); //чтение значение с A0 
Serial.println(x); 
if (x>600){ 
analogWrite (9,255);  //включение зеленого светодиода
analogWrite (11,0);  //отключение красного светодиода
if (A!=1){ 
tone(speakerPin, 300); 
delay (1000); 
A=1; 
noTone(3); 

else 



else { 
analogWrite (9,0); 
analogWrite (11,255); 
if(A!=2){ 
tone(speakerPin, 500); 
delay (1000); 
A=2; 
noTone(3); 


}

Рисунок 7 – Схема подключения фоторезистора, двух светодиодов и пьезокерамического излучателя

Таким образом, микроконтроллер включает зеленый или красный светодиод в зависимости от освещения и проигрывает короткую мелодию. Логические команды if и else задают, какой светодиод загорится и какая мелодия заиграет, после считывания значений освещенности.

Заключение

С помощью Arduino компьютер может выйти за рамки виртуального мира в физический, благодаря множеству датчиков, которые можно подключить к плате. Датчики могут получать информацию об окружающей среде, а также управлять различными исполнительными устройствами. В данной работе были рассмотрены такие исполнительные устройства как светодиоды, фоторезистор,  пьезокерамический излучатель.

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

Arduino удобна для разработки электронных устройств как для новичков, так и для профессионалов. Эта платформа пользуется огромной популярностью во всем мире из-за простого языка программирования, открытой архитектуры и программного кода. Особенность данной платформы является то, что она программируется без использования программаторов через USB.

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

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 с.

6.  Голубцов, М.С. Микроконтроллеры AVR от простого к сложному / М.С. Голубцов – М.: Салон-Пресс, 2003. – 288 с.

7.  2. МакРобертс, М. Начала Arduino / М. МакРобертс – London: CUP, 2010. – 459 с.

8.  Соммер, У. Программирование микроконтроллерных плат Arduino / У. Соммер – Philadelphia: SIAM, 2012. – 241 с.

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