2011年12月6日 星期二

小書和74HC595N的作業

Arduino小書兩枚
兩顆Shift Register控制10 pin LED Bar 一
兩顆Shift Register控制10 pin LED Bar 二
我實在沒天賦把線剪的弄的一模一樣照起來又漂亮又整齊(@@")。用兩個shift register來控制10 pin LED Bar,這樣就只會用到Arduino Uno三個Pin(不算Vcc和GND)。目前體驗到關鍵點在於
  1. Shift Register的接法,第一顆的Q7' (Q7S)腳位接到第二顆的DS腳位,第二顆的ST_CP, SH_CP都分別和第一顆接起來。
  2. 要送出去的資料會用到highByte()lowByte這兩個method,順序是high byte部分先送,再送low byte。
void loop() {
  
  // 1024 = 2^10
  for( int numberToDisplay = 0; numberToDisplay < 1024; numberToDisplay++ ) {
    byte high_byte = highByte( numberToDisplay );
    byte low_byte = lowByte( numberToDisplay );
    Serial.println( numberToDisplay );
    digitalWrite( LATCH_PIN, LOW );
    // bitOrder: which order to shift out the bits; either MSBFIRST or LSBFIRST.
    // (Most Significant Bit First, or, Least Significant Bit First)
    shiftOut( DATA_PIN, CLOCK_PIN, MSBFIRST, high_byte );
    shiftOut( DATA_PIN, CLOCK_PIN, MSBFIRST, low_byte );
    
    digitalWrite( LATCH_PIN, HIGH );
    
    delay( 500 );
  }
}
弄好已經太晚就沒有繼續做加上可變電阻將analogRead()的值透過map()把比例顯示在LED Bar上。

沒有留言:

張貼留言