//Тут указываем какие контакты будут входами, а какие выходами
#define out1 15 //Указаны для примера выходы
#define out2 2 //Указаны для примера выходы
#define out3 4 //Указаны для примера выходы
#define out4 5 //Указаны для примера выходы
#define in1 13 //Указаны для примера входы
#define in2 12 //Указаны для примера входы
#define in3 14 //Указаны для примера входы
#define in4 27 //Указаны для примера входы
void setup() {
//Тут определяем в каком режиме будут работать контакты
pinMode(in1, INPUT_PULLUP); //Данный вход работает в режиме подтяжки к внутреннему резистору, по умолчанию 0 это вкл, 1 выкл, инвертированная логика.
pinMode(in2, INPUT_PULLUP); //Данный вход работает в режиме подтяжки к внутреннему резистору, по умолчанию 0 это вкл, 1 выкл, инвертированная логика.
pinMode(in3, INPUT_PULLUP); //Данный вход работает в режиме подтяжки к внутреннему резистору, по умолчанию 0 это вкл, 1 выкл, инвертированная логика.
pinMode(in4, INPUT_PULLUP); //Данный вход работает в режиме подтяжки к внутреннему резистору, по умолчанию 0 это вкл, 1 выкл, инвертированная логика.
pinMode(out1, OUTPUT); //определяем выход
pinMode(out2, OUTPUT); //определяем выход
pinMode(out3, OUTPUT); //определяем выход
pinMode(out4, OUTPUT); //определяем выход
digitalWrite(out1, LOW);
digitalWrite(out2, LOW);
digitalWrite(out3, LOW);
digitalWrite(out4, LOW);
Serial.begin(115200);
Serial.println("Hello, ESP32!");
}
void loop() {
//Проверяем состояние первого входа
if (digitalRead(in1)==LOW){
digitalWrite(out1, LOW); //Если первый вход подтянутк в земле включаем выход
}
else {
digitalWrite(out1, HIGH); //Если первый вход не поднятнут, т.е. не нажат выключаем
} //Проверяем состояние второго входа
if (digitalRead(in2)==LOW){
digitalWrite(out2, LOW);
}
else {
digitalWrite(out2, HIGH);
} //Проверяем состояние третьего входа
if (digitalRead(in3)==LOW){
digitalWrite(out3, LOW);
}
else {
digitalWrite(out3, HIGH);
} //Проверяем состояние четвертого входа
if (digitalRead(in4)==LOW){
digitalWrite(out4, LOW);
}
else
{
digitalWrite(out4, HIGH);
}
delay(100); //чтобы не частить и не мучать реле вечными передергиваниями, можно до 1000 увеличить
}
Простой пример програмного кода для реализации управления выходам ESP32 через анализ нажатия кнопки, кнопки ESP32 подключены к земле через подтяжку к внутреннему резистору. При подключении нагрузки нужно контролировать исток тока. чтобы не схорел выход, использовать реле, резисторы или мосфет транзисторы.