ARDUINO I2C BUS LED DIMMING SHIELD
2012/07/06 16:35
瀏覽498
迴響0
推薦1
引用0
ARDUINO I2C BUS LED DIMMING SHIELD
單色LED漸亮與漸暗實驗,沒用腳架...抖抖抖...
程式範例 1-1(IDE 1.0.1)
#include <Wire.h>
unsigned char i;
void setup()
{
}
void loop()
{
for(i=0; i<255; i++)
{
SetLed();
delay(10);
}
for(i=255; i>0; i--)
{
SetLed();
delay(10);
}
}
void SetLed(void)
{
Wire.begin();
Wire.beginTransmission(0x61);
Wire.write(0x12);
Wire.write(0);
Wire.write(i);
Wire.write(0);
Wire.write(255-i);
Wire.write(0xAA);
Wire.write(0xAA);
Wire.write(0xFF);
Wire.write(0xFF);
Wire.endTransmission();
}
驅動七段顯示器實驗
程式範例 2-1(IDE 1.0.1)
#include <Wire.h>
// 0 - 9
unsigned int LED_NUM[] = {0x0555, 0x0014, 0x1145, 0x1055, 0x1414, 0x1451, 0x1550, 0x0015, 0x1555, 0x1415};
unsigned char i;
void setup()
{
}
void loop()
{
for(i=0; i<100; i++)
{
SetLedNum(i);
delay(200);
}
}
void SetLedNum(unsigned char NUM)
{
unsigned char LED, a, b;
Wire.begin();
Wire.beginTransmission(0x61);
Wire.write(0x16);
// DS1
a = NUM %10;
LED = LED_NUM[a] & 0xFF;
Wire.write(LED);
LED = LED_NUM[a] >> 8 & 0xFF;
Wire.write(LED);
// DS2
b = NUM / 10;
LED = LED_NUM[b] & 0xFF;
Wire.write(LED);
LED = LED_NUM[b] >> 8 & 0xFF;
Wire.write(LED);
Wire.endTransmission();
}
RGB全彩LED實驗,綠色被相機濾掉...
程式範例 3-1(IDE 1.0.1)
#include <Wire.h>
void setup()
{
}
void loop()
{
LedOnTest();
}
void LedOnTest(void)
{
//All LED turn RED
Wire.begin();
Wire.beginTransmission(0x60);
Wire.write(0x16);
Wire.write(0x41);
Wire.write(0x10);
Wire.write(0x04);
Wire.write(0x01);
Wire.endTransmission();
delay(1000);
//All LED turn GREEN
Wire.begin();
Wire.beginTransmission(0x60);
Wire.write(0x16);
Wire.write(0x04);
Wire.write(0x41);
Wire.write(0x10);
Wire.write(0x04);
Wire.endTransmission();
delay(1000);
//All LED turn BLUE
Wire.begin();
Wire.beginTransmission(0x60);
Wire.write(0x16);
Wire.write(0x10);
Wire.write(0x04);
Wire.write(0x41);
Wire.write(0x10);
Wire.endTransmission();
delay(1000);
//All LED turn YELLOW (RED + GREEN)
Wire.begin();
Wire.beginTransmission(0x60);
Wire.write(0x16);
Wire.write(0x41 | 0x04);
Wire.write(0x10 | 0x41);
Wire.write(0x04 | 0x10);
Wire.write(0x01 | 0x04);
Wire.endTransmission();
delay(1000);
//All LED turn MAGENTA (RED + BLUE)
Wire.begin();
Wire.beginTransmission(0x60);
Wire.write(0x16);
Wire.write(0x41 | 0x10);
Wire.write(0x10 | 0x04);
Wire.write(0x04 | 0x41);
Wire.write(0x01 | 0x10);
Wire.endTransmission();
delay(1000);
//All LED turn AQUAMARINE (GREEN + BLUE)
Wire.begin();
Wire.beginTransmission(0x60);
Wire.write(0x16);
Wire.write(0x04 | 0x10);
Wire.write(0x41 | 0x04);
Wire.write(0x10 | 0x41);
Wire.write(0x04 | 0x10);
Wire.endTransmission();
delay(1000);
//All LED turn WHITE (RED + GREEN + BLUE)
Wire.begin();
Wire.beginTransmission(0x60);
Wire.write(0x16);
Wire.write(0x41 | 0x04 | 0x10);
Wire.write(0x10 | 0x41 | 0x04);
Wire.write(0x04 | 0x10 | 0x41);
Wire.write(0x01 | 0x04 | 0x10);
Wire.endTransmission();
delay(1000);
}
程式範例 3-2(IDE 1.0.1)
#include <Wire.h>
unsigned char i;
void setup()
{
}
void loop()
{
for(i=0; i<255; i++)
{
SetLed();
delay(10);
}
for(i=255; i>0; i--)
{
SetLed();
delay(10);
}
}
void SetLed(void)
{
Wire.begin();
Wire.beginTransmission(0x60);
Wire.write(0x12);
Wire.write(0);
Wire.write(i);
Wire.write(0);
Wire.write(255-i);
Wire.write(0x02);
Wire.write(0x02);
Wire.write(0x2A);
Wire.write(0x22);
Wire.endTransmission();
}
你可能會有興趣的文章:


