BANANIANO COM 9 NOTAS


   Pessoal este é o sketch do piano de bananas. É só copiar e colar no programa do arduino. A montagem do circuito está lugo abaixo:

    O fio da esquerda (que está sozinho) é o aterramento. Caso esteja usando pilhas, você vai precisar segurar nele para o circuito funcionar. Se estiver com o arduino conectado no computador, e o mesmo conectado na rede elétrica, todo o circuito já vai estar aterrado por meio do fio neutro que vem da tomada. Neste caso você não vai precisar daquele fio. Os outros 9 fios vão nas bananas. Os resistores são de 10KOhms, com exceção do resistor do led que é de 220 Ohms.
    Vejam como fica a montagem do circuito:

   
O link para assistir o video é: https://www.youtube.com/watch?v=Mu2MQWVw3yY


#include <CapacitiveSensor.h>

/*
   CapitiveSense Library Demo Sketch
   Paul Badger 2008
   Uses a high value resistor e.g. 10M between send pin and receive pin
   Resistor effects sensitivity, experiment with values, 50K - 50M. Larger resistor values yield larger sensor values.
   Receive pin is the sensor pin - try different amounts of foil/metal on this pin
*/


CapacitiveSensor   cs_2_3 = CapacitiveSensor(2, 3);       // 10M resistor between pins 2 & 3, pin 3 is sensor pin, add a wire and or foil if desired
CapacitiveSensor   cs_2_4 = CapacitiveSensor(2, 4);       // 10M resistor between pins 2 & 4, pin 4 is sensor pin, add a wire and or foil
CapacitiveSensor   cs_2_5 = CapacitiveSensor(2, 5);       // 10M resistor between pins 2 & 5, pin 5 is sensor pin, add a wire and or foil
CapacitiveSensor   cs_2_6 = CapacitiveSensor(2, 6);       // 10M resistor between pins 2 & 6, pin 6 is sensor pin, add a wire and or foil if desired
CapacitiveSensor   cs_2_7 = CapacitiveSensor(2, 7);       // 10M resistor between pins 2 & 7, pin 7 is sensor pin, add a wire and or foil
CapacitiveSensor   cs_2_8 = CapacitiveSensor(2, 8);       // 10M resistor between pins 2 & 8, pin 8 is sensor pin, add a wire and or foil
CapacitiveSensor   cs_2_9 = CapacitiveSensor(2, 9);       // 10M resistor between pins 2 & 9, pin 9 is sensor pin, add a wire and or foil if desired
CapacitiveSensor   cs_2_10 = CapacitiveSensor(2, 10);     // 10M resistor between pins 2 & 10, pin 10 is sensor pin, add a wire and or foil
CapacitiveSensor   cs_2_11 = CapacitiveSensor(2, 11);     // 10M resistor between pins 2 & 11, pin 11 is sensor pin, add a wire and or foil


int tom = 450;
int tempo = 0;
int registro = 0;

void setup()
{
  cs_2_3.set_CS_AutocaL_Millis(0xFFFFFFFF);     // turn off autocalibrate on channel 1 - just as an example
  Serial.begin(9600);
  pinMode(12, OUTPUT); // led
  pinMode(13, OUTPUT); // buser
}

void loop()
{
  long start = millis();
  long total1 =  cs_2_3.capacitiveSensor(30);
  long total2 =  cs_2_4.capacitiveSensor(30);
  long total3 =  cs_2_5.capacitiveSensor(30);
  long total4 =  cs_2_6.capacitiveSensor(30);
  long total5 =  cs_2_7.capacitiveSensor(30);
  long total6 =  cs_2_8.capacitiveSensor(30);
  long total7 =  cs_2_9.capacitiveSensor(30);
  long total8 =  cs_2_10.capacitiveSensor(30);
  long total9 =  cs_2_11.capacitiveSensor(30);

  Serial.print(millis() - start);        // check on performance in milliseconds
  Serial.print("\t");                    // tab character for debug windown spacing
  Serial.print(total1);                  // print sensor output 1
  Serial.print("\t");
  Serial.print(total2);                  // print sensor output 2
  Serial.print("\t");
  Serial.print(total3);                  // print sensor output 3
  Serial.print("\t");
  Serial.print(total4);                  // print sensor output 4
  Serial.print("\t");
  Serial.print(total5);                  // print sensor output 5
  Serial.print("\t");
  Serial.print(total6);                // print sensor output 6
  Serial.print("\t");
  Serial.print(total7);                  // print sensor output 7
  Serial.print("\t");
  Serial.print(total8);                  // print sensor output 8
  Serial.print("\t");
  Serial.println(total9);                // print sensor output 9

// nota Do
  if (total1 > 3)
  {
    digitalWrite(13, HIGH);
    tempo = 100; // tempo de duracao da nota
    tom = 264; // tonalidade da nota do
    tone(12, tom, tempo);
  }

// nota Re
  if (total2 > 3)
  {
    digitalWrite(13, HIGH);
    tempo = 100; // tempo de duracao da nota
    tom = 297; // tonalidade da nota re
    tone(12, tom, tempo);
  }

// nota Mi
  if (total3 > 3)
  {
    digitalWrite(13, HIGH);
    tempo = 100; // tempo de duracao da nota
    tom = 330; // tonalidade da nota mi
    tone(12, tom, tempo);
  }
  // nota Fa
  if (total4 > 3)
  {
    digitalWrite(13, HIGH);
    tempo = 100; // tempo de duracao da nota
    tom = 350; // tonalidade da nota Fa
    tone(12, tom, tempo);
  }

// nota Sol
  if (total5 > 3)
  {
    digitalWrite(13, HIGH);
    tempo = 100; // tempo de duracao da nota
    tom = 392; // tonalidade da nota Sol
    tone(12, tom, tempo);
  }

// nota La
  if (total6 > 3)
  {
    digitalWrite(13, HIGH);
    tempo = 100; // tempo de duracao da nota
    tom = 440; // tonalidade da nota La
    tone(12, tom, tempo);
  }
// nota Si
  if (total7 > 3)
  {
    digitalWrite(13, HIGH);
    tempo = 100; // tempo de duracao da nota
    tom = 494; // tonalidade da nota Si
    tone(12, tom, tempo);
  }

// nota Do
  if (total8 > 3)
  {
    digitalWrite(13, HIGH);
    tempo = 100; // tempo de duracao da nota
    tom = 523; // tonalidade da nota Do
    tone(12, tom, tempo);
  }

// nota Re
  if (total9 > 3)
  {
    digitalWrite(13, HIGH);
    tempo = 100; // tempo de duracao da nota
    tom = 587; // tonalidade da nota Re
    tone(12, tom, tempo);
  }



  delay(10); // arbitrary delay to limit data to serial port


  digitalWrite(13, LOW);
}

Nenhum comentário:

Postar um comentário