[Intel Edison Breakout board & Node.js] PWM으로 LED 밝기 조절

3843 단어 Node.jsEdison

작업 환경

  • MacBook Air (13-inch, Mid 2012) & Mac OS 10.11
  • Intel Edison Breakout Board & Poky (Yocto Project Reference Destro) 1.7.2
  • 사이트 축소판 그림

  • Intel Edison(Breakout Board Kit)의 L천 플라워
  • 기본 L 토치카
  • iotapp-template-pwm/main.js at master · gomobile/iotapp-template-pwm
  • PWM 참조 프로그램
  • mraa: Intel Edison
  • 판매의 역할과 명칭 확인
  • 용도별 일람표-Qita
  • 용도에 따라 상술한 인발을 분류했다
  • 1. Intel XDK IoT Edition 없이 LED 켜기


    이전에는 Intel XDK IoT Edition 을 사용해 프로그램을 만들었지만, 왜 사용할 수 없었는지 알 수 없습니다.
    딱 좋은 기회니까 터치로 터치해봐.
    먼저 샘플 프로그램을 저장하는 폴더로 이동합니다.
    terminal
    cd /usr/share/mraa/examples/javascript
    
    다음에 프로그램을 만들고 vi에서 엽니다.
    terminal
    vi blink.js
    
    다음 프로그램을 쓰고 저장하고 vi를 끝냅니다.
    node.js
    var mraa = require('mraa'); //require mraa
    console.log('MRAA Version: ' + mraa.getVersion()); //write the mraa version to the Intel XDK console
    
    var myOnboardLed = new mraa.Gpio(14);
    myOnboardLed.dir(mraa.DIR_OUT); //set the gpio direction to output
    var ledState = true; //Boolean to hold the state of LedperiodicActivity(); //call the periodicActivity functionfunction periodicActivity()
    {
      myOnboardLed.write(ledState?1:0); //if ledState is true then write a '1' (high) otherwise write a '0' (low)
      ledState = !ledState; //invert the ledState
      setTimeout(periodicActivity,1000); //call the indicated function after 1 second (1000 milliseconds)
    }
    
    다음 명령을 사용하여 프로그램을 실행합니다.
    terminal
    node blink.js
    
    Breakout Board 후면에 LED 연결
  • J18-1pin->LED+(다리 긴 쪽)
  • J19-3pin->LED(다리 짧은 쪽)
  • 1초에 한 번씩 LED가 깜박입니다.(영상은 프로그램 수정 전에 J18-2pin에 연결되었다.)
    LED를 포트에 직접 연결하기 때문에 LED 종류에 따라 전류가 부족해 빛을 발하지 못하는 경우가 있다.(이번에는 빨간색을 사용했는데 흰색이면 점이 없어요.)

    프로그램의 끝은ctrl + z이다.

    2. 프로그램 변경 PWM으로 LED 밝기 변경


    다른 프로그램을 만들고 vi에서 엽니다.
    terminal
    vi ledpwm.js
    
    다음 프로그램을 쓰고 저장하고 vi를 끝냅니다.(vi의 사용 방법은 다른 사이트를 참조하세요)
    node.js
    var mraa = require('mraa'); //require mraa
    //Initialize PWM on Digital Pin #1 (D1) and enable the pwm pin
    var pwm1 = new mraa.Pwm(14);
    pwm1.enable(true);
    
    //set the period in microseconds.
    pwm1.period_us(2000);
    var value = 0.0;
    
    setInterval(function () {
        if (value >= 1.0) {
            value = 0.0;
        }
        value = value + 0.03;
        pwm1.write(value); //Write duty cycle value.
        console.log(pwm1.read());//read current value that is set before.
    }, 100);
    
    다음 명령을 사용하여 프로그램을 실행합니다.
    terminal
    node ledpwm.js
    
    Breakout Board 후면에 LED를 연결합니다.
  • J18-1pin->LED+(다리 긴 쪽)
  • J19-3pin->LED(다리 짧은 쪽)
  • LED가 점점 밝아지면서 terminal에도 수치를 출력합니다.

    좋은 웹페이지 즐겨찾기