0

私はこれを構築しようとしています:

http://www.instructables.com/id/Arduino-Photocell-Theremin-Synth-glitchamin/step6/Program-the-ATMEGA/

コードにkillswitchとdebugmodeがない場合、次のようになります。

// glitchamin
// simple theremin synth with killswitch
// Jacob Peck (a.k.a. ~suspended-chord, http://suspended-chord.info)
// adapted from http://www.adafruit.com/blog/2009/05/19/piezo-with-an-arduino-photoresistor/

// circuit:
// pin d9: pin > +buzzer- > gnd
// pin d10: pin > switch > 5v, switch > 10kOhm resistor > gnd (optional)
// pin a0: 5v > cds > pin, pin > 10kOhm resistor > gnd
// pin a1: 5v > pot, pot > pin, pot > gnd
// pin a2: 5v > pot, pot > pin, pot > gnd

//#define DEBUG // uncomment to get serial output, but it kills the speed of the
                // algorithm, making for a very bad cycle rate
//#define KILLSWITCH // comment to disable killswitch code

int photosensorPin = 0;
int cutterpotPin = 1;
int cyclepotPin = 2;
int piezoPin = 9;

//#ifdef KILLSWITCH
//int killswitchPin = 10;
//#endif

int val = 0;
int cut = 0;
int cycle = 0;
int kill = 0;

void setup() {
  pinMode(piezoPin, OUTPUT);

//#ifdef KILLSWITCH  
//  pinMode(killswitchPin, INPUT);
//#endif

//ifdef DEBUG  
//  Serial.begin(115200);
//endif

}

void loop() {
  digitalWrite(piezoPin, LOW);
  val = analogRead(photosensorPin);
  cut = analogRead(cutterpotPin);
  cycle = analogRead(cyclepotPin);

//#ifdef KILLSWITCH
//  kill = digitalRead(killswitchPin);
//#endif  

////#ifdef DEBUG  
////  Serial.print("CdS: ");
////  Serial.print(val);
//  Serial.print("\tCutter: ");
//  Serial.print(cut);
//  Serial.print("\tCycle: ");
//  Serial.print(cycle);
//#ifdef KILLSWITCH  
//  Serial.print("\tKill: ");
//  Serial.println(kill);
//#else
//  Serial.println("");
//#endif // killswitch
//#endif // debug

  val = val / map(cut, 0, 1023, 15, 2);
  cycle = map(cycle, 0, 1023, 1, 1000);

//#ifdef KILLSWITCH
// if (!kill) { // if not killed
//#endif
    for( int i=0; i<cycle; i++ ) {  // play for cycle pot's reading
      digitalWrite(piezoPin, HIGH);
      delayMicroseconds(val);
      digitalWrite(piezoPin, LOW);
      delayMicroseconds(val);
    }
//#ifdef KILLSWITCH
//  }
//#endif  
}

私はいつもエラーが発生します:

「OUTPUT」という名前のものが見つかりません。

私は何が間違っているのですか?

ありがとう。

4

1 に答える 1

1

これは、Processingでコードを実行していて、ArduinoIDEを使用してコードをコンパイルしてArduinoにアップロードする必要があるためです。Arduino IDEはProcessing1に基づいているため、2つのIDEは同じように見えるため、これはかなり一般的な間違いです。

ArduinoIDEはArduinoWebサイトからダウンロードできます。

于 2012-10-07T17:52:10.627 に答える