making in der schule
  • die idee
  • der raum
  • plotten
    • textiles beplotten
    • folien schneiden
    • verpackungen
  • 3d-drucken
    • projekte folgen
  • lasercutten
  • arduino
    • software
    • hardware
    • schaltung
    • übungen
    • projekte
  • links
  • kontakt

Sketch Beat-Box

/* BEAT BOX
Tonerzeugende Box
Wird es dunkel vor dem Lichtsensor, wird eine Tonfolge erzeugt.
Beim Einschalten erklingt eine Startmelodie. 

Lautsprecher 1 = 8 (-=GND)
Lautsprecher 2 = 9 

Lichtsensor 1 = A0 (mit 10kOhm Wiederstand vor GND)
Lichtsensor 2 = A1(mit 10kOhm Wiederstand vor GND)

Poti 1 = A2: Tonlänge bestimmen
Poti 2 = A3: threshold (Helligkeit) bestimmen

Sketch von
Mich Heimann, Karin Hodel 2015
*/

#include <Tone.h>

Tone tone1; //Lautsprecher 1 ansteuern
Tone tone2; //Lautsprecher 2 ansteuern
Tone tones[] = { tone1, tone2 }; //

int tonePins[] = { 8, 9 }; //Array (Liste) mit Lautsprechern
int sensorPins[] = { 0, 1 };

int range[2][2] = { { NOTE_C2, NOTE_E2 }, { NOTE_F3, NOTE_C4 } }; //Noten definieren

void setup() {
  
  for( int i = 0; i < 2; i++ ) {
    tones[i].begin( tonePins[i] );
  }

  //Startmelodie
  tones[0].play( NOTE_C5, 100 ); 
  tones[1].play( NOTE_E5, 100 );
  delay( 100 );
  tones[0].play( NOTE_C6, 100 );
  tones[1].play( NOTE_E6, 100 );
  delay( 100 );
  tones[0].play( NOTE_C7, 100 );
  tones[1].play( NOTE_E7, 100 );
  delay( 100 );
}

void loop() {
  
  int potiLength = analogRead( 2 ); //Potentiometer1 auf Pin 2
  int notelength = map( potiLength, 0, 1023, 40, 300 ); //Wert vom Potentiometer in Notenlänge umrechnen, Takt einstellen
  
  int potiThreshold = analogRead( 3 ); //Potentiometer2 auf Pin 3
  int threshold = map( potiThreshold, 0, 1023, 0, 800 ); //Helligkeit einstellen, wenn Helligkeit unter threshold dann Ton
  
  for( int i = 0; i < 2; i++ ) { //iterieren über beide Lautsprecher
    
    int sensor = analogRead( i ); //Wert des aktuellen Lautsprechers lesen
    if( sensor < threshold ) { //Testen ob abspielen (kleiner threshold)
      tones[i].play( map(sensor, 450, threshold, range[i][0], range[i][1] ), notelength ); //Töne abspielen
    }
  }

  delay(notelength); //Warten bis Ton fertig gespielt auf beiden Lautsprechern
}

oder zu hause      
  • die idee
  • der raum
  • plotten
    • textiles beplotten
    • folien schneiden
    • verpackungen
  • 3d-drucken
    • projekte folgen
  • lasercutten
  • arduino
    • software
    • hardware
    • schaltung
    • übungen
    • projekte
  • links
  • kontakt