Поворотник для велика, на digispark attiny85

Тема в разделе "Arduino & Shields", создана пользователем Zaur, 30 май 2020.

  1. Zaur

    Zaur Нуб

    Всем здарова! Хотел сделать поворотники для велика, на Digispark. У каждого светодиода есть своя кнопка. Нажимаешь на правою мигает правый светодиод, на левую кнопку левый. Но что-то не получилось(. Я нажимая на любую из 2х кнопок а моргают все 2 светодиода. Библеотека OneButtone.
    Принцип работы:Нажимаешь правою кнопку и моргает правый светодиод, нажимаешь на эту же кнопку он выключается. Также и с левой.

    Скетч:
    Код (C++):
    #include "OneButton.h"

    typedef enum {
      ACTION_OFF1,  // Выключить сведотдиод1
      ACTION_ON1, // Включить светодиод1
      ACTION_FAST1, // Быстро моргать1
      ACTION_ON2, // Включить светодиод2
      ACTION_OFF2, // Выключить сведотдиод2
      ACTION_FAST2, // Быстро моргать2
    }

    MyActions;

    OneButton button1(3, true); //Кнопка1 подключена к 3 пину
    OneButton button2(4, true); //Кнопка2 подключена к 4 пину

    MyActions nextAction1 = ACTION_OFF1; //Выключенный светодиод
    MyActions nextAction2 = ACTION_OFF2; //Выключенный светодиод

    void setup() {
      pinMode(2, OUTPUT); // Светодиод подключен к 2 пину
      pinMode(1, OUTPUT); // Светодиод подключен к 1 пуну
      button1.attachClick(ClickFunction1);
      button2.attachClick(ClickFunction2);
    }

    void loop() {
      unsigned long now1 = millis();
      unsigned long now2 = millis();

      button1.tick();
      button2.tick();

      delay(10);

      if (nextAction1 == ACTION_OFF1) {
        // ничего не делать
        digitalWrite(1, LOW);
      } else if (nextAction1 == ACTION_ON1) {
        // Включить светодиод
        digitalWrite(1, HIGH);
      }
      else if (nextAction1 == ACTION_FAST1) {
        // Быстро моргать
        if (now1 % 200 < 100) { // Частота моргания
          digitalWrite(1, LOW);
        } else {
          digitalWrite(1, HIGH);
        } // if
      } // if

      if (nextAction2 == ACTION_OFF2) {
        // // Ничего неделать
        digitalWrite(2, LOW);
      } else if (nextAction2 == ACTION_ON2) {
        // Включить светодиод
        digitalWrite(2, HIGH);
      } else if (nextAction2 == ACTION_FAST2) {
        // Быстро моргать
        if (now2 % 200 < 100){ // Частота моргания
          digitalWrite(2, LOW);
        } else {
          digitalWrite(2, HIGH);
        } // if
      } // if
    } //loop

    void ClickFunction1() {
      if (nextAction1 == ACTION_OFF1) {
        nextAction1 = ACTION_ON1;
        nextAction1 = ACTION_FAST1;

      } else if (nextAction1 == ACTION_FAST1) {
        nextAction1 = ACTION_OFF1;
      } // if
    } // ClickFunction1


    void ClickFunction2() {
      if (nextAction2 == ACTION_OFF2) {
        nextAction2 = ACTION_ON2;
        nextAction2 = ACTION_FAST2;

      } else if (nextAction2 == ACTION_FAST2) {
        nextAction2 = ACTION_OFF2;
      } // if
    } // ClickFunction2
     
  2. Ariadna-on-Line

    Ariadna-on-Line Гуру

    1. Сто процентов будете забывать выключить поворотник. Видено тысячекратно. Сделайте автовыключение секунд через 20-30.
    2. Если забыли выключить правый и включили левый ? Или наоборот ?
    ПС. Взял Иванушка посох и пошел куда глаза глядят. Шел-шел да и порвался, потому что был он косоглазым.
     
    Последнее редактирование: 31 май 2020
  3. Airbus

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

    О майн год!Едрен—батон!Зачем Digispark?Зачем там библиотека один бутон.h?Совсем народ обленился и блинкать разучился
     
  4. я видимо старомоден, ибо показываю поворот рукой...
     
    Simon нравится это.
  5. issaom

    issaom Гуру

    Это типа геркон на раму, на колесо пару магнитикоФ, и тумблер на руль ?
     
  6. Типа берем мигающие светодиоды, через трех позиционный выключатель подаем на них питание??? ладно, мигалку на ne555 и обычные светодиоды.
     
    issaom нравится это.
  7. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Геркон как прерыватель ? Тогда без движения мигать не будет. А как же тогда поймут куда вы со старта рванете ? Давным-давно идея электрифицирования (и поворотников тоже) на велике известна. Но после нескольких недель развлекухи она всем абсолютно надоедает. Велосипед вроде удочки для рыбака. Две педали, дорога и никаких забот о батарейках, аккумуляторах, проводке и тп фигне. Проверено на себе )))))
     
    Последнее редактирование: 2 июн 2020
    parovoZZ и Airbus нравится это.
  8. issaom

    issaom Гуру

    Это было написано в старинном советском журнале. Не было тогда ни мигающих светодиодов ни ардуин )))
     
  9. Airbus

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

    Звер вон руками показывает
     
  10. issaom

    issaom Гуру

    velopovorot-1 (1).jpg
    Но рукой лучше )))
     
  11. parovoZZ

    parovoZZ Гуру

    А ГТ402 откуда сдернуть?
     
  12. Airbus

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

    У меня есть полкило.Могу один подарить))))А вообще заменить любым pnp Кт814 например или аналогом чужеземным
     
    issaom нравится это.