Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
namefix-94.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
778 Кб
Скачать
☆
    1. Пьезокерамический излучатель

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

  1. Первая мелодия – веселая

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() {

}

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

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) выключает мелодию.

  1. «Терменвокс»

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

  1. Мелодия первая

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

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

void setup() {

}

void loop() {

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

int pitch = 200 + reading / 4;

tone(speakerPin, pitch);

}

  1. Мелодия вторая

int speakerPin = 3;

int photocellPin = 0;

void setup() {

}

void loop() {

int reading = analogRead(photocellPin);

int pitch = 800 + reading / 4;

tone(speakerPin, pitch);

}

  1. Мелодия третья

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 позволило изменять тональность звука.

  1. «Прибор оценки освещенности»

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