регулировка яркости светодиода.

Тема в разделе "Глядите, что я сделал", создана пользователем ser4ik, 13 фев 2012.

  1. mans

    mans Нуб

    Вообще, смысл затеи был в том чтобы управлять скоростью вращения сервы при помощи двух кнопок, при нажатии одной кнопки скорость увеличивается на 10 ms при помощи второй кнопки скорость снижается на 10 ms, проблема в том, что delay "мешает" нажатию кнопки. Думается что применение таймеров может решить проблемку. Вот отрывок скетча. И строго не судите пожалуйста, все-таки новичок)...

    for(pos = 1; pos < 45; pos += 1)
    {
    if (ledLevel == 0) myservo.detach();
    if (ledLevel == 51)
    {
    myservo.attach(1);
    m = 50;
    }
    if (ledLevel == 102) m = 40;
    if (ledLevel == 153) m = 30;
    if (ledLevel == 204) m = 20;
    if (ledLevel == 255) m = 10;
    myservo.write(pos);

    delay(m);
    }
    for(pos = 45; pos>=1; pos-=1)
    {
    if (ledLevel == 0) myservo.detach();
    if (ledLevel == 51)
    {
    myservo.attach(1);
    m = 50;
    }
    if (ledLevel == 102) m = 40;
    if (ledLevel == 153) m = 30;
    if (ledLevel == 204) m = 20;
    if (ledLevel == 255) m = 10;
    myservo.write(pos);
    delay(m);
    }
     
  2. pyro

    pyro Гик

    if (!digitalRead(BT1)&&digitalRead(BT2))
    объясните пожалуйста, что значит это выражение? прошу не ругайтесь я только пытаюсь понять.
     
  3. Unixon

    Unixon Оракул Модератор

    Значит "Если ( (НЕТ сигнала с пина BT1) И есть сигнал с пина BT2)"
     
  4. pyro

    pyro Гик

    Мои пять копеек. Если вставить строчку
    if (!digitalRead(BT1) && !digitalRead(BT2) && A < 255)
    A = 0;
    можно быстро погасить светодиод нажатием на две кнопки сразу.