|
1,控制LED閃爍的小程序
int led = 13;
// 復(fù)位后初始化內(nèi)容
void setup() {
// 初始化數(shù)字端口為輸出模式
pinMode(led, OUTPUT);
}
// 主循環(huán)
void loop() {
digitalWrite(led, HIGH); // led引腳置高電平
delay(1000); // 延時(shí)1秒
digitalWrite(led, LOW); // led引腳變?yōu)榈碗娖?br />
delay(1000); // 延時(shí)1秒
}
2、控制LED閃爍的小程序
int led = 13;
// 復(fù)位后初始化內(nèi)容
void setup() {
// 初始化數(shù)字端口為輸出模式
pinMode(led, OUTPUT);
}
// 主循環(huán)
void loop() {
digitalWrite(led, HIGH); // led引腳置高電平
delay(100); // 延時(shí)100ms
digitalWrite(led, LOW); // led引腳變?yōu)榈碗娖?br />
delay(100); // 延時(shí)100ms
digitalWrite(led, HIGH); // led引腳置高電平
delay(100); // 延時(shí)100ms
digitalWrite(led, LOW); // led引腳變?yōu)榈碗娖?br />
delay(1000); // 延時(shí)100ms
}
3、定時(shí)器閃爍LED燈
const int ledPin = 13; // led連接的引腳,標(biāo)準(zhǔn)的uno開發(fā)板上已經(jīng)集成
// 變量
int ledState = LOW; // led狀態(tài),亮或者滅,可以修改
long previousMillis = 0; // 存儲最后一次的led狀態(tài)
// 這里使用了長整型變量,因?yàn)槭褂昧薽s,瞬間的數(shù)值變化非常大。
long interval = 1000; // 間隔閃爍的時(shí)間長度
void setup() {
// 初始化引腳輸出模式
pinMode(ledPin, OUTPUT);
}
void loop()
{
// 這里可以添加其他的程序
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > interval) {
// 保存當(dāng)前值,方便下次再次和當(dāng)前時(shí)間比較
previousMillis = currentMillis;
// 如果led熄滅就把它點(diǎn)亮,反之亦然
if (ledState == LOW)
ledState = HIGH;
else
ledState = LOW;
// 把對應(yīng)的LED狀態(tài)反應(yīng)到led引腳上。
// 之前都是用變量再處理,處理完成后把最終結(jié)果輸出到終端。
digitalWrite(ledPin, ledState);
}
}
4、八位LED簡易流水燈
// 引腳定義
const int ledCount = 8; // led個(gè)數(shù)
int ledPins[] = {
0,1,2, 3, 4, 5, 6, 7, }; // 對應(yīng)的led引腳
void setup() {
// 循環(huán)設(shè)置,把對應(yīng)的led都設(shè)置成輸出
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
pinMode(ledPins[thisLed], OUTPUT);
}
}
void loop() {
// 熄滅所有l(wèi)ed,不同的電路連接也會得到點(diǎn)亮所有l(wèi)ed
for (int num = 0; num < 8; num++) {
digitalWrite(ledPins[num], HIGH);
} //
// 循環(huán)順序點(diǎn)亮led然后等待200ms后熄滅
for (int num = 0; num < 8; num++) {
digitalWrite(ledPins[num], LOW);
delay(200);
digitalWrite(ledPins[num], HIGH);
// 這樣就形成了簡易的led流水效果
}
}
5、八位LED顯示電位器位置
const int analogPin = A0; // 模擬輸入
const int ledCount = 8; // led個(gè)數(shù)
int ledPins[] = {
0,1,2, 3, 4, 5, 6, 7, }; // 對應(yīng)的led引腳
void setup() {
// 循環(huán)設(shè)置,把對應(yīng)的led都設(shè)置成輸出
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
pinMode(ledPins[thisLed], OUTPUT);
}
}
void loop() {
// 讀取電位器的值
int sensorReading = analogRead(analogPin);
// 把對應(yīng)的值轉(zhuǎn)化成0-最大led個(gè)數(shù),這里是8
int ledLevel = map(sensorReading, 0, 1023, 0, ledCount);
// 循環(huán)對比輸出到led:
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
if (thisLed < ledLevel) {
digitalWrite(ledPins[thisLed], HIGH);
}
else {
digitalWrite(ledPins[thisLed], LOW);
}
}
}
|
評分
-
查看全部評分
|