Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчётный лист.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
172.03 Кб
Скачать

Void setup() {

pinMode(speakerPin, OUTPUT);

}

Void loop() {

for (int i = 0; i < length; i++) {

if (notes[i] == ' ') {

delay(beats[i] * tempo); // rest

} else {

playNote(notes[i], beats[i] * tempo);

}

// pause between notes

delay(tempo / 2);

}

}

На 4 занятии требовалось заставить светодиод плавно затухать, сделать радугу и улучшить её так, что бы она включалась и выключалась по нажатию на кнопку.

Затухание светодиода

int brightness = 0; // изначальная яркость светодиода

int fadeAmount = 45; // скорость затухания/нарастания// яркости

Void setup()

{

// инициализируем пин 9, как работающий на выход

pinMode(9, OUTPUT);

pinMode(10, OUTPUT);

}

Void loop()

{

// изменяем яркость светодиода

analogWrite(9, brightness);

analogWrite(10, brightness);

// на каждом шаге увеличиваем яркость

// на скорость затухания

brightness = brightness + fadeAmount;

// в конце затухания меняем его на

// нарастание яркости и наоборот

if (brightness == 0 || brightness == 255)

fadeAmount = -fadeAmount;

delay(30);

for (int x = 1;x <= 10; x++)

delay(30);

// ждём 30 миллисекунд

delay(30);

}

Радуга

int brightness = 255; // текущее значение яркости

int fadeAmount = 5; // скорость затухания

// пины, на которых расположен светодиод

int leds[3] = {9, 10, 11};

// индексы пинов, с которыми мы работаем

// в текущий момент

int curPin[2] = {0, 1};

Void setup()

{

for(int i = 0; i < 3; i++)

pinMode(leds[i], OUTPUT);

}

Void loop()

{

// подаём на два разных пина значение равное

// brightness и 255-brightness

analogWrite(leds[curPin[0]], brightness);

analogWrite(leds[curPin[1]], 255 - brightness);

// уменьшаем значение brightness

// на скорость затухания

brightness = brightness - fadeAmount;

// когда значение brightness становится равным

// нулю, меняем номера пинов, с которыми мы

// работаем

if (brightness == 0) {

curPin[0] = (curPin[0] + 1) % 3;

curPin[1] = (curPin[1] + 1) % 3;

brightness = 255;

}

delay(30);

}

Радуга на кнопку

// состояние светодиода

// пины, на которых расположен светодиод

int leds[3] = {9, 10, 11};

boolean ledState = LOW;

// предыдущее состояние кнопки

boolean lastButtonState = HIGH;

// в текущий момент

int curPin[2] = {0, 1};

Void setup()

{

for(int p = 0;p<3;p++)

pinMode(leds[p],OUTPUT);

pinMode(buttonPin, INPUT);

}

Void loop()

{

boolean reading = digitalRead(buttonPin);

if (reading != lastButtonState) {

delay(100);

reading = digitalRead(buttonPin);

if(reading != lastButtonState){

lastButtonState = reading;

if (reading) {

ledState = !ledState;

for(int i = 0;i<3;i++)

digitalWrite(leds[i],ledState);

}

}

}

if (ledState == HIGH) {

//for(int i = 0;i<3;i++)

//digitalWrite(leds[i],ledState);

analogWrite(leds[curPin[0]], brightness);

analogWrite(leds[curPin[1]], 255 - brightness);

brightness = brightness - fadeAmount;

if (brightness == 0) {

curPin[0] = (curPin[0] + 1) % 3;

curPin[1] = (curPin[1] + 1) % 3;

brightness = 255;

}

delay(30);

} else {

}

}

На 6 занятии требовалось с помощью потенциометра научиться управлять яркостью светодиода.

Яркость

int potPin = A2; // Аналоговый пин с потенциометром

int ledPin = 6; // Цифровой пин со светодиодом

int val = 0; // Значение потенциометра

int vall;