#include <LiquidCrystal.h>
#include <DHT.h>
LiquidCrystal lcd = {8, 7, 6, 5, 4, 3, 2};
#define DHTPIN 10
#define DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);
int ledpin = 9;
void setup() {
pinMode(ledpin, OUTPUT);
lcd.begin(16,2);
}
void loop() {
float temp = dht.readTemperature();
float humidity = dht.readHumidity();
lcd.setCursor(0,0);
lcd.print ("Temp");
lcd.print (temp*2);
lcd.print ("Hum");
lcd.print (humidity*2);
if (temp > 30) {
digitalWrite(ledpin, HIGH);
}
else if (temp < 30) {
digitalWrite(ledpin, LOW);
}
}
//Вопрос 1
//Таймеры — это встроенные устройства в микроконтроллерах, которые могут отсчитывать время и генерировать события по заданному интервалу.
//Бывает два типа: Счетчик на базе системного времени: Отсчитывает время в тактах системы, Автономный счетчик: Может работать независимо от главного процессора, генерируя прерывания с заданной периодичностью
//Прерывания — это механизм, при котором выполнение основной программы прерывается, и микроконтроллер переключается на выполнение заранее подготовленного кода
//Прерывания от таймеров — это сигнал, который генерируется таймером через заданный интервал времени.
//Когда таймер достигает заданного значения, он вызывает прерывание, которое запускает обработчик прерывания.
//Обработчик прерывания (или ISR — Interrupt Service Routine) — это функция, которая вызывается автоматически, когда происходит прерывание. В этой функции выполняются действия, которые должны быть выполнены в ответ на событие.
//Таймеры можно настроить для генерации прерываний с заданной периодичностью. TimerOne.
//Установка таймера: настройка таймера(задать время через которое сработает прерывание), Привязка обработчика прерывания:
//Когда таймер настроен, его нужно привязать к обработчику прерывания с помощью функции attachInterrupt()
//Обработчик прерывания:Программируем функцию, которая будет вызываться при каждом прерывании. void timerISR()
//Циклические прерывания от таймера — это мощный инструмент для выполнения задач с регулярными интервалами, таких как мигание светодиодом, измерение времени или управление другими устройствами.
//Вопрос 2
// Микроконтроллеры это вычислительные устройства сочетающие в себе процессор, память и переферийные устройства
//Хар-ки: Тактовая частота, Разрядность(8, 16 битные(количество чисел для обработки)), Обьем память (ОЗУ(оперативка), ПЗУ(постоянная)), переферия(АЦП, I2C), Энергопотребление
//Арх. ос: объединение памяти и процессора, программное управление, наличие flash памяти(соханяет данные при отключении), обычно используется гарвардская архитектура
//Существует 2 типа архитектур: Гравардская и Пристонская(Фон Неймана)
//Гарвардская: отдельные адресные пространства для хранения данных и инструкций, одновременное получение данных и инструкций но по разным шинам
//увеличивает скорость обработки но усложняет программирование
//Принстонская архитектура: общее пространство данных и инструкций, последовательное получение данных - снижает скорость обработки, проще программировать
//Почему гарвардская используется: более высокая скорость выполнения процессов за счет параллельных операций, сокращение длины команд и ускорение поиска информации в памяти