Таймер в таймере.... Или мигание диодом с регулируемой задержкой

Dubolom

✩✩✩✩✩✩✩
2 Фев 2021
77
0
Ну раз уж тут столько народу читает скажите ещё сразу , чтоб не тыкаться много куда не надо)

Всё тот же код рассмотрим.. Вот нужно еще так:

if
при опросе, - темп в норме - диод не Вкл.
else счетчик =0;

Но мне в else надо ещё много чего нагородить с условиями.
Например у нас есть еще переменная темп2
..........
else {
счетчик =0;
if (темп2 > 20) {
digitalWrite(8, 1);
}
}
Могу я так?
C++:
           if(temperatureC > 29){

       digitalWrite(13, 1);
       
        Serial.println("  ON ");
     
       timerA = millis();
   

       kol_A++;  // добаляем кол-во
     
    Serial.print("kol_A  ");
  Serial.println(kol_A);

  }

  else {

  kol_A = 0; // обнуляем счетчик
   
      Serial.print("kol_A  ");
  Serial.println(kol_A);
////////////////////
//Вот сюда бы дописать
///  if (темп2 > 20) {
///  digitalWrite(8, 1);

}
  }
Наверное лучше создать новое
if (temperatureC <= 29) {
которое такое же, как else
и в нём уже digitalWrite(8, 1);

if (temperatureC <= 29) {
digitalWrite(8, 1);

??
Но вообще интересно... можно ли в else - if открыть
 
Изменено:

Старик Похабыч

★★★★★★★
14 Авг 2019
4,272
1,303
Москва
можно
C++:
if (a<b)
{
    if (a=2) Serial.println("2!");
    else Serial.println("не 2!");
    if (b=100)
    {
        a=101;
        b=0;
    }
    else
    {
        b=101;
        a=0;
    }
}
else
{
    if (a==b)
    {
        Serial.println("Ровно");
        digitalWrite(2,1);
    }
    else digitalWrite(3,0);
    
}
 
  • Лойс +1
Реакции: Dubolom

Dubolom

✩✩✩✩✩✩✩
2 Фев 2021
77
0
Ух. Всем спасибо.
Таймер и счётчик освоили)

Заходите в мои новые темы))
надо еще разобраться с - ADS1115 и Усреднение значений с аналоговых входов

И ещё моментик один спрошу тут на горячую:


Имеем NodeMCU 8266
Нужно подключить -
1 - 6 реле (6 пинов)
2 - ADS1115 - i2c (2 пина)
2 - DS18B20 - oneWire (1 пин)
3 - ключ для опроса датчиков и ADS1115- подали питание - опросили - выключили (1 пин)
ИТОГО: НУЖНО 10 ПИНОВ

Получается не хватка пинов.
D0 - D8 - это 9 пинов. А надо бы 10.


Вот и думаю:
1 - Или ключ убрать - для опроса датчиков - пусть питаются)) Здоровее будут))
2 - Или TX и RX попробовать назначить как выходы или i2c. Читал что так можно, потеряв SerialPort.
3 - Читал ещё что S3 контакт как выход может работать.. Что то хз..
4 - Мысль ещё есть что шину wire DS18B20 можно на какой то другой контакт утащить
5 - Ваш вариант. По-любому он есть, и получше моих)
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,272
1,303
Москва
Для подключения реле используйте сдвиговый регистр, вместо 6 будете занимать только 3 пина (а подключить можно 8 реле, а если надо , то и 16, 24, 32 и т.д.)
 
  • Лойс +1
Реакции: Dubolom

Dubolom

✩✩✩✩✩✩✩
2 Фев 2021
77
0
@Старик Похабыч,
Сложно.... Для одно то ПИНчика))

Вспомнил, ещё мысль была:
A0 то свободен - может на него как то DS18b20 приделать,
или как выход его организовать? Возможно?
 

bort707

★★★★★★✩
21 Сен 2020
3,067
916
@Dubolom, если сложно, возьмите есп32, у нее больше пинов.
А может хорошо, что сложно - зато чему-то научитесь.
Давайте не ленитесь, осваивайте новое, разобраться со сдвиговым регистром - задачка на один вечер
 
  • Лойс +1
Реакции: Dubolom

Dubolom

✩✩✩✩✩✩✩
2 Фев 2021
77
0
Я вот смотрю в сторону расширителя портов - pcf8574
Что лучше - pcf8574 или ESP32.
Какие у ЕСП32 ещё плюсы?
Может минусы?
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,272
1,303
Москва
сдвиговый совсем не сложно на самом деле.
Но тут надо понимать байты и биты. Для вашего случая надо 6 биты выставить так, как должны быть установлены все реле в данный момент бит 1 будет включать реле, бит 0 выключать.
 

Dubolom

✩✩✩✩✩✩✩
2 Фев 2021
77
0
а вот про это что скажете TX и RX попробовать назначить как выходы или i2c

C++:
//********** CHANGE PIN FUNCTION  TO GPIO **********
//GPIO 1 (TX) swap the pin to a GPIO.
pinMode(1, FUNCTION_3);
//GPIO 3 (RX) swap the pin to a GPIO.
pinMode(3, FUNCTION_3);
взято отсюда

Мне сериалПорт не особо важен, т.к ещё использую Блинк, а там свой терминал есть - могу им заменить СериалПорт
Если проблема только в этом - меня бы устроило.
 

Dubolom

✩✩✩✩✩✩✩
2 Фев 2021
77
0
возьмите есп32, у нее больше пинов.
99% надо на неё переходить.. от ADS1115 избавлюсь. И потом ещё пару мыслей по тюнингу если придут и опять в тупик зайду.

байты и биты сложновато для меня. пока не Готов.

Какую ЕСП 32 лучше взять?
36pin видел,
38 пин видел
ESP-WROOM-32 видел

Плату расширения видел только под WROOM (может смотрел плохо) А без неё не удобно...
Вы то с опытом - что взять?)
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,272
1,303
Москва
У мегя лишь одна есп32 , брал совсем давно и особо ей н епользовался. Но точно знаю , что она лучше есп8266: то, на чем заикалась 66-ая, 32 делала легко и непринужденно.
 
  • Лойс +1
Реакции: Dubolom

bort707

★★★★★★✩
21 Сен 2020
3,067
916
Но точно знаю , что она лучше есп8266: то, на чем заикалась 66-ая, 32 делала легко и непринужденно.
еще бы, например у ЕСП32 два независимых ядра. пока одно крутит пользовательский скетч. другое НЕЗАВИСИМО работает с вайфаем
 
  • Лойс +1
Реакции: Dubolom

Dubolom

✩✩✩✩✩✩✩
2 Фев 2021
77
0
Сказано - сделано)
2 штуки esp32 wroom 32 заказно.
Сейчас и вемосы и нодМцу и ардуинки будут наполнять бездонный ящик пройденного хлама с Али))
Пока продолжаем работать со скетчем..
Сейчас порешаем с опросом аналоговых датчиков в соседней теме ( не зря же её создавал))
Потом думать над красотой и логикой скетча - тюнить чем то может ещё.

Всем помогавшим респект и удачи..
Как эту тему пометить как решенная?