2.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 | |
Продолжение таблицы 4 – Результаты измерений
Рабочее место | 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. Пьезокерамический излучатель
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), написана и загружена программа:
int m=0;
int speakerPin = 3;
void setup() {
int Red=9;
int Green=10;
pinMode(A0, INPUT);
pinMode(speakerPin, INPUT);
Serial.begin(9600); // связь с послед. портом
}
void loop() {
int t = analogRead(A0); //чтение значение с A0
if (t>600) { //если хорошая освещенность
analogWrite(9,0);
analogWrite(10,255); //Включили зеленую лампочку
if (m!=1) {
tone(speakerPin, 450);
delay(400);
tone(speakerPin, 550);
delay(300);
tone(speakerPin, 250);
delay(250);
noTone(3);
m=1;
}
else {
}
}
else {
analogWrite(9,255);
analogWrite(10,0);
if (m!=2) {
tone(speakerPin, 650);
delay(250);
tone(speakerPin, 250);
delay(250);
tone(speakerPin, 800);
delay(350);
noTone(3);
m=2;
}
else {
}
}
}
Рисунок 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 с.