1 //Задание глобальных переменных целочисленного типа integer
2 //Присваивание переменной ledLamp (светодиод) значение выхода 12 на плате
3 int ledLamp = 12;
4
5 //Установка начальных параметров
6 void setup()
7 {
8 //Задание пина ledLamp в качестве выходного
9 pinMode(ledLamp, OUTPUT);
10 }
11
12 //Основной цикл (повторяется бесконечно)
13 void loop()
14 {
15 //Назначение выходного сигнала от пина (выхода ledLamp) HIGH (5 вольт)
16 digitalWrite(ledLamp, HIGH); //Включение светодиода
17 //Пауза 2000 – задается в миллисекундах (1 секунда = 1000 миллисекунд)
18 delay(2000);
19 //Назначение выходного сигнала от пина (выхода ledLamp) LOW (0 вольт)
20 digitalWrite(ledLamp, LOW); //Выключение светодиода
21 //И опять задержка 2 секунды
22 delay(2000);
23 }
1 //Задание глобальных переменных
2 //Глобальные переменные обладают областью видимости в любом месте программы
3 int ledLamps[] = {2,3,4,5,6,7,8,9,10};
4 //Задание массива (нескольких значений), хранящего номера пинов для светодиодов
5 int lastLamp = 8; //Значение (маркер) для хранения последнего включенного //светодиода (последний элемент – всего 9 элементов, нумерация начинается с 0)
6 //Установка начальных параметров
7
8 void setup()
9 {
10 //Будем обходить значения по очереди (в цикле), увеличивая с каждым проходом
11 //цикла значение переменной element и присваивать текущему значению пина,
12 //значение OUTPUT
13 int element; //Объявление вспомогательной переменной для обхода цикла
14 for (element = 0; element <= 8; element++) //Конструкция цикла
15 { //конструкция «++» означает инкремент (увеличение на 1)
16 pinMode(ledLamps[element], OUTPUT);
17 }
18 }
19
20 void loop() // Основной цикл
21 {
22 //Включение светодиодов по очереди
23 //Циклом обходим элементы массива номеров пинов
24 int element; //Объявление вспомогательной переменной для обхода цикла
25 //Обходим все элементы массива пинов
26 for (element = 0; element<=8; element++)
27 {
28 //Проверим: если сейчас не последний элемент – значит, просто «моргнуть»
29 if(element != lastLamp)
30 {
31 digitalWrite(ledLamps[element], HIGH); //Включить светодиод
32 delay(100); //Задержка на 0,1 секунды
33 digitalWrite(ledLamps[element], LOW); //Выключить светодиод
34 delay(100); //Задержка на 0,1 секунды
35 }
36 else //Иначе, если это последний элемент, только зажечь
37 {
38 digitalWrite(ledLamps[element], HIGH); //Включить светодиод
39 delay(100); //Задержка на 0,1 секунды
40 lastLamp--; //Т.к. последний элемент зажгли, нужно уменьшить маркер
41 //последнего элемента на 1 (конструкция «--» означает декремент
42 //(вычитание) единицы)
43 break; //Принудительно прерываем цикл, чтобы остальные светодиоды,
44 //которые уже зажжены, не трогать
45 }
46 }
47 //После того как цикл прошел несколько раз (по количеству светодиодов), маркер
48 //последнего светодиода станет меньше нуля, поэтому мы выключим все светодиоды
49 //по очереди и снова установим маркер на 8
50 if (lastLamp<0)
51 {
52 //Снова в цикле обойдем все светодиоды и отключим каждый
53 for (element = 0; element <=8; element++)
54 {
55 digitalWrite(ledLamps[element], LOW); //Отключение
56 delay(200); //Задержка на 0,2 секунды
57 }
58 lastLamp = 8; //Возвращаем маркер на 8 (начальное положение)
59 }
60 }
1 //Задание глобальных переменных
2 //Глобальные переменные обладают областью видимости в любом месте программы
3 const int potentiometr = 0; //Потенциометр соединен с пином 0 на плате
4 const int ledLamp = 11; //Светодиод соединен с цифровым пином 11 на плате
5 int potentiometrValue; //Задание переменной для считывания значения
6 //потенциометра (целочисленный тип int)
7
8 //Установка начальных параметров
9 void setup()
10 {
11 //Задание пина ledLamp в качестве выходного
12 pinMode(ledLamp, OUTPUT);
13 }
14
15 // Основной цикл
16 void loop()
17 {
18 //Считывание значения аналогового пина potentiometr (лежит в пределах от 0 до
19 //1023 – 0-5 вольт)
20 potentiometrValue = analogRead(potentiometr);
21 //Установка напряжения на пин ledLamp светодиода
22 //(Значение напряжения лежит в пределах от 0 до 255 – поэтому разделим
23 //значение potentiometrValue на 4)
24 analogWrite(ledLamp, potentiometrValue / 4);
25 }
1 //Определим пины
2 const int button = 10; //Пин для кнопки 10
3 const int ledLamp = 12; //Пин для светодиода 12
4
5 void setup()
6 {
7 pinMode(button, INPUT); //Установим кнопку на ввод информации
8 pinMode(ledLamp, OUTPUT); //Светодиод на вывод
9 }
10
11 void loop()
12 {
13 if (digitalRead(button) == HIGH) //Если с кнопки приходит ток
14 {
15 digitalWrite(ledLamp, HIGH); //Включаем светодиод
16 }
17 else //Иначе (тока нет)
18 {
19 digitalWrite(ledLamp, LOW); //Отключаем светодиод
20 }
21 }
1 //Определим пины
2 const int button1 = 9; //Пин для кнопки № 1 – 9
3 const int button2 = 10; //Пин для кнопки № 2 – 10
4 const int ledLamp = 11; //Пин для светодиода – 11
5 int bright = 0; //Здесь будем хранить текущее значение яркости
6 boolean lastButton1 = LOW; //Последнее значение кнопки № 1 (ВЫКЛ)
7 boolean lastButton2 = LOW; //Последнее значение кнопки № 2 (ВЫКЛ)
8
9 void setup() {
10 pinMode(button1, INPUT); //Установим кнопку на ввод информации
11 pinMode(button2, INPUT); //Установим кнопку на ввод информации
12 pinMode(ledLamp, OUTPUT); //Светодиод на вывод
13 }
14
15 void loop() {
16 boolean valueButton1 = digitalRead(button1); //Считать значение кнопки №1
17 boolean valueButton2 = digitalRead(button2); //Считать значение кнопки №2
18 delay(10); //Программная задержка для избежания дребезга сигнала
19 if (valueButton1 == HIGH && lastButton1 == LOW)//Если нажали кнопку №1
20 {
21 lastButton1 = HIGH; //Последнее значение кнопки № 1 (ВКЛ)
22 bright = bright + 50; //Увеличим яркость лампочки
23 }
24 else if (valueButton2 == HIGH && lastButton2 == LOW)//Кнопка № 2
25 {
26 lastButton2 = HIGH; //Последнее значение кнопки № 2 (ВКЛ)
27 bright = bright - 50; //Уменьшим яркость
28 }
29 else //Иначе – нажатий не было, считаем состояние кнопок
30 {
31 lastButton1 = valueButton1;
32 lastButton2 = valueButton2;
33 }
34 if (bright < 0) //Если яркость опустилась ниже 0, установим ее в 0
35 {
36 bright = 0; //Яркость может быть только от 0 до 255
37 }
38 else if (bright > 255) //Если поднялась больше 255
39 {
40 bright = 255; //Установим ее в 255
41 }
42 analogWrite(ledLamp, bright); //Передадим значение яркости на светодиод
43 }
1 //Определим пины
2 int photo = 0; //Пин фоторезистора
3 int ledLamp = 12; //Пин светодиода
4
5 void setup()
6 {
7 pinMode(ledLamp, OUTPUT); //Устанавливаем пин светодиода на «выход»
8 }
9
10 void loop()
11 {
12 //Считываем значение фоторезистора в переменную light
13 int light = analogRead(photo);
14 //Если значение меньше 700(темно), включим свет
15 if (light< 700) digitalWrite(ledLamp, HIGH);
16 else digitalWrite(ledLamp, LOW); //Иначе (светло), отключим свет
17 }
1 const int BUT = 9;
2 const int BUZ = 8;
3
4 void setup()
5 {
6 pinMode(BUZ, OUTPUT);
7 }
8
9 void loop()
10 {
11 if (digitalRead(BUT) == HIGH) {
12 tone(BUZ, 294, 100);
13 }
14 }
1 const int BUT = 9;
2 const int BUZ = 8;
3
4 const float re = 293.66;
5 const float red = 311.13;
6 const float fa = 349.23;
7 const float sol = 392.00;
8
9 const int tempo = 220;
10
11 void setup()
12 {
13 pinMode(BUZ, OUTPUT);
14 }
15
16 void playNote(int port, float freq, float dur) {
17 tone(port, freq, dur*0.9);
18 delay(dur);
19 noTone(port);
20 }
21
22 void loop()
23 {
24 int wholenote = (60000 * 4) / tempo;
25 int note2 = (wholenote) / 2;
26 int note4 = (wholenote) / 4;
27
28 if (digitalRead(BUT) == HIGH) {
29 playNote(BUZ, sol, note2);
30 playNote(BUZ, sol, note4);
31 playNote(BUZ, sol, note4);
32 playNote(BUZ, red, wholenote);
33
34 delay(800);
35
36 playNote(BUZ, fa, note2);
37 playNote(BUZ, fa, note4);
38 playNote(BUZ, fa, note4);
39 playNote(BUZ, re, wholenote);
40 }
41 }
1 #define NOTE_B0 31
2 #define NOTE_C1 33
3 #define NOTE_CS1 35
4 #define NOTE_D1 37
5 #define NOTE_DS1 39
6 #define NOTE_E1 41
7 #define NOTE_F1 44
8 #define NOTE_FS1 46
9 #define NOTE_G1 49
10 #define NOTE_GS1 52
11 #define NOTE_A1 55
12 #define NOTE_AS1 58
13 #define NOTE_B1 62
14 #define NOTE_C2 65
15 #define NOTE_CS2 69
16 #define NOTE_D2 73
17 #define NOTE_DS2 78
18 #define NOTE_E2 82
19 #define NOTE_F2 87
20 #define NOTE_FS2 93
21 #define NOTE_G2 98
22 #define NOTE_GS2 104
23 #define NOTE_A2 110
24 #define NOTE_AS2 117
25 #define NOTE_B2 123
26 #define NOTE_C3 131
27 #define NOTE_CS3 139
28 #define NOTE_D3 147
29 #define NOTE_DS3 156
30 #define NOTE_E3 165
31 #define NOTE_F3 175
32 #define NOTE_FS3 185
33 #define NOTE_G3 196
34 #define NOTE_GS3 208
35 #define NOTE_A3 220
36 #define NOTE_AS3 233
37 #define NOTE_B3 247
38 #define NOTE_C4 262
39 #define NOTE_CS4 277
40 #define NOTE_D4 294
41 #define NOTE_DS4 311
42 #define NOTE_E4 330
43 #define NOTE_F4 349
44 #define NOTE_FS4 370
45 #define NOTE_G4 392
46 #define NOTE_GS4 415
47 #define NOTE_A4 440
48 #define NOTE_AS4 466
49 #define NOTE_B4 494
50 #define NOTE_C5 523
51 #define NOTE_CS5 554
52 #define NOTE_D5 587
53 #define NOTE_DS5 622
54 #define NOTE_E5 659
55 #define NOTE_F5 698
56 #define NOTE_FS5 740
57 #define NOTE_G5 784
58 #define NOTE_GS5 831
59 #define NOTE_A5 880
60 #define NOTE_AS5 932
61 #define NOTE_B5 988
62 #define NOTE_C6 1047
63 #define NOTE_CS6 1109
64 #define NOTE_D6 1175
65 #define NOTE_DS6 1245
66 #define NOTE_E6 1319
67 #define NOTE_F6 1397
68 #define NOTE_FS6 1480
69 #define NOTE_G6 1568
70 #define NOTE_GS6 1661
71 #define NOTE_A6 1760
72 #define NOTE_AS6 1865
73 #define NOTE_B6 1976
74 #define NOTE_C7 2093
75 #define NOTE_CS7 2217
76 #define NOTE_D7 2349
77 #define NOTE_DS7 2489
78 #define NOTE_E7 2637
79 #define NOTE_F7 2794
80 #define NOTE_FS7 2960
81 #define NOTE_G7 3136
82 #define NOTE_GS7 3322
83 #define NOTE_A7 3520
84 #define NOTE_AS7 3729
85 #define NOTE_B7 3951
86 #define NOTE_C8 4186
87 #define NOTE_CS8 4435
88 #define NOTE_D8 4699
89 #define NOTE_DS8 4978
90 #define REST 0
91
92 // change this to make the song slower or faster
93 int tempo = 144;
94
95 // change this to whichever pin you want to use
96 int buzzer = 8;
97
98 // notes of the moledy followed by the duration.
99 // a 4 means a quarter note, 8 an eighteenth , 16 sixteenth, so on
100 // !!negative numbers are used to represent dotted notes,
101 // so -4 means a dotted quarter note, that is, a quarter plus an eighteenth!!
102 int melody[] = {
103
104
105 // Hedwig's theme fromn the Harry Potter Movies
106 // Socre from https://musescore.com/user/3811306/scores/4906610
107
108 REST, 2, NOTE_D4, 4,
109 NOTE_G4, -4, NOTE_AS4, 8, NOTE_A4, 4,
110 NOTE_G4, 2, NOTE_D5, 4,
111 NOTE_C5, -2,
112 NOTE_A4, -2,
113 NOTE_G4, -4, NOTE_AS4, 8, NOTE_A4, 4,
114 NOTE_F4, 2, NOTE_GS4, 4,
115 NOTE_D4, -1,
116 NOTE_D4, 4,
117
118 NOTE_G4, -4, NOTE_AS4, 8, NOTE_A4, 4, //10
119 NOTE_G4, 2, NOTE_D5, 4,
120 NOTE_F5, 2, NOTE_E5, 4,
121 NOTE_DS5, 2, NOTE_B4, 4,
122 NOTE_DS5, -4, NOTE_D5, 8, NOTE_CS5, 4,
123 NOTE_CS4, 2, NOTE_B4, 4,
124 NOTE_G4, -1,
125 NOTE_AS4, 4,
126
127 NOTE_D5, 2, NOTE_AS4, 4,//18
128 NOTE_D5, 2, NOTE_AS4, 4,
129 NOTE_DS5, 2, NOTE_D5, 4,
130 NOTE_CS5, 2, NOTE_A4, 4,
131 NOTE_AS4, -4, NOTE_D5, 8, NOTE_CS5, 4,
132 NOTE_CS4, 2, NOTE_D4, 4,
133 NOTE_D5, -1,
134 REST,4, NOTE_AS4,4,
135
136 NOTE_D5, 2, NOTE_AS4, 4,//26
137 NOTE_D5, 2, NOTE_AS4, 4,
138 NOTE_F5, 2, NOTE_E5, 4,
139 NOTE_DS5, 2, NOTE_B4, 4,
140 NOTE_DS5, -4, NOTE_D5, 8, NOTE_CS5, 4,
141 NOTE_CS4, 2, NOTE_AS4, 4,
142 NOTE_G4, -1,
143
144 };
145
146 // sizeof gives the number of bytes, each int value is composed of two bytes (16 bits)
147 // there are two values per note (pitch and duration), so for each note there are four bytes
148 int notes = sizeof(melody) / sizeof(melody[0]) / 2;
149
150 // this calculates the duration of a whole note in ms (60s/tempo)*4 beats
151 int wholenote = (60000 * 4) / tempo;
152
153 int divider = 0, noteDuration = 0;
154
155 const int BUT = 9;
156
157 void setup()
158 {
159 pinMode(buzzer, OUTPUT);
160 }
161
162 void loop()
163 {
164 if (digitalRead(BUT) == HIGH) {
165 for (int thisNote = 0; thisNote < notes * 2; thisNote = thisNote + 2) {
166
167 // calculates the duration of each note
168 divider = melody[thisNote + 1];
169 if (divider > 0) {
170 // regular note, just proceed
171 noteDuration = (wholenote) / divider;
172 } else if (divider < 0) {
173 // dotted notes are represented with negative durations!!
174 noteDuration = (wholenote) / abs(divider);
175 noteDuration *= 1.5; // increases the duration in half for dotted notes
176 }
177
178 // we only play the note for 90% of the duration, leaving 10% as a pause
179 tone(buzzer, melody[thisNote], noteDuration*0.9);
180
181 // Wait for the specief duration before playing the next note.
182 delay(noteDuration);
183
184 // stop the waveform generation before the next note.
185 noTone(buzzer);
186 }
187
188 }
189 }
1 //Объявление переменных
2 int buzzer = 6; //Зуммер на 6 пине
3 int button = 7; //Кнопка на 7
4 int redRoad = 8; //Красный светодиод дороги на 8
5 int yellowRoad = 9; //Желтый светодиод дороги на 9
6 int greenRoad = 10; //Зеленый светодиод дороги на 10
7 int redZebra = 11; //Красный светодиод перехода на 11
8 int greenZebra = 12; //Зеленый светодиод перехода на 12
9 boolean lastButton = LOW; //Флаг последнего состояния кнопки
10
11 void setup()
12 { //Установим вход/выход наших пинов
13 pinMode(buzzer, OUTPUT);
14 pinMode(button, INPUT);
15 pinMode(redRoad, OUTPUT);
16 pinMode(yellowRoad, OUTPUT);
17 pinMode(greenRoad, OUTPUT);
18 pinMode(redZebra, OUTPUT);
19 pinMode(greenZebra, OUTPUT);
20 }
21
22 void loop()
23 {
24 //В функции «стандартная ситуация» опишем поведение, если кнопка не нажата
25 standardSituation();
26 if (digitalRead(button) == HIGH && lastButton == LOW)
27 { //Кнопку нажимают
28 lastButton = HIGH; //Установим флаг кнопки на (ВКЛ)
29 greenBlink(greenRoad); //Зеленый светодиод дороги мигает
30 digitalWrite(greenRoad, LOW); //Выключаем зеленый светодиод дороги
31 digitalWrite(yellowRoad, HIGH); //Включаем желтый светодиод дороги
32 delay(1000); //Задержка в секунду
33 digitalWrite(yellowRoad, LOW); //Выключаем желтый светодиод дороги
34 delay(100); //Задержка 100мс
35 digitalWrite(redRoad, HIGH); //Включаем красный светодиод дороги
36 delay(500); //Задержка полсекунды
37 digitalWrite(redZebra, LOW); //Красный светодиод на зебре гаснет
38 digitalWrite(greenZebra, HIGH); //Зеленый загорается
39 tone(buzzer, 262, 3000); //Включается звуковой сигнал для слепых
40 delay(3000); //Идет время для перехода дороги
41 greenBlink(greenZebra); //Переход заканчивается (зеленый мигает)
42 digitalWrite(greenZebra, LOW); //Зеленый светодиод зебры гаснет
43 digitalWrite(redZebra, HIGH); //Красный светодиод зебры загорается
44 delay(200); //Бегут пешеходы, не успевшие завершить переход на зеленом =)
45 digitalWrite(yellowRoad, HIGH); //Загорается желтый светодиод дороги
46 delay(1000); //Задержка на секунду
47 standardSituation(); //Устанавливаем стандартную ситуацию
48 delay(5000); //Даем 5 секунд, чтобы пешеходы не сразу жали на кнопку
49 }
50 lastButton = digitalRead(button); //Считать состояние кнопки
51 }
52
53 void greenBlink(int pin)
54 { //Функция «помигать зеленым»
55 int var = 0; //Объявление переменной счетчика
56 while (var < 3)
57 { //Пока переменная меньше трех
58 digitalWrite(pin, LOW); //Выключить светодиод
59 delay(500); //Подержать полсекунды
60 digitalWrite(pin, HIGH); //Включить светодиод
61 delay(500); //Подержать полсекунды
62 var ++; //Счетчик увеличить на 1
63 }
64 }
65
66 void standardSituation()
67 { //Определим стандартную ситуацию
68 digitalWrite(yellowRoad, LOW); //Желтый дороги ВЫКЛ
69 digitalWrite(redRoad, LOW); //Красный дороги ВЫКЛ
70 digitalWrite(greenRoad, HIGH); //Зеленый дороги ВКЛ
71 digitalWrite(redZebra, HIGH); //Красный перехода ВКЛ
72 digitalWrite(greenZebra, LOW); //Зеленый перехода ВЫКЛ
73 }