Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Топ:
Теоретическая значимость работы: Описание теоретической значимости (ценности) результатов исследования должно присутствовать во введении...
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Эволюция кровеносной системы позвоночных животных: Биологическая эволюция – необратимый процесс исторического развития живой природы...
Интересное:
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Дисциплины:
2018-01-30 | 2034 |
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) делает то же самое, только добавляет в конце невидимый символ новой строки.
|
|
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!