Курсовая работа
по дисциплине «Методы и средства испытания и контроля»
Группа: УКб-14Э1
Оценка
Дата сдачи работы:
«____» ______________2016 г.
__________________________
«____» ______________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
2
ВВЕДЕНИЕ
3
Для достижения поставленной цели необходимо обеспечить реализацию
следующих задач:
Приобретение навыков работы с платформой ARDUINO;
Изучение средств программирования платформы ARDUINO;
Написание программ для успешного программирования ARDUINO.
Теоретическую основу курсовой работы составила отечественная и
иностранная литература, которая посвящена непосредственно ARDUINO.
Авторами являются выдающиеся программисты Виктор Петина и Джереми
Блум.
1.1Платформа Arduino
Появление первых микроконтроллеров ознаменовало начало новой эры в
развитии микропроцессорной техники. Наличие в одном корпусе большинства
системных устройств сделало микроконтроллер подобным обычному
компьютеру. В отечественной литературе они даже назывались
однокристальными микро ЭВМ. Соответственно и желание использовать
микроконтроллеры как обычные компьютеры появилось практически с их
появлением. Но желание это сдерживалось многими факторами. Например,
чтобы собрать устройство на микроконтроллере, необходимо знать основы
схемотехники, устройство и работу конкретного процессора, уметь
программировать на ассемблере и изготавливать электронную технику.
Потребуются также программаторы, отладчики и другие вспомогательные
устройства. В итоге без огромного объема знаний и дорогостоящего
оборудования не обойтись. Такая ситуация долго не позволяла многим
любителям использовать микроконтроллеры в своих проектах. Сейчас, с
4
появлением устройств, дающих возможность работать с микроконтроллерами
без наличия серьезной материальной базы и знания многих предметов, все
изменилось. Примером такого устройства может служить проект Arduino
итальянских разработчиков.
Arduino и его клоны представляют собой наборы, состоящие из готового
электронного блока и программного обеспечения. Электронный блок здесь —
это печатная плата с установленным микроконтроллером и минимумом
элементов, необходимых для его работы. Фактически электронный блок
Arduino является аналогом материнской платы современного компьютера. На
нем имеются разъемы для подключения внешних устройств, а также разъем для
связи с компьютером, по которому и осуществляется программирование
микроконтроллера. Особенности используемых микроконтроллеров ATmega
фирмы Atmel позволяют производить программирование без применения
специальных программаторов. Все, что нужно для создания нового
электронного устройства, — это плата Arduino, кабель связи и компьютер.
Второй частью проекта Arduino является программное обеспечение для
создания управляющих программ. Оно объединило в себе простейшую среду
разработки и язык программирования, представляющий собой вариант языка
С/С++ для микрконтроллеров. В него добавлены элементы, позволяющие
создавать программы без изучения аппаратной части. Так что для работы с
Arduino практически достаточно знания только основ программирования на
С/С++. Создано для Arduino и множество библиотек, содержащих код,
работающий с различными устройствами.
8
2 ВЫПОЛНЕНИЕ ПРАКТИЧЕСКИХ РАБОТ
9
Рисунок 1- Плата Arduino
11
ВЫВОД: в данной работе была написана программа для платформы
Arduino, которая выполняет мигание встроенным светодиодом с определенно
заданным интервалом времени, который подключен к контакту 13. В первом
случае светодиод мигает 3 секунды, не мигает 1 секунду, во втором случае 1
секунду мигает, 0.3 секунды не мигает, в третьем случае 0.2 секунды мигает,
0.7 секунды не мигает, в четвертом случае 0.1 секунду мигает, 1.5 секунды не
мигает. Это говорит о том, что программа была написана верно, схема
подключения так же была собрана верно.
int LedPin=13;
void setup()
{
12
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);
13
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);
14
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е-»
15
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);
16
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);
17
//воскл !
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);
18
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);
}
// -
19
ВЫВОД: в ходе работы была собрана схема и написана программа для
платформы Arduino, произведено кодирование слова, которое состояло из 6
букв.
Кодирование каждой буквы было выполнено соответствующими знаками с
отделением от другой буквы определенным интервалом времени. Кодирование
слова выполняется по следующему правилу: За единицу времени принимается
длительность одной точки(1000мс). Длительность тире равна трём
точкам(3000мс). Пауза между элементами одного знака - одна точка, между
знаками в слове - три точки, между словами - семь точек(7000мс).
20
Рисунок 2 - Схема подключения трех светодиодов
21
Таблица 2 – Программа включения/выключения светодиодов
Время, мс. Желтый Pin 3 Красный Pin 5 Синий Pin 6
4000
500 вкл
2500
500 вкл
500 вкл
500 вкл
500 вкл
500 вкл
500 вкл
2500
22
Программирование платформы 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);
23
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);
24
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);
25
analogWrite( 6,255);
delay(2500);
}
4000
500 вкл
500 вкл
500 вкл
500 вкл
500 вкл
500 вкл
500
500 вкл
500
26
Программирование платформы 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);
27
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);
28
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);
29
delay(2500);
}
30
Программирование платформы Arduino на освещенность с помощью
фоторезистора
void setup() {
pinMode(A0, INPUT);
Serial.begin(9600); // связь с послед. портом
}
void loop() {
int t = analogRead(A0); //чтение значение с A0
Serial.println(t); //запись значения в послед. порт
delay(1000);
}
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);
31
}
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);
}
32
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);
}
33
короткую мелодию. При плохой освещенности соответствует красный
светодиод, при хорошей - зеленый светодиод.
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);
34
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() {
}
35
Рисунок 6- Схема терменвокс
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);
36
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);
}
37
Программирование платформы 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{
38
}
}
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{
}
}
39
ЗАКЛЮЧЕНИЕ
41
ИНФОРМАЦИОННЫЕ ИСТОЧНИКИ
42
43