Если Вы заинтересованы в моих переводах и хотите меня отблагодарить, то кликните всего на одной ссылке в блоке Оплаченная Реклама

четверг, 29 сентября 2011 г.

Button


Button

Кнопки и переключатели соединяют две точки цепи при нажатии на них. Этот пример включает встроенный светодиод на контакте 13, когда вы нажимаете на кнопку.

Необходимое оборудование


  • плата Arduino
  • тактовая кнопка или переключатель
  • резистор 10 кОм
  • макетная плата
  • перемычки

  • Цепь

    Подключите три провода к плате Arduino. Первые два, красный и черный, подключение к двух длинных вертикальных рядов на стороне плате для предоставления доступа к 5 вольт питания и землей. Третий провод идет от цифрового контакт 2 одна нога кнопки. В том же нога кнопки подключается с помощью выпадающего резистор (здесь 10 кОм ) на землю. Другая нога от кнопки подключается к 5 вольт питания.

    Когда кнопка открыта (unpressed) нет никакой связи между этими двумя ногами кнопки, так что вывод подключен к земле (через выпадающее резистор), и мы читаем LOW. При нажатии на кнопку закрытия (нажата), это делает связь между его двумя ногами, подключением вывода до 5 вольт, так что мы читаем HIGH.

    Вы также можете проволоки эта схема в обратном направлении, с подтягивающий резистор соответствии вход HIGH, LOW и будет, когда нажата кнопка. Если так, то поведение эскиз будет пересмотрено, с светодиодной нормально и выключение при нажатии кнопки.

    Если вы отключите цифровой ввода / вывода по всему, индикатор может мигать беспорядочно. Это потому, что вход «плавающей» - то есть, он будет случайным образом возвращать либо высоким или низким. Именно поэтому вам нужно подтягивающий или выпадающее резистор в цепь.

    Схема


    Код

    const int buttonPin = 2;
    const int ledPin =  13;

    int buttonState = 0;

    void setup() {
      pinMode(ledPin, OUTPUT);
      pinMode(buttonPin, INPUT);  
    }

    void loop(){
      buttonState = digitalRead(buttonPin);

      if (buttonState == HIGH) {
        digitalWrite(ledPin, HIGH);
      }
      else {
        digitalWrite(ledPin, LOW);
      }
    }

    среда, 28 сентября 2011 г.

    Blink Without Delay


    Blink Without Delay

    Иногда вам нужно делать две вещи одновременно. Например, вы можете мигать светодиодом (или некоторые другие требовательные к процессорному времени функции) пока считывается нажатие кнопки или другие данные. В этом случае, вы не можете использовать delay () , или вам придется  остановить все остальные программы, а индикатор моргнул. Программа может пропустить нажатие кнопки, если она происходит во время delay (). Этот скетч показывает, как мигать индикатором без использования delay () . Он следит когда Arduino переключил светодиод последний раз. Затем каждый раз через loop () , он проверяет, достаточно ли прошло времени. Если достаточно, он переключает индикатор (включен или выключен).

    Необходимое оборудование



  • плата Arduino
  • светодиод

  • Цепь

    Чтобы построить схему, возьмите светодиод и подключите его длинную, положительную ногу (т. н. анод) к контакту 13. Подцепите  отрицательную ногу (т. н. анод) на землю. Затем подключите вашу плату Arduino на ваш компьютер, запустите программу Arduino и введите код.

    Схема


    Код

    Код ниже использует millis (), функцию, которая возвращает количество миллисекунд, прошедших со старта текущей программы на плате Arduino для мигания светодиода.
    const int ledPin =  13;

    int ledState = LOW;
    long previousMillis = 0;

    long interval = 1000;

    void setup() {
      pinMode(ledPin, OUTPUT);    
    }

    void loop()
    {
      unsigned long currentMillis = millis();

      if(currentMillis - previousMillis > interval) {
        previousMillis = currentMillis;

        if (ledState == LOW)
          ledState = HIGH;
        else
          ledState = LOW;

        digitalWrite(ledPin, ledState);
      }
    }

    вторник, 27 сентября 2011 г.

    Fade

    Fade

    Демонстрирует использование функции analogWrite ()  для включения и выключения светодиода. analogWrite использует широтно-импульсную модуляцию (ШИМ) , включая и выключая цифровой выход очень быстро, чтобы создать эффект затухания.

    Необходимое оборудование


  • плата Arduino
  • макетная плата
  • светодиод
  • резистор 220 Ом

  • Цепь

    Подключите анод (длинная, положительная нога) вашего светодиода на цифровой выход 9 на Arduino через 220 Ом. Подключите катод (короткая, отрицательная нога) непосредственно к земле.

    Схема


    Код

    После объявления контакта 9, чтобы был вашим ledPin , нечего делать в функции setup()кода. В функции AnalogWrite (), которая будет использоваться в основном цикле вашего кода требуется два аргумента: один говорит функции какой выход использовать, и один указывает значение ШИМ для записи.
    Для того, чтобы менять состояние светодиода с выключенного на включенный, постепенно изменяйте  значение ШИМ от 0 (полностью выключен) до 255 (включен), а затем обратно до 0 для завершения цикла. В скетче ниже, значение ШИМ устанавливается с помощью переменной brightness. Каждый цикл brightness увеличивается на значение переменной fadeAmount .
    Если brightness достигает среднего значения  (0 или 255), то fadeAmount меняется свое значение на противоположное. Другими словами, если fadeAmount равно 5, то  он устанавливается в -5.

    analogWrite () может изменить значение ШИМ очень быстро, поэтому задержка в конце скетча позволяет нам заметить это изменение. Попробуйте изменить значение задержки и посмотреть, как он меняет программу.
    int brightness = 0;
    int fadeAmount = 5;

    void setup()  {
      pinMode(9, OUTPUT);
    }

    void loop()  {
      analogWrite(9, brightness);  

      brightness = brightness + fadeAmount;

      if (brightness == 0 || brightness == 255) {
        fadeAmount = -fadeAmount ;
      }
      delay(30);                          
    }