2017-08-24 71 views
0

正試圖做一個振動檢測器,並遵循從我購買了Arduino的製造商網站的教程,但我得到的錯誤。 我試圖改變不命名類型,並沒有聲明錯誤

unsigned char state = 0; 

unsigned char state; 
state =0; 

沒有運氣。

錯誤是:

error: 'digital' does not name type 
'blink' was not declared in this scope 
'state' was not declared in this scope 

代碼:

int SensorLED = 13;        //define LED digital pin 13 
int SensorINPUT = 3;       // connect tilt sensor to interrupt 1 in 
digital pin 3 
unsigned char state = 0; 

void setup() { 
pinMode(SensorLED, OUTPUT);  //configure LED as output mode 
pinMode(SensorINPUT, INPUT);  //configure tilt sensor as input mode 
//when low voltage changes to high voltage, it triggers interrupt 1 and runs the blink function 
attachInterrupt(1, blink, RISING); 
} 


void loop(){ 
if(state!=0){              // if state is not 0 
state = 0;               // assign state value 0 
digitalWrite(SensorLED,HIGH);      // turn on LED 
delay(500);              // delay for 500ms 
} 
else{ 
digitalWrite(SensorLED,LOW);     // if not, turn off LED 
} 
} 


void blink(){            // interrupt    function blink() 
state++;             //once trigger the interrupt, the state keeps increment 
} 

回答

0

的所有

unsigned char state = 0; 

第一
unsigned char state; 
state =0; 

是完全一樣的東西。

digital pin 3行在代碼中的含義是什麼。您已經定義了SensorINPUT = 3,並且使其INPUT將引腳D3作爲輸入引腳。

所以只要刪除該行,代碼將編譯好。其餘的錯誤似乎只是由於這條線。

+0

謝謝。現在正在工作。 – Evilminator

0

我不評論功能,但錯誤可以固定這樣的:

const byte SensorLED = 13; 
const byte SensorINPUT = 3; 


volatile byte state = LOW; 

void blink(void) 
{ 
    state = !state; 
} 

void setup() 
{ 
    pinMode(SensorLED, OUTPUT);  
    pinMode(SensorINPUT, INPUT);  
    attachInterrupt(1, blink, RISING); 
} 


void loop() 
{ 
    digitalWrite(SensorLED, state); 
    delay(500); 
}