Отключите питание, отключите светодиод от 9-го порта и подключите к 11-му. Измените программу так, чтобы схема снова заработала
Листинг:
1. #define led 9 //назначаем выход led 11 пин
2. //инициализация
3. void setup() {
4. pinMode(led, OUTPUT); //настраиваем led как выход
5. }
6. //входим в основной цикл
7. void loop() {
8. analogWrite(led, 85);
9. delay(250);
10. analogWrite(led, 170);
11. delay(250);
12. analogWrite(led, 255);
13. delay(250);
14. }
Измените код программы так, чтобы в течение секунды на светодиод последовательно подавалось усреднённое напряжение 0, 1, 2, 3, 4, 5 В
Листинг:
1. #define led 11 //назначаем выход led 11 пин
2. //инициализация
3. void setup() {
4. pinMode(led, OUTPUT); //настраиваем led как выход
5. }
6. //входим в основной цикл
7. void loop() {
8. //вкл. светодиод на пол сек
9. analogWrite(led, 0);
10. delay(200);
11. analogWrite(led, 51);
12. delay(200);
13. analogWrite(led, 102);
14. delay(200);
15. analogWrite(led, 153);
16. delay(200);
17. analogWrite(led, 204);
18. delay(200);
19. analogWrite(led, 255);
20. delay(200);
21. }
Возьмите еще один светодиод, резистор на 220 Ом и соберите аналогичную схему на этой же макетке, подключив светодиод к пину номер 3 и другому входу GND, измените программу так, чтобы светодиоды мигали в противофазу: первый выключен, второй горит максимально ярко и до противоположного состояния
Листинг:
1. #define led1 11 //назначаем выход led1 11 пин
2. #define led2 3 //назначаем выход led2 3 пин
3. //инициализация
4. voidsetup() {
5. pinMode(led1, OUTPUT); //настраиваем led1 как выход
6. pinMode(led2, OUTPUT); //настраиваем led2 как выход
7. }
8. //входим в основной цикл
9. voidloop() {
10. //направление слева-направо
11. analogWrite(led1, 0);
12. analogWrite(led2, 255);
13. delay(150); //150мс для более незаметного
14. //переключения при шаге ШИМ в 51 ед.
15. analogWrite(led1, 51);
16. analogWrite(led2, 204);
17. delay(150);
18. analogWrite(led1, 102);
19. analogWrite(led2, 153);
20. delay(150);
21. analogWrite(led1, 153);
22. analogWrite(led2, 102);
23. delay(150);
24. analogWrite(led1, 204);
25. analogWrite(led2, 51);
26. delay(150);
27. analogWrite(led1, 255);
28. analogWrite(led2, 0);
29. delay(250); //Конец направления пауза
30. //в 250мс для наглядности
31. //направление справа-налево
32. analogWrite(led1, 255);
33. analogWrite(led2, 0);
34. delay(150);
35. analogWrite(led1, 204);
36. analogWrite(led2, 51);
37. delay(150);
38. analogWrite(led1, 153);
39. analogWrite(led2, 102);
40. delay(150);
41. analogWrite(led1, 102);
42. analogWrite(led2, 153);
43. delay(150);
44. analogWrite(led1, 51);
45. analogWrite(led2, 204);
46. delay(150);
47. analogWrite(led1, 0);
48. analogWrite(led2, 255);
49. delay(250);
50. }
Эксперимент 3. Светильник с управляемой яркостью
В этом эксперименте мы меняем яркость светодиода, вращая ручку переменного резистора.
Принципиальная схема
Код:
1. #define LED_PIN 9
2. #define POT_PIN A0
3. void setup()
4. {
5. pinMode(13, OUTPUT);
6. pinMode(LED_PIN, OUTPUT);
7. pinMode(POT_PIN, INPUT);
8. }
9. void loop()
10. {
11. digitalWrite(13, HIGH);
12. int rotation, brightness;
13. rotation=analogRead(POT_PIN);
14. brightness=rotation/4;
15. analogWrite(LED_PIN, brightness);
16. }
Вопросы для проверки себя
Можем ли мы при сборке схемы подключить светодиод и потенциометр напрямую к разным входам GND микроконтроллера?
Не имеет значения к одному или к разным входам GND подключены элементы.
В какую сторону нужно крутить переменный резистор для увеличения яркости светодиода?
В зависимости к какой ножке подключены +5В, меняется направление вращения.
3.Что будет, если стереть из программы строчку pinMode(LED_PIN, OUTPUT)? строчку pinMode(POT_PIN, INPUT)?
Ничего не произойдет, схема будет работать как обычно.