Что за хрень ?)))

Тема в разделе "Флудилка", создана пользователем lifi, 25 июн 2021.

  1. lifi

    lifi Нуб

    ток вместо кнопки я переключаю рукой))))
    это моя суперспособность ?)))
    примерная схема подключения
    [​IMG]
    [​IMG]


    Код (C++):
    #define BLED 9                                         //9 контакт для синего вывода RGB-светодиода
    #define GLED 10                                        //10 контакт для зеленого вывода RGB-светодиода
    #define RLED 11                                        //11 контакт для красного вывода RGB-светодиода
    #define BUTTON 2                                       //2 контакт для кнопки

       boolean lastButton = LOW;                              //предыдущее состояние кнопки
       boolean currentButton = LOW;                           //текущее состояние кнопки
       int ledMode = 0;                                       //статус  RGB-светодиода
     
      void setup()
      {
        pinMode (BLED, OUTPUT);                              //Устанавливаем контакт BLED(Blue LED, т.е 9 контакт) как выход
        pinMode (GLED, OUTPUT);                              //Устанавливаем контакт GLED(Green LED, т.е 9 контакт) как выход
        pinMode (RLED, OUTPUT);                              //Устанавливаем контакт RLED(Red LED, т.е 9 контакт) как выход
        pinMode (BUTTON, INPUT);                             //Устанавливаем контакт BUTTON(т.е. 2 контакт) как вход(опционально)
      }

      void loop()
      {
        currentButton = debounce(lastButton);                //считываем состояние кнопки с применением "антидребезга"
        if (lastButton == LOW && currentButton == HIGH)      //если кнопка была нажата
        {
          ledMode++;                                         //инкрементируем значение переменной
        }
        lastButton = currentButton;                          //сохраняем текущее состояние кнопки в предыдущее
     
        if (ledMode == 9) ledMode = 0;                      //если прошли по циклу все режимы свечения светодиода, делаем сброс до 0
        setMode(ledMode);                                   //изменить режим светодиода
      }

      boolean debounce(boolean last)
      {
        boolean current = digitalRead(BUTTON);             //считываем состояние кнопки
        if (last != current)                               //если есть изменения
        {
          delay(5);                                        //ждем 5мс
          current = digitalRead(BUTTON);                   //считываем состояние кнопки
        }
        return current;                                    //возвращаем, считанное состояние кнопки
      }


    void setMode(int mode) {
    if (mode == 1) {
    analogWrite(RLED, 255);
    analogWrite(GLED, 0);
    analogWrite(BLED, 0); }
        //Зеленый
    else if (mode == 2) {
    analogWrite(RLED, 0);
    analogWrite(GLED, 255);
    analogWrite(BLED, 0); }
        //Синий
    else if (mode == 3) {
    analogWrite(RLED, 0);
    analogWrite(GLED, 0);
    analogWrite(BLED, 255); }
    //Пурпурный(Красный + Синий)
    else if (mode == 4) {
    analogWrite(RLED, 255);
    analogWrite(GLED, 165);
    analogWrite(BLED, 0); }
        //Бирюзовый(Синий + Зеленый)
    else if (mode == 5) {
    analogWrite(RLED, 0);
    analogWrite(GLED, 255);
    analogWrite(BLED, 255); }

    else if (mode == 6) {
    analogWrite(RLED, 255);
    analogWrite(GLED, 255);
    analogWrite(BLED, 0); }
       
    else if (mode == 7) {
    analogWrite(RLED, 255);
    analogWrite(GLED, 255);
    analogWrite(BLED, 255); }

    else if (mode == 8) {
    analogWrite(RLED, 255);
    analogWrite(GLED, 0);
    analogWrite(BLED, 255); }
    //Выключен
    else
    { digitalWrite(RLED, LOW);
      digitalWrite(GLED, LOW);
      digitalWrite(BLED, LOW); }
    }
     
  2. Рокки1945

    Рокки1945 Гуру

    надо вход на общий через резистор - там где кнопка - стянуть
    P.S. а вот мне мама говорила когда я был маленький - что ревит горстями есть нельзя - а то вырастут тити как у тётенек
     
    NikitOS нравится это.
  3. Airbus

    Airbus Радиохулиган Модератор

    Наводки от LED ламп + хреновые контакты. Вот и все чюдодейство
     
    NikitOS нравится это.
  4. akl

    akl Гуру

    добавь в сетапе
    digitalWrite (BUTTON, HIGH);
     
  5. parovoZZ

    parovoZZ Гуру

    стягивают болт с гайкой, а потенциал подтягивают. И не важно куда.
     
  6. Рокки1945

    Рокки1945 Гуру

    началось в колхозе имени Леонида Ильича - утро - хорошо что я баиньки - Паровозз - айда спать - завтра дотрещим
     
    parovoZZ нравится это.