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

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

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

2018-01-30 4712
Уберите из программы чтение датчика освещенности и пропищите азбукой Морзе позывной 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;+∞)


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

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

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...



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

0.01 с.