Pages: [1]   Go Down
Author Topic: Soundproblem  (Read 504 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 9
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo allerseits,

ich versuche derzeit dem Arduino Sound zu entlocken, baue sozusagen einen kleinen Synthesizer. Hab nun aber folgendes Problem..

Ich will es so bauen das wenn man verschiedene Buttons drückt Sound rauskommt. Ich frage also den Buttonstatus ab und dann kommt Ton.
Das funktioniert bis zu Sieben Buttons, nach dem Siebten kommt kein Ton mehr heraus. Hat jemand eine Idee woran das liegen könnte und was man tun kann.

Danke im vorraus.

Hier übrigens der Quellcode





Code:
int buttonPin[9] = {2,3,4,5,6,7,8,9,10,};  

int buttonState[9];              



int audioPin = 9;

void writeAudio(uint8_t val)
{
  OCR1A = (val);
}


uint16_t phase=0;
uint16_t speed=200;
uint8_t sample=0;


SIGNAL(TIMER1_OVF_vect){

  
  writeAudio(sample);
  phase += speed;
  
  if(phase>=32768)
  sample=255;
  else
  sample=0;
  
  
}



void setup() {
  for(int i=0; i<49;i++)
{
  pinMode(buttonPin[i], INPUT);    // Set the switch pin as input

          
}  



 pinMode(audioPin, OUTPUT);
  TCCR1A = _BV(WGM10) | _BV(COM1A1);
  TCCR1B = _BV(CS10) | _BV(WGM12);
  
  TIMSK1 |= _BV(TOIE1);

}



//der wichtige Part :-)


void loop(){
for(int j=0; j<9;j++)
{
speed=digitalRead(buttonPin[j])*55;
delay(100);
}

}
Logged

0
Offline Offline
Full Member
***
Karma: 1
Posts: 236
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich würde sagen, du suchst dir erstmal was, was du selbst geschrieben hast und auch durchdringst. Und dann kannste du dich an Dinge wie die TimerOverflowregistern begeben.
Am Besten ist's nichts irgendwoherzukopieren, sondern selbst zu machen. Zumindest wenn die Basics noch fehlen....

Falls ich dir unrecht tue:
rechne mal die Vielfachen, die jeder Knopp erzeugt, durch. Und ob prüfe der Wert überläuft. Oder dem Comparator egal ist.
« Last Edit: March 16, 2010, 07:55:48 am by willich » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 9
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo,
erstmal Danke für die Antwort.
Ich hätte nicht geacht das sowas simples so schwer sein kann :-)

Grundsätzlich ist die Anzahl an befehlen wohl zu hoch bei mehr Buttons (so habs ich zumindest verstanden). Aber gibt es da keinen Trick um das zu umgehen? Ich hab schon versucht  pro Loop nur ein Button abzufragen und nicht alle in einer for-Schleife, klappt aber auch nicht.

Das "blöde" ist nur ich hab schon ein komplettes Programm geschrieben, das beim Prototyp mit 6 Buttons funktioniert. Dann wollt ich am Ende einfach nochn paar Buttons dazumachen und zakk funktioniert mal wieder nichts. Manchmal glaub ich die Technik mag mich einfach nicht :- )
Logged

Pages: [1]   Go Up
Jump to: