Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 16069|回復: 3
打印 上一主題 下一主題

Ardiuno 如何同時執行兩個動作 請高手救命

[複製鏈接]
跳轉到指定樓層
1#
發表於 2013-1-26 13:51:32 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include "pitches.h"
// notes in the melody:
int melody[] = {
  NOTE_C5,NOTE_F5, NOTE_C5,NOTE_F5, NOTE_C5,NOTE_F5, NOTE_C5,NOTE_F5, NOTE_C5,NOTE_F5, NOTE_C5,NOTE_F5};
int duration = 500;  // 500 miliseconds
int photocellPin = 2; // 光敏電阻 (photocell) 接在 anallog pin 2
int photocellVal = 0; // photocell variable
int minLight = 800;   // 最小光線門檻值
int ledPin = 9;
int ledState = 0;



void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {

    photocellVal = analogRead(photocellPin);
  Serial.println(photocellVal);  

if (photocellVal < minLight && ledState == 0)
{
digitalWrite(ledPin, HIGH); // turn on LED
ledState = 1;
for (int a=0; a<=255; a++) //亮度增加
{
analogWrite(9,a);
delay(8);
}
digitalWrite(ledPin, LOW); // turn off LED
ledState = 0;

for (int a=255; a>=0; a--) //亮度減少
{
analogWrite(9,a);
delay(8);
}

}

// 光線充不足時關掉 LED
else if (photocellVal > minLight && ledState == 0)
{
digitalWrite(ledPin, HIGH); // turn on LED
ledState = 1;
for (int a=0; a<=255; a++) //亮度增加
{
analogWrite(9,a);
delay(1);
}
digitalWrite(ledPin, LOW); // turn off LED
ledState = 0;

for (int a=255; a>=0; a--) //亮度減少
{
analogWrite(9,a);
delay(1);

}
}

}

// for (int thisNote = 0; thisNote < 8; thisNote++) {
    // 在 pin8 上輸出聲音,每個音階響 0.5 秒
//    tone(8, melody[thisNote], duration);
   
    // 間隔一段時間後再播放下一個音階
//   delay(1000);
  }
  
  // 兩秒後重新播放
// delay(2000);

我寫了這麼一個語法 這是一個 用光敏電阻控制LED閃爍的語法

當光敏電阻 讀值為800 LED快速閃爍 如果沒有超過 就是一般速度的呼吸燈

但是現在希望把紅色那串字  加入 else 裡面 但是如果直接放進去 燈閃一下 馬上蜂鳴器就開始叫 燈都沒作用

希望可以 讓燈 跟蜂鳴器 在else 裡面同時作用

請高手救命
2#
發表於 2013-1-27 09:18:50 | 只看該作者
789大大好~~
這個case的兩種輸出方式都各需佔了一個蘿蔔坑來作業,您講的同時執行看來需要雙核心來處理,最簡單的方式為一個板子執行呼吸燈,一個板子執行聲音的輸出,兩個板子再互相設定溝通的方式,來達到您的要求。若是只要一個板子達到要求,要用到中斷的方式長出另一個處理核心,實務上來做需要主客易位_紅色部分放進去正常執行(紅色部分因涉及音調的問題,須讓它一直執行才不會走音),原先呼吸燈的用計時中斷的方式累加或累減,並設定旗標來做判斷。
3#
 樓主| 發表於 2013-1-27 10:50:55 | 只看該作者
回復 2# marbol


   感謝大大的指點
我想以我的等級 還是只能分別寫兩個語法來執行了

太感謝你了
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-4-20 10:59 , Processed in 0.190263 second(s), 6 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表