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

0

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

Федеральное государственное бюджетное образовательное учреждение высшего образования
«Сибирская государственная автомобильно-дорожная академия (СибАДИ)»

 

 

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

 

 

 

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

по дисциплине «Методы и средства испытания и контроля»

 

 

Тема работы: «Проведение измерений на платформе 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, где прибор при изменении освещенности включал соответствующий светодиод, и проигрывал короткую мелодию.

 

 

 

ИНФОРМАЦИОННЫЕ ИСТОЧНИКИ

 

  1. Видеоуроки по Arduino от Джереми Блум. [Электронный ресурс].-Режим доступа: http://amperka.ru/ (дата обращения: 18.05.2016)
  2. Все об Arduino Uno. [Электронный ресурс].- Режим доступа: http://arduino.ua/ru/hardware/Uno (дата обращения: 18.05.2016)
  3. Джереми Б. Изучаем Arduino / Б. Джереми – СПб.: Издательский центр «БХВ-Петербург», 2015. – 401с
  4. Петин В. Проекты с использованием контролера Arduino / В. Петин СПб.: Издательский центр «БХВ-Петербург», 2014. – 333с

 
 Скачать: kr_arduino-1.rar

Категория: Курсовые / Электроника курсовые

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.