Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Топ:
Генеалогическое древо Султанов Османской империи: Османские правители, вначале, будучи еще бейлербеями Анатолии, женились на дочерях византийских императоров...
Когда производится ограждение поезда, остановившегося на перегоне: Во всех случаях немедленно должно быть ограждено место препятствия для движения поездов на смежном пути двухпутного...
Интересное:
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Точность вычислений с такими данными невелика, у вас могут возникнуть неожиданные ошибки, например, при использовании float в условном операторе.
4.Что за выражение стоит справа от = при объявлении булевой переменной enableSegment?
Определяем сколько сигментов должно гореть.
Задания для самостоятельного решения
Измените код программы таким образом, чтобы индикатор включался при 0 градусов и его показания прирастали на одно деление каждые 5 градусов.
Листинг:
1. #include <math.h>
2. #define FIRST_LED_PIN 2
3. #define LED_COUNT 10
4. #define TERMIST_B 4300
5. #define VIN 5.0
6. void setup()
7. {
8. pinMode(13, OUTPUT);
9. for (int i = 0; i < LED_COUNT; ++i)
10. pinMode(i + FIRST_LED_PIN, OUTPUT);
11. }
12. void loop()
13. {
14. digitalWrite(13, HIGH);
15. float voltage = analogRead(A0) * VIN / 1023.0;
16. float r1 = voltage / (VIN - voltage);
17. float temperature = 1./(1./(TERMIST_B)*log(r1)+1./(25. + 273.)) - 273;
18. for (int i = 0; i < LED_COUNT; i=i+5) {
19. boolean enableSegment = (temperature >= 0+i);
20. digitalWrite(i + FIRST_LED_PIN, enableSegment);
21. }
22. }
2.Добавьте в схему пьезопищалку и доработайте программу так, чтобы срабатывала звуковая сигнализация при достижении температуры, например, 25 градусов.
Листинг:
1. #include <math.h>
2. #define FIRST_LED_PIN 4
3. #define LED_COUNT 10
4. #define TERMIST_B 4300
5. #define VIN 5.0
6. #define BUZZER_PIN 3
7. void setup()
8. {
9. pinMode(13, OUTPUT);
10. for (int i = 0; i < LED_COUNT; ++i)
11. pinMode(i + FIRST_LED_PIN, OUTPUT);
12. pinMode(BUZZER_PIN, OUTPUT);
13. }
14. void loop()
15. {
16. digitalWrite(13, HIGH);
17. float voltage = analogRead(A0) * VIN / 1023.0;
18. float r1 = voltage / (VIN - voltage);
19. float temperature = 1./(1./(TERMIST_B)*log(r1)+1./(25. + 273.)) - 273;
20. for (int i = 0; i < LED_COUNT; ++i) {
21. boolean enableSegment = (temperature >= 21+i);
22. digitalWrite(i + FIRST_LED_PIN, enableSegment);
23. if (temperature == 25)
24. tone(BUZZER_PIN, 3500, 100);
25. }
26. }
Эксперимент 16. Метеостанция
В этом эксперименте мы передаем данные об измерениях температуры на компьютер (например, для последующей обработки).
Принципиальная схема


Код
1. #include <math.h>
2. int minute = 1;
3. #define TERMIST_B 4300
4. #define VIN 5.0
5. void setup()
6. {
7. pinMode(13, OUTPUT);
8. Serial.begin(9600);
9. Serial.println("Minute\tTemperature");
10. }
11. void loop()
12. {
13. digitalWrite(13, HIGH);
14. float voltage = analogRead(A0) * VIN / 1024.0;
15. float r1 = voltage / (VIN - voltage);
16. float temperature = 1./(1./(TERMIST_B)*log(r1)+1./(25. + 273.)) - 273;
17. Serial.print(minute);
18. Serial.print("\t");
19. Serial.println(temperature);
20. delay(60000);
21. ++minute;
22. }
Вопросы для проверки себя
Какие действия нужно предпринять, чтобы читать на компьютере данные с Arduino?
· чтобы обмениваться данными, нужно начать соединение, поэтому Serial.begin(baudrate)вызывается в setup()
· Serial.print(data) отправляет содержимое data. Если мы хотим отправить текст, можно просто заключить его в пару двойных кавычек: "". Кириллица, скорее всего, будет отображаться некорректно.
· Serial.println(data) делает то же самое, только добавляет в конце невидимый символ новой строки.
|
|
|
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!