arduino mit taster musik auswähle?

2 Antworten

Hallo! Ich habe deinen Code verbessert!

int ZF; //Zufallszahl
int K; //Tasterstatus
void setup() {
  pinMode(4, INPUT_PULLUP); //Tasterpin lesend aktivieren
  pinMode(3, OUTPUT); //Summer aktivieren
  Serial.begin(9600); //Serielle Verbindung (hier überflüssig)
}

void loop() {
  K = digitalRead(4);   
  if (K == 0) {    
    //randomSeed(analogRead(A1)); // nutzlose Zeile   
    ZF = random(0, 2); //Eine Zufallszahl zwischen 0 und 1 generieren    
    if (ZF == 1) { //ist die Zufallszahl gleich 1 spiele Freqzenz 440
      tone(3, 440);
    }
    else { //war die Zufallszahl 2, spiele Frequenz 800
      tone (3, 800);
    }
    delay(800); //0,8 Sekunden soll der Ton gespielt werden
    noTone(3); //anschließend wird der Ton abgeschaltet
  }
}

Bild zum Beitrag

 - (Computer, Schule, Technik)

Was ist denn K-digitalRead??? Wolltest Du einer Variablen K den Tasterstatus zuweisen? Dann bitte mit K = digitalRead...

Itsanonymg 
Fragesteller
 14.12.2021, 16:51

das hab ich auch bemerkt, aber es funktioniert nicht

0
RareDevil  14.12.2021, 16:55
@Itsanonymg

An Deiner Stelle, da Du Serial ja schon initialisierst, würde ich an den einzelnen Positionen auch per Serial ausgeben lassen, was passiert. Also welche Random erzeugt wird, wie der Tasterstatus eingelesen wurde, welcher Ton abgespielt wird usw... Dann kannst Du schon mal erkennen, ob der Taster überhaupt richtig angeschlossen ist und eingelesen wird, ob dein Random auch einen anständigen Wert zurück gibt der ZF zugewiesen wird.. ect.

Hab mit Random noch nicht gearbeitet. Kann dazu ohne mich einzulesen jetzt nicht viel sagen... Vlt auch den Speaker nicht richtig angeschlossen ect...

0
RareDevil  14.12.2021, 16:58
@Itsanonymg

Hinter dem if(K==0) fehlt auch noch eine { die am Ende geschlossen werden muss... So ist dem If nichts zugewiesen... Vlt hängt es daran schon, oder er sollte es einfach ohne Prüfung ausgeben...

0