Министерство образования и науки РФ
Федеральное государственное бюджетное образовательное учреждение высшего образования
«Сибирская государственная автомобильно-дорожная академия (СибАДИ)»
Кафедра «Управление качеством и производственными системами»
Курсовая работа
по дисциплине «Методы и средства испытания и контроля»
Тема работы: «Проведение измерений на платформе ARDUINO»
Оценка
__________________________
«____» ______________2016 г. |
Руководитель: Байда А.С
Студентка: Васильева Ю.В
Группа: УКб-14Э1
Дата сдачи работы: «____» ______________2016 г. |
Омск 2016
СОДЕРЖАНИЕ
ВВЕДЕНИЕ………………………………………………………………………..…3
1 ОБЩИЕ СВЕДЕНИЯ О ПЛАТФОРМЕ «ARDUINO» …………………….........4
1.1 Платформа Arduino........................................................................................4
1.2 В чем преимущество Arduino…………………………………………......5
1.3 История создания Arduino…………………………………………….....6
2 ПРОВЕДЕНИЕ ИЗМЕРЕНИЙ НА ПЛАТФОРМЕ ARDUINO………………….9
2.1 Управление светодиодом……………………………………………...…...9
2.2 Простое шифрование сигнала. Азбука Морзе……………………….....11
2.3 Управление яркостью светодиодов……………………………...…….19
2.4 Измерение освещенности с помощью фоторезистора…………...….29
2.5 Пьезокерамический излучатель……………………………………..32
ЗАКЛЮЧЕНИЕ……………………………………………………………………..39
ИНФОРМАЦИОННЫЕ ИСТОЧНИКИ …………………………………………..41
ВВЕДЕНИЕ
С помощью Arduino можно реализовать практически любой замысел. Это может быть автоматическая система управления поливом, или веб-сервер, или даже автопилот для мультикоптера. Итак, Arduino — это платформа для разработки устройств на базе микроконтроллера, на простом и понятном языке программирования в интегрированной среде Arduino . Добавив датчики, приводы, динамики, добавочные модули и дополнительные микросхемы, мы сможем использовать Arduino в качестве "мозга" для любой системы управления. Трудно даже перечислить все, на что способна платформа Arduino, потому что возможности ограничены только нашим воображением. Эта курсовая работа послужит руководством, знакомящим нас с функциональностью Arduino путем выполнения большого количества лабораторных работ, которые дадут навыки.
Данная курсовая работа состоит из введения, двух глав, заключения, списка литературы. В первой главе содержатся общие сведения о платформе «arduino». Во второй главе описываются практические применения «arduino».
Целью данной курсовой работы является приобретение практических навыков в области программирования микроконтроллеров.
Для достижения поставленной цели необходимо обеспечить реализацию следующих задач:
- Приобретение навыков работы с платформой ARDUINO;
- Изучение средств программирования платформы ARDUINO;
- Написание программ для успешного программирования ARDUINO.
Теоретическую основу курсовой работы составила отечественная и иностранная литература, которая посвящена непосредственно ARDUINO. Авторами являются выдающиеся программисты Виктор Петина и Джереми Блум.
1 ОБЩИЕ СВЕДЕНИЯ О ПЛАТФОРМЕ «ARDUINO»
- Платформа Arduino
Появление первых микроконтроллеров ознаменовало начало новой эры в развитии микропроцессорной техники. Наличие в одном корпусе большинства системных устройств сделало микроконтроллер подобным обычному компьютеру. В отечественной литературе они даже назывались однокристальными микро ЭВМ. Соответственно и желание использовать микроконтроллеры как обычные компьютеры появилось практически с их появлением. Но желание это сдерживалось многими факторами. Например, чтобы собрать устройство на микроконтроллере, необходимо знать основы схемотехники, устройство и работу конкретного процессора, уметь программировать на ассемблере и изготавливать электронную технику. Потребуются также программаторы, отладчики и другие вспомогательные устройства. В итоге без огромного объема знаний и дорогостоящего оборудования не обойтись. Такая ситуация долго не позволяла многим любителям использовать микроконтроллеры в своих проектах. Сейчас, с появлением устройств, дающих возможность работать с микроконтроллерами без наличия серьезной материальной базы и знания многих предметов, все изменилось. Примером такого устройства может служить проект Arduino итальянских разработчиков.
Arduino и его клоны представляют собой наборы, состоящие из готового электронного блока и программного обеспечения. Электронный блок здесь — это печатная плата с установленным микроконтроллером и минимумом элементов, необходимых для его работы. Фактически электронный блок Arduino является аналогом материнской платы современного компьютера. На нем имеются разъемы для подключения внешних устройств, а также разъем для связи с компьютером, по которому и осуществляется программирование микроконтроллера. Особенности используемых микроконтроллеров ATmega фирмы Atmel позволяют производить программирование без применения специальных программаторов. Все, что нужно для создания нового электронного устройства, — это плата Arduino, кабель связи и компьютер.
Второй частью проекта Arduino является программное обеспечение для создания управляющих программ. Оно объединило в себе простейшую среду разработки и язык программирования, представляющий собой вариант языка С/С++ для микрконтроллеров. В него добавлены элементы, позволяющие создавать программы без изучения аппаратной части. Так что для работы с Arduino практически достаточно знания только основ программирования на С/С++. Создано для Arduino и множество библиотек, содержащих код, работающий с различными устройствами.
- В чем преимущество Arduino
Пользователь современного компьютера не задумывается о функционировании отдельных частей ПК. Он просто запускает нужные программы и работает с ними.
Точно так же и Arduino позволяет пользователю сосредоточиться на разработке проектов, а не на изучении устройства и принципов функционирования отдельных элементов. Нет надобности и в создании законченных плат и модулей. Разработчик может использовать готовые платы расширения или просто напрямую подключить к Arduino необходимые элементы. Все остальные усилия будут направлены на разработку и отладку управляющей программы на языке высокого уровня. В итоге доступ к разработке микропроцессорных устройств получили не только профессионалы, но и просто любители что-то сделать своими руками.
Наличие готовых модулей и библиотек программ позволяет непрофессионалам в электронике создавать готовые работающие устройства для решения своих задач. А варианты использования Arduino ограничены только возможностями микроконтроллера и имеющегося варианта платы, ну и, конечно, фантазией разработчика.
- История создания Arduino
В 2002 году программист Массимо Банци (Massimo Banzi) был принят на работу в должности доцента в Институт проектирования взаимодействий города Ивреа (Interaction Design Institute Ivrea, IDII) для продвижения новых способов разработки интерактивных проектов. Однако крошечный бюджет и ограниченное время доступа к лабораторной базе сводили его усилия практически на нет. В проектах Банци использовал устройство BASIC Stamp, разработанное калифорнийской компанией Parallax. Stamp представлял собой небольшую печатную плату с размещенными на ней источником питания, микроконтроллером, памятью и портами ввода/вывода для соединения с различной аппаратурой. Программирование микроконтроллера осуществлялось на языке BASIC. BASIC Stamp имел две проблемы: недостаток вычислительной мощности и достаточно высокую цену — плата с основными компонентами стоила около 100 долларов. И команда Банци решила самостоятельно создать плату, которая удовлетворяла бы всем их потребностям. Банци и его сотрудники поставили себе целью создать устройство, представляющее собой простую, открытую и легкодоступную платформу для разработки, с ценой —не более 30 долларов — приемлемой для студенческого кармана. Хотели они и выделить чем-то свое устройство на фоне прочих. Поэтому в противовес другим производителям, экономящим на количестве выводов печатной платы, они решили добавить их как можно больше, а также сделали свою плату синей, в отличие от обычных зеленых плат.
Продукт, который создала команда, состоял из дешевых и доступных компонентов — например, базировался он на микроконтроллере ATmega328. Но главная задача состояла в том, чтобы гарантировать работу устройства по принципу plug-andplay,— чтобы пользователь, достав плату из коробки и подключив к компьютеру, мог немедленно приступить к работе. Первый прототип платы был сделан в 2005 году, она имела простейший дизайн и еще не называлась Arduino. Чуть позже Массимо Банци придумал назвать ее так — по имени принадлежащего ему бара, расположенного в городе Ивреа. Бренд "Arduino" без какой-либо рекламы и привлечения средств маркетинга быстро приобрел высокую популярность в Интернете. С начала распространения продано более 250 тыс. комплектов Arduino, и это не учитывая множества клонов. В мире насчитывается более двухсот дистрибьюторов продукции Arduino — от крупных фирм, таких как SparkFun Electronics, до мелких компаний, работающих на местный рынок. На сегодня платформа Arduino представлена не одной платой, а целым их семейством. В дополнение к оригинальному проекту, называемому Arduino Uno, новые модели, имеющие на плате более мощные средства, носят название Arduino Mega, компактные модели — Arduino Nano, платы в водонепроницаемом корпусе — LilyPad Arduino, а новая плата с 32-разрядным процессором Cortex-M3 ARM — Arduino Due.
Своим успехом проект Arduino обязан существовавшим до него языку Processing и платформе Wiring. От этих проектов Arduino унаследовал одну сильную черту —удобную для пользователя среду разработки. До появления Arduino программирование микроконтроллеров требовало сложного и рутинного предварительного обучения. А с Arduino даже те, кто не имеет опыта работы с электронными устройствами, теперь могут приобщиться к миру электроники. Начинающим уже не приходится тратить много времени на изучение сопутствующего материала — они могут
быстро разработать прототип, который будет полноценно рабочим.
По словам Массимо Банци, пятьдесят лет назад, чтобы написать программное обеспечение требовалась команда людей в белых халатах, которые знали все об электронных лампах. Теперь же, с появлением Arduino, множество людей получили возможность создавать электронные устройства самостоятельно. Как утверждает один из членов команды Банци, инженер по телекоммуникациям Дэвид Куартилльз, философия Arduino как раз и состоит в том, что желающий разобраться в электронике может сразу же приступить к ее изучению, вместо того чтобы сначала учиться алгебре.
2 ВЫПОЛНЕНИЕ ПРАКТИЧЕСКИХ РАБОТ
2.1 Управление светодиодом
Цель работы: написать программу для платформы Arduino, способную выполнять мигание встроенным светодиодом с различным интервалом времени.
Рисунок 1- Плата Arduino
Программирование платформы Arduino на мигание встроенным светодиодом
// Мигание встроенным светодиодом с интервалом в 3 секунды.
int LedPin=13;
void setup()
{
pinMode (LedPin,OUTPUT);
}
void loop()
{
digitalWrite(LedPin, HIGH);
delay(1000);
digitalWrite(LedPin, LOW);
delay(3000);
}
// Мигание встроенным светодиодом с интервалом в 1 секунду
int LedPin=13;
void setup()
{
pinMode (LedPin,OUTPUT);
}
void loop()
{
digitalWrite(LedPin, HIGH);
delay(300);
digitalWrite(LedPin, LOW);
delay(1000);
}
// Мигание встроенным светодиодом с интервалом в 200 миллисекунд
int LedPin=13;
void setup()
{
pinMode (LedPin,OUTPUT);
}
void loop()
{
digitalWrite(LedPin, HIGH);
delay(700);
digitalWrite(LedPin, LOW);
delay(200);
}
// Мигание встроенным светодиодом с интервалом в 100 миллисекунд
int LedPin=13;
void setup()
{
pinMode (LedPin,OUTPUT);
}
void loop()
{
digitalWrite(LedPin, HIGH);
delay(1500);
digitalWrite(LedPin, LOW);
delay(100);
}
ВЫВОД: в данной работе была написана программа для платформы Arduino, которая выполняет мигание встроенным светодиодом с определенно заданным интервалом времени, который подключен к контакту 13. В первом случае светодиод мигает 3 секунды, не мигает 1 секунду, во втором случае 1 секунду мигает, 0.3 секунды не мигает, в третьем случае 0.2 секунды мигает, 0.7 секунды не мигает, в четвертом случае 0.1 секунду мигает, 1.5 секунды не мигает. Это говорит о том, что программа была написана верно, схема подключения так же была собрана верно.
2.2 Простое шифрование сигнала. Азбука Морзе
Цель работы: необходимо составить программу для Arduino, выполняя которую контроллер миганием светодиода передаст информацию о слове из шести букв и коде из пяти знаков, с использованием азбуки Морзе.
Таблица 1 – Азбука Морзе
Программирование платформы Arduino на мигание светодиода, который передает информацию о слове «эконом»
int LedPin=13;
void setup()
{
pinMode (LedPin,OUTPUT);
}
void loop()
{
digitalWrite(LedPin, LOW);
delay(5000);
digitalWrite(LedPin, HIGH);
delay(1000);
digitalWrite(LedPin, LOW);
delay(1000);
digitalWrite(LedPin, HIGH);
delay(1000);
digitalWrite(LedPin, LOW);
delay(1000);
digitalWrite(LedPin, HIGH);
delay(3000);
digitalWrite(LedPin, LOW);
delay(1000);
digitalWrite(LedPin, HIGH);
delay(1000);
digitalWrite(LedPin, LOW);
delay(1000);
digitalWrite(LedPin, HIGH);
delay(1000);
//буква э
digitalWrite(LedPin, LOW);
delay(3000);
digitalWrite(LedPin, HIGH);
delay(3000);
digitalWrite(LedPin, LOW);
delay(1000);
digitalWrite(LedPin, HIGH);
delay(1000);
digitalWrite(LedPin, LOW);
delay(1000);
digitalWrite(LedPin, HIGH);
delay(3000);
//буква к
digitalWrite(LedPin, LOW);
delay(3000);
digitalWrite(LedPin, HIGH);
delay(3000);
digitalWrite(LedPin, LOW);
delay(1000);
digitalWrite(LedPin, HIGH);
delay(3000);
digitalWrite(LedPin, LOW);
delay(1000);
digitalWrite(LedPin, HIGH);
delay(3000);
// буква о
digitalWrite(LedPin, LOW);
delay(3000);
digitalWrite(LedPin, HIGH);
delay(3000);
digitalWrite(LedPin, LOW);
delay(1000);
digitalWrite(LedPin, HIGH);
delay(1000);
//буква н
digitalWrite(LedPin, LOW);
delay(3000);
digitalWrite(LedPin, HIGH);
delay(3000);
digitalWrite(LedPin, LOW);
delay(1000);
digitalWrite(LedPin, HIGH);
delay(3000);
digitalWrite(LedPin, LOW);
delay(1000);
digitalWrite(LedPin, HIGH);
delay(3000);
// о
digitalWrite(LedPin, LOW);
delay(3000);
digitalWrite(LedPin, HIGH);
delay(3000);
digitalWrite(LedPin, LOW);
delay(1000);
digitalWrite(LedPin, HIGH);
delay(3000);
}
Программирование платформы Arduino на мигание светодиода, который передает информацию о коде «:!4е-»
int LedPin=13;
void setup()
{
pinMode (LedPin,OUTPUT);
}
void loop()
{
digitalWrite(LedPin, LOW);
delay(5000);
digitalWrite(LedPin, HIGH);
delay(1500);
digitalWrite(LedPin, LOW);
delay(500);
digitalWrite(LedPin, HIGH);
delay(1500);
digitalWrite(LedPin, LOW);
delay(500);
digitalWrite(LedPin, HIGH);
delay(1500);
digitalWrite(LedPin, LOW);
delay(500);
digitalWrite(LedPin, HIGH);
delay(500);
digitalWrite(LedPin, LOW);
delay(500);
digitalWrite(LedPin, HIGH);
delay(500);
digitalWrite(LedPin, LOW);
delay(500);
digitalWrite(LedPin, HIGH);
delay(500);
//:
digitalWrite(LedPin, LOW);
delay(1500);
digitalWrite(LedPin, HIGH);
delay(1500);
digitalWrite(LedPin, LOW);
delay(500);
digitalWrite(LedPin, HIGH);
delay(1500);
digitalWrite(LedPin, LOW);
delay(500);
digitalWrite(LedPin, HIGH);
delay(500);
digitalWrite(LedPin, LOW);
delay(500);
digitalWrite(LedPin, HIGH);
delay(500);
digitalWrite(LedPin, LOW);
delay(500);
digitalWrite(LedPin, HIGH);
delay(1500);
digitalWrite(LedPin, LOW);
delay(500);
digitalWrite(LedPin, HIGH);
delay(1500);
//воскл !
digitalWrite(LedPin, LOW);
delay(1500);
digitalWrite(LedPin, HIGH);
delay(500);
digitalWrite(LedPin, LOW);
delay(500);
digitalWrite(LedPin, HIGH);
delay(500);
digitalWrite(LedPin, LOW);
delay(500);
digitalWrite(LedPin, HIGH);
delay(500);
digitalWrite(LedPin, LOW);
delay(500);
digitalWrite(LedPin, HIGH);
delay(500);
digitalWrite(LedPin, LOW);
delay(500);
digitalWrite(LedPin, HIGH);
delay(1500);
//4
digitalWrite(LedPin, LOW);
delay(1500);
digitalWrite(LedPin, HIGH);
delay(500);
//e
digitalWrite(LedPin, LOW);
delay(1500);
digitalWrite(LedPin, HIGH);
delay(1500);
digitalWrite(LedPin, LOW);
delay(500);
digitalWrite(LedPin, HIGH);
delay(500);
digitalWrite(LedPin, LOW);
delay(500);
digitalWrite(LedPin, HIGH);
delay(500);
digitalWrite(LedPin, LOW);
delay(500);
digitalWrite(LedPin, HIGH);
delay(500);
digitalWrite(LedPin, LOW);
delay(500);
digitalWrite(LedPin, HIGH);
delay(500);
digitalWrite(LedPin, LOW);
delay(500);
digitalWrite(LedPin, HIGH);
delay(1500);
}
// -
ВЫВОД: в ходе работы была собрана схема и написана программа для платформы Arduino, произведено кодирование слова, которое состояло из 6 букв.
Кодирование каждой буквы было выполнено соответствующими знаками с отделением от другой буквы определенным интервалом времени. Кодирование слова выполняется по следующему правилу: За единицу времени принимается длительность одной точки(1000мс). Длительность тире равна трём точкам(3000мс). Пауза между элементами одного знака - одна точка, между знаками в слове - три точки, между словами - семь точек(7000мс).
2.3 Управление яркостью светодиодов
Цель работы: написать программу для платформы Arduino, с помощью которой будет осуществляться мигание трех светодиодов красными, желтыми и синими цветами с разным интервалом времени.
Рисунок 2 - Схема подключения трех светодиодов
Таблица 2 – Программа включения/выключения светодиодов
Время, мс.
|
Желтый Pin 3 |
Красный Pin 5 |
Синий Pin 6 |
4000 |
|
|
|
500 |
|
вкл |
|
500 |
вкл |
вкл |
|
500 |
вкл |
вкл |
вкл |
2500 |
|
|
|
500 |
вкл |
|
|
500 |
|
вкл |
|
500 |
вкл |
|
|
500 |
|
|
вкл |
500 |
вкл |
|
|
500 |
|
вкл |
|
2500 |
|
|
|
500 |
вкл I |
вкл I |
вкл I |
500 |
вкл I I |
вкл I I |
вкл I I |
500 |
вкл I I I |
вкл I I I |
вкл I I I |
500 |
вкл I |
вкл I I I |
вкл I |
500 |
вкл I I I |
вкл I |
вкл I I I |
500 |
вкл I I |
вкл I I |
вкл I I |
500 |
вкл I |
вкл I |
вкл I |
500 |
вкл I I I |
|
вкл I I I |
2500 |
вкл |
вкл |
вкл |
Программирование платформы Arduino на мигание трех светодиодов красными, желтыми и синими цветами с разным интервалом времени
int krasn = 5;
int sini= 6;
int gold= 3;
void setup()
{
pinMode (krasn,OUTPUT);
pinMode (sini,OUTPUT);
pinMode (gold,OUTPUT);
}
void loop()
{
delay(4000);
analogWrite( 5, 255);
delay(500);
analogWrite( 3, 255);
delay(500);
analogWrite( 6, 255);
delay(500);
analogWrite( 5, 0);
analogWrite( 3, 0);
analogWrite( 6, 0);
delay(2500);
analogWrite( 3, 255);
delay(500);
analogWrite( 3, 0);
delay(500);
analogWrite( 5, 255);
delay(500);
analogWrite( 5, 0);
delay(500);
analogWrite( 3, 255);
delay(500);
analogWrite( 3, 0);
delay(500);
analogWrite( 6, 255);
delay(500);
analogWrite( 6, 0);
delay(500);
analogWrite( 5, 255);
delay(500);
analogWrite( 3, 0);
analogWrite( 5, 0);
analogWrite( 6, 0);
delay(2500);
analogWrite( 3,50);
analogWrite( 5,50);
analogWrite( 6,50);
delay(500);
analogWrite( 3,130);
analogWrite( 5,130);
analogWrite( 6,130);
delay(500);
analogWrite( 3,255);
analogWrite( 5,255);
analogWrite( 6,255);
delay(500);
analogWrite( 3,50);
analogWrite( 5,255);
analogWrite( 6,50);
delay(500);
analogWrite( 3,255);
analogWrite( 5,50);
analogWrite( 6,255);
delay(500);
analogWrite( 3,130);
analogWrite( 5,130);
analogWrite( 6,130);
delay(500);
analogWrite( 3,50);
analogWrite( 5,50);
analogWrite( 6,50);
delay(500);
analogWrite( 3,255);
analogWrite( 5,0);
analogWrite( 6,255);
delay(500);
analogWrite( 3,0);
analogWrite( 5,0);
analogWrite( 6,0);
delay(500);
analogWrite( 3,255);
analogWrite( 5,255);
analogWrite( 6,255);
delay(2500);
}
Таблица 3 – Программа включения/выключения светодиодов
Время, мс.
|
Желтый Pin 3 |
Красный Pin 5 |
Синий Pin 6 |
4000 |
|
|
|
500 |
вкл |
|
|
500 |
|
вкл |
|
500 |
|
|
вкл |
2500 |
вкл |
вкл |
вкл |
500 |
|
|
вкл |
500 |
|
вкл |
|
500 |
вкл |
|
|
500 |
|
|
|
500 |
вкл |
|
|
500 |
вкл |
вкл |
|
2500 |
вкл |
вкл |
вкл |
500 |
вкл I |
вкл I |
вкл I |
500 |
вкл I I |
вкл I I |
вкл I I |
500 |
вкл I I I |
вкл I I I |
вкл I I I |
500 |
вкл I |
вкл I |
вкл I |
500 |
вкл I I I |
вкл I |
вкл I I I |
500 |
вкл I I |
вкл I I |
вкл I I |
500 |
вкл I |
вкл I |
вкл I |
500 |
вкл I I I |
|
вкл I I I |
500 |
|
|
|
2500 |
вкл |
вкл |
вкл |
Программирование платформы Arduino на мигание трех светодиодов красными, желтыми и синими цветами с разным интервалом времени
int krasn = 5;
int sini= 6;
int gold= 3;
void setup()
{
pinMode (krasn,OUTPUT);
pinMode (sini,OUTPUT);
pinMode (gold,OUTPUT);
}
void loop()
{
delay(4000);
analogWrite( 3, 255);
delay(500);
analogWrite( 3, 0);
delay(500);
analogWrite( 5, 255);
delay(500);
analogWrite( 5, 0);
delay(500);
analogWrite( 6, 255);
delay(500);
analogWrite( 5, 255);
analogWrite( 3, 255);
analogWrite( 6, 255);
delay(500);
analogWrite( 3,0);
analogWrite( 5, 0);
delay(500);
analogWrite( 6, 0);
analogWrite( 5, 255);
delay(500);
analogWrite( 3, 255);
analogWrite( 5, 0);
delay(500);
analogWrite( 3, 0);
delay(500);
analogWrite( 3, 255);
delay(500);
analogWrite( 5, 255);
delay(500);
analogWrite( 6,255);
delay(500);
analogWrite( 3,50);
analogWrite( 5,50);
analogWrite( 6,50);
delay(500);
analogWrite( 3,130);
analogWrite( 5,130);
analogWrite( 6,130);
delay(500);
analogWrite( 3,255);
analogWrite( 5,255);
analogWrite( 6,255);
delay(500);
analogWrite( 3,50);
analogWrite( 5,50);
analogWrite( 6,50);
delay(500);
analogWrite( 3,255);
analogWrite( 5,50);
analogWrite( 6,255);
delay(500);
analogWrite( 3,130);
analogWrite( 5,130);
analogWrite( 6,130);
delay(500);
analogWrite( 3,50);
analogWrite( 5,50);
analogWrite( 6,50);
delay(500);
analogWrite( 3,255);
analogWrite( 5,0);
analogWrite( 6,255);
delay(500);
analogWrite( 3,0);
analogWrite( 5,0);
analogWrite( 6,0);
delay(500);
analogWrite( 3,255);
analogWrite( 5,255);
analogWrite( 6,255);
delay(2500);
}
ВЫВОД: в этом разделе описана программа включения/выключения светодиодов согласно таблицы. Из таблицы видно, какого цвета мигают светодиоды и в каком интервале времени. Каждый светодиод подключен к разъему контроллера через активное сопротивление. Произведено обозначение степеней яркости. Римской цифрой обозначена степень яркости свечения светодиода: I – 30%, II – 6=60%, III –100%.
2.4 Измерение освещенности с помощью фоторезистора
Цель работы: необходимо провести измерения в трех точках аудитории с разной освещенностью. По результатам измерений заполнить таблицу. Подключить к Arduino три светодиода, составить программу включения светодиодов, в зависимости от освещенности помещения.
Рисунок 3 – Схема освещенности с помощью фоторезистора
Программирование платформы Arduino на освещенность с помощью фоторезистора
void setup() {
pinMode(A0, INPUT);
Serial.begin(9600); // связь с послед. портом
}
void loop() {
int t = analogRead(A0); //чтение значение с A0
Serial.println(t); //запись значения в послед. порт
delay(1000);
}
Таблица 4 – Результаты измерений
Местоположение |
Эксперимент 1 |
Эксперимент 2 |
||
Сопротивление резистора, Ом |
Значение на контакте Arduino |
Сопротивление резистора, Ом |
Значение на контакте Arduino |
|
Рабочее место |
15К |
874 |
500 |
173 |
УГОЛ |
710 |
54 |
||
ОКНО |
977 |
368 |
Программирование платформы Arduino на изменения яркости светодиода, в зависимости от освещенности помещения
void setup() {
int t=10;
pinMode(A0,INPUT);
Serial.begin(9600); // связь с послед. портом
}
void loop() {
int t=analogRead(A0) ;
analogWrite(10 ,1024/(t/4));
Serial.println(t); //запись значения в послед. порт
delay(100);
}
Рисунок 4 –Схема на включения трех светодиодов и фотодатчика
Программирование платформы Arduino на включения трех светодиодов, в зависимости от освещенности помещения
void setup() {
int t =9;
int a =10;
int b =11;
pinMode (A0, INPUT); Serial.begin(9600); }
void loop() {
int x = analogRead(A0);
if (x>800){
analogWrite( 9, 255);
analogWrite( 10, 255);
analogWrite( 11, 255);
}
else if (x>680){
analogWrite( 9, 0);
analogWrite( 10, 255);
analogWrite( 11, 255);
}
else {
analogWrite( 9, 0);
analogWrite( 10, 0);
analogWrite( 11, 255);
}
Serial.println(x);
}
ВЫВОД: при выполнении работы была собрана схема, которая представлена на рисунке 3, затем запущенна программа в контроллер, при открытии «монитор порта» были получены значения, которые показывали освещенность в трех точках аудиториях (рабочее место, угол, окно) с разными сопротивлениями резистора. По результатам измерений написана программа на включение трех светодиодов, в зависимости от освещенности помещения. При ярком освещении мигают все три светодиода, при тусклом свете мигает один светодиод, а в темноте светятся два светодиода.
2.5 Пьезокерамический излучатель
Цель работы: необходимо составить две коротких мелодии, написать программу с несколькими вариантами тональностей извлекаемых звуков и выполнить программу для контроллера Arduino, при изменении освещенности прибор должен включать соответствующий светодиод, и проигрывать короткую мелодию. При плохой освещенности соответствует красный светодиод, при хорошей - зеленый светодиод.
Рисунок 5 – Схема пьезокерамического излучателя
Программирование платформы Arduino для грустной мелодии
int speakerPin = 3;
void setup() {
pinMode(speakerPin, INPUT);
tone(speakerPin, 100);
delay (500);
tone(speakerPin, 200);
tone(speakerPin, 200);
delay (500);
tone(speakerPin, 300);
tone(speakerPin, 500);
delay (500);
tone(speakerPin, 400);
tone(speakerPin, 300);
delay (500);
tone(speakerPin, 100);
noTone(speakerPin);
}
void loop() {
}
Программирование платформы Arduino для веселой мелодии
int speakerPin = 3;
void setup() {
pinMode(speakerPin, INPUT);
tone(speakerPin, 1000);
delay (500);
tone(speakerPin, 1200);
tone(speakerPin, 800);
delay (500);
tone(speakerPin, 100);
tone(speakerPin, 1500);
delay (500);
tone(speakerPin, 1400);
tone(speakerPin, 1300);
delay (500);
tone(speakerPin, 500);
noTone(speakerPin);
}
void loop() {
}
Рисунок 6- Схема терменвокс
Программирование платформы Arduino с низкой тональностью извлекаемых звуков
int speakerPin = 3;
int photocellPin = 0;
void setup() {
}
void loop() {
int reading = analogRead(photocellPin);
int pitch = 200 + reading /4;
tone(speakerPin, pitch);
}
Программирование платформы Arduino с средней тональностью извлекаемых звуков
int speakerPin = 3;
int photocellPin = 0;
void setup() {
}
void loop() {
int reading = analogRead(photocellPin);
int pitch = 700 + reading /3;
tone(speakerPin, pitch);
}
Программирование платформы Arduino с высокой тональностью извлекаемых звуков
int speakerPin = 3;
int photocellPin = 0;
void setup() {
}
void loop() {
int reading = analogRead(photocellPin);
int pitch = 1500 + reading /4;
tone(speakerPin, pitch);
}
Рисунок 7 - Схема прибора для оценки освещенности
Программирование платформы Arduino для оценки освещенности
int M=0;
int speakerPin =3;
void setup() {
int red = 11;
int grean =9;
pinMode (A0, INPUT);
pinMode (speakerPin, INPUT);
Serial.begin(9600);
}
void loop()
{
int x = analogRead(A0);
if (x>680){
analogWrite( 9, 255);
analogWrite( 11, 0);
if (M!=1){
tone(speakerPin,500);
delay (300);
tone(speakerPin,600);
delay (300);
tone(speakerPin,300);
delay (300);
noTone(3);
M=1;
}
else{
}
}
else{
analogWrite( 9, 0);
analogWrite( 11, 255);
}
if (M!=2){
tone(speakerPin,500);
delay(300);
tone(speakerPin,1500);
delay(300);
tone(speakerPin,1000);
delay(300);
noTone (3);
M=2;
}
else{
}
}
Вывод: в ходе работы было составлено две короткие мелодии, также написана программа с несколькими вариантами тональностей извлекаемых звуков и выполнена программа для контроллера Arduino, которая при изменении освещенности включает соответствующий светодиод, и проигрывает короткую мелодию.
ЗАКЛЮЧЕНИЕ
Курсовая работа по Arduino - своего рода введение в мир электроники, информатики и практического применения платформы Arduino, как средства для воплощения наших идей на конкретных примерах.
Работа содержит теоретическое описание Arduino и предлагает изучение предмета на реальных проектах, имеющих практическое значение. В данной работе приведены несколько примеров и проектов использования Arduino, представляющих собой законченные решения, пригодные для использования в проектах.
В ходе проведения практических работ были написаны программы для платформы Arduino. В первой работе была написана программа для платформы Arduino, способная выполнить мигание встроенным светодиодом SMT (Surface-mount techology). Во второй работе была собрана схема и написана программа для платформы Arduino, способная выполнить мигание светодиодом, образуя слово, закодированное по азбуке Морзе. Кодирование каждой буквы было выполнено соответствующими знаками с отделением от другой буквы определенным интервалом времени. В третьей работе была написана программа для платформы Arduino, в которой происходило мигание трех светодиодов различных цветов с определенным интервалом времени, с постепенным нарастанием яркости каждого светодиода. В четвертой работе было выполнено измерение освещенности с помощью фоторезистора. Составлена программа включения светодиодов, в зависимости от освещенности помещения. В пятой работе изучили пьезокерамический излучатель. Пьезокерамический излучатель - это электроакустическое устройство, способное воспроизводить звук благодаря обратному пьезоэлектрическому эффекту. Была собрана схема прибора для оценки освещенности, составлена программа для контроллера Arduino, где прибор при изменении освещенности включал соответствующий светодиод, и проигрывал короткую мелодию.
ИНФОРМАЦИОННЫЕ ИСТОЧНИКИ
- Видеоуроки по Arduino от Джереми Блум. [Электронный ресурс].-Режим доступа: http://amperka.ru/ (дата обращения: 18.05.2016)
- Все об Arduino Uno. [Электронный ресурс].- Режим доступа: http://arduino.ua/ru/hardware/Uno (дата обращения: 18.05.2016)
- Джереми Б. Изучаем Arduino / Б. Джереми – СПб.: Издательский центр «БХВ-Петербург», 2015. – 401с
- Петин В. Проекты с использованием контролера Arduino / В. Петин СПб.: Издательский центр «БХВ-Петербург», 2014. – 333с
Скачать: