Показано с 1 по 7 из 7
  1. #1
    Новичок
    Регистрация
    30.03.2012
    Возраст
    43
    Сообщений
    4
    Вес репутации
    0

    По умолчанию Регулятор громкости Arduino с памятью

    Добрый день!
    Использую данную схему http://cxem.net/arduino/arduino8.php в качестве регулятора громкости.
    Все бы хорошо, но после отключения питания, громкость включается в среднем положении.
    Подскажите, пожалуйста, можно ли доработать прошивку:


    /*
    ** Энкодер
    ** Для управлением яркостью LED используется энкодер Sparkfun
    */

    int brightness = 120; // яркость LED, начинаем с половины
    int fadeAmount = 10; // шаг изменения яркости LED
    unsigned long currentTime;
    unsigned long loopTime;
    const int pin_A = 12; // pin 12
    const int pin_B = 11; // pin 11
    unsigned char encoder_A;
    unsigned char encoder_B;
    unsigned char encoder_A_prev=0;

    void setup() {
    // declare pin 9 to be an output:
    pinMode(9, OUTPUT); // устанавливаем pin 9 как выход
    pinMode(pin_A, INPUT);
    pinMode(pin_B, INPUT);
    currentTime = millis();
    loopTime = currentTime;
    }

    void loop() {
    currentTime = millis();
    if(currentTime >= (loopTime + 5)){ // проверяем каждые 5мс (200 Гц)
    encoder_A = digitalRead(pin_A); // считываем состояние выхода А энкодера
    encoder_B = digitalRead(pin_B); // считываем состояние выхода А энкодера
    if((!encoder_A) && (encoder_A_prev)){ // если состояние изменилось с положительного к нулю
    if(encoder_B) {
    // выход В в полож. сост., значит вращение по часовой стрелке
    // увеличиваем яркость, не более чем до 255
    if(brightness + fadeAmount <= 255) brightness += fadeAmount;
    }
    else {
    // выход В в 0 сост., значит вращение против часовой стрелки
    // уменьшаем яркость, но не ниже 0
    if(brightness - fadeAmount >= 0) brightness -= fadeAmount;
    }

    }
    encoder_A_prev = encoder_A; // сохраняем значение А для следующего цикла

    analogWrite(9, brightness); // устанавливаем яркость на 9 ножку

    loopTime = currentTime;
    }
    }


    Чтобы Arduino помнил последний уровень громкости и включался с ним?

    Заранее благодарен!

  2. #2
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,376
    Вес репутации
    10

    По умолчанию Re: Регулятор громкости Arduino с памятью

    Вот такой вариант http://www.compcar.ru/forum/showthread.php?t=5148

  3. #3
    Новичок
    Регистрация
    30.03.2012
    Возраст
    43
    Сообщений
    4
    Вес репутации
    0

    По умолчанию Re: Регулятор громкости Arduino с памятью

    Цитата Сообщение от Chip Посмотреть сообщение
    Вот такой вариант http://www.compcar.ru/forum/showthread.php?t=5148
    Спасибо! Наверное это то, что нужно, но я, почитав все 14 страниц, так к сожалению и не понял, что мне сделать, чтобы моя платка запоминала уровень звука.
    В программировании я почти ничего не понимаю, можно по подробнее (по пунктам) для альтернативно одаренных?

  4. #4
    Новичок
    Регистрация
    20.06.2011
    Сообщений
    9
    Вес репутации
    159

    По умолчанию Re: Регулятор громкости Arduino с памятью

    Цитата Сообщение от AlexVr Посмотреть сообщение
    Спасибо! Наверное это то, что нужно, но я, почитав все 14 страниц, так к сожалению и не понял, что мне сделать, чтобы моя платка запоминала уровень звука.
    В программировании я почти ничего не понимаю, можно по подробнее (по пунктам) для альтернативно одаренных?
    В программировании всё-таки придётся разбираться. Ну, или ждать пока тебе дадут готовое решение.
    Особой сложности в реализации нет - при изменении уровня громкости нужно записывать значение в память ардуины, а при включении - оттуда считывать.

  5. #5
    Новичок
    Регистрация
    30.03.2012
    Возраст
    43
    Сообщений
    4
    Вес репутации
    0

    По умолчанию Re: Регулятор громкости Arduino с памятью

    Мне остается только ждать
    Может кто-нибудь выручит?

  6. #6
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,376
    Вес репутации
    10

    По умолчанию Re: Регулятор громкости Arduino с памятью

    Для запоминания можно использовать библиотеку eeprom.h
    пример
    PHP код:
    #include <EEPROM.h>
    int addr 0//адрес в EEPROM

    void setup()
    {
      
    byte val EEPROM.read(addr); // считываем значение из EEPROM
      
    EEPROM.write(addrval+1);// записываем значение в EEPROM
    }

    void loop()
    {


    Последний раз редактировалось Chip; 30.03.2012 в 23:40.

  7. #7
    Новичок
    Регистрация
    30.03.2012
    Возраст
    43
    Сообщений
    4
    Вес репутации
    0

    По умолчанию Re: Регулятор громкости Arduino с памятью

    Еще раз Спасибо, буду разбираться как это в исходную программку внедрить.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •