Уберите из программы чтение датчика освещенности и пропищите азбукой Морзе позывной SOS: три точки, три тире, три точки. — КиберПедия 

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Уберите из программы чтение датчика освещенности и пропищите азбукой Морзе позывной SOS: три точки, три тире, три точки.

2018-01-30 4703
Уберите из программы чтение датчика освещенности и пропищите азбукой Морзе позывной SOS: три точки, три тире, три точки. 4.67 из 5.00 6 оценок
Заказать работу

Листинг:

1. #define BUZZER 3

2. int freq = 3000;

3. void setup() {

4. pinMode(BUZZER, OUTPUT);

5. }

6. void loop() {

7. //три точки

8. tone(BUZZER,freq);

9. delay(100);

10. noTone(BUZZER);

11. delay(200);

12. tone(BUZZER,freq);

13. delay(100);

14. noTone(BUZZER);

15. delay(200);

16. tone(BUZZER,freq);

17. delay(100);

18. noTone(BUZZER);

19. delay(700);

20. //три тире

21. tone(BUZZER,freq);

22. delay(200);

23. noTone(BUZZER);

24. delay(200);

25. tone(BUZZER,freq);

26. delay(200);

27. noTone(BUZZER);

28. delay(200);

29. tone(BUZZER,freq);

30. delay(200);

31. noTone(BUZZER);

32. delay(700);

33. }

2.Измените код программы так, чтобы с падением освещенности звук становился ниже (например, падал от 5 кГц до 2,5 кГц)

Листинг:

1. #define BUZZER 3

2. #define SENSOR A0

3. void setup() {

4. pinMode(BUZZER, OUTPUT);

5. pinMode(SENSOR, INPUT);

6. }

7. void loop() {

8. int val, freq;

9. val = analogRead(SENSOR);

10. freq = map(val, 0, 1023,2500,5000);

11. tone(BUZZER,freq, 20);

12. }

Измените код программы так, чтобы звук терменвокса раздавался не непрерывно, а 10 раз в секунду с различимыми паузами

Листинг:

1. #define BUZZER 3

2. int freq = 3000;

3. int pause[] = {50,100,150,200,250,300,350,400,450,500};

4. void setup() {

5. pinMode(BUZZER, OUTPUT);

6. }

7. void loop() {

8. for (int i=0; i<=6; i++){

9. tone(BUZZER,freq);

10. delay(50);

11. noTone(BUZZER);

12. delay(pause[i]);

13. if (i==6){

14. i=0;

15. //Озвучиваем конец 10 пиканий за 1 сек

16. tone(BUZZER,freq);

17. delay(300);

18. noTone(BUZZER);

19. delay(500);

20. }

21. }

22. }

 


Эксперимент 5. Ночной светильник

В этом эксперименте светодиод должен включаться при падении уровня освещенности ниже порога, заданного потенциометром.

Принципиальная схема

Код

1. #define LED 13

2. #define SENSOR A0

3. #define POT A1

4. void setup() {

5. pinMode(LED, OUTPUT);

6. }

7. void loop() {

8. int lightness = analogRead(SENSOR);

9. int threshold = analogRead(POT);

10. boolean tooDark = (lightness < threshold);

11. if (tooDark) {

12. digitalWrite(LED, HIGH);

13. }

14. else {

15. digitalWrite(LED, LOW);

16. }

17. }

Вопросы для проверки себя

Если мы установим фоторезистор между аналоговым входом и землей, наше устройство будет работать наоборот: светодиод будет включаться при увеличении количества света. Почему?

Так как по закону Ома, чем больше сопротивление на фоторезисторе тем больше напряжение выдается на pinA0. В ином случае наоборот, чем больше сопротивление, тем меньше напряжение.

Какой результат работы устройства мы получим, если свет от светодиода будет падать на фоторезистор?

Светодиод засветит фоторезистор, поступит команда, что нужно выключить светодиод, он погаснет, на фоторезистор больше не будет падать свет и светодиод опять включится, и так будет продолжаться до наступления дня.

Если мы все же установили фоторезистор так, как сказано в предыдущем вопросе, как нам нужно изменить программу, чтобы устройство работало верно?

Листинг:

1. #define LED_PIN 13

2. #define LDR_PIN A0

3. #define POT_PIN A1

4. void setup()

5. {

6. pinMode(12, OUTPUT);

7. pinMode(LED_PIN, OUTPUT);

8. }

9. void loop()

10. {

11. digitalWrite(12,HIGH);

12. int lightness=analogRead(LDR_PIN);

13. int threshold=analogRead(POT_PIN);

14. boolean tooDark = (lightness>threshold);

15. if (tooDark){

16. digitalWrite(LED_PIN, HIGH);

17. }

18. else

19. {

20. digitalWrite(LED_PIN, LOW);

21. }

22. }

4.Допустим, у нас есть код if (условие) {действие;}. В каких случаях будет выполнено действие?

При истинности логического выражения в (условие).

5.При каких значениях y выражение x + y > 0 будет истинным, если x > 0?

При y (-x;+∞)


Поделиться с друзьями:

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.006 с.