Skip to content

Lektion 20: 1-pin-7-motstånd-i-serien-piano

I den här lektionen ska vi göra ett piano som bara behöver en stift och 8 motstånd.

Med den här bråkserien kan du beräkna pi

Bowtie pi är ett känt tal mellan tre och fyra
Solglasögon Det har inget med pianon att göra...

Lektion 20: 1-stift-7-motstånd-i-serien-piano: Uppgift 1

Bygg 'Uppdrag 1':

Lektion 20: 1-Pin-7-Resistors-In-Series-Piano: Uppgift 1

Sätt den här koden på din Arduino:

const int speaker_pin = 8;
const int piano_pin = A0;

void setup()
{
  Serial.begin(9600);  
  pinMode(A0, INPUT);
}

void loop()
{
  const int piano_waarde = analogRead(piano_pin);
  Serial.println(piano_waarde);
  delay(100);
}
  • Vilket värde får Arduino när man trycker på knappen?
  • Vilket värde får Arduino om knappen inte trycks in?

Lektion 20: 1-Pin-7-Resistors-I-Series-Piano: Lösning 1

När du trycker på knappen får du värdet 0. Om knappen inte trycks in får du värdet 1023.

Bild

När knappen trycks in

Bild

Om knappen inte trycks in

Lektion 20: 1-Pin-7-Resistors-In-Series-Piano: Uppgift 2

När knappen trycks ned, gör piezopip i 250 millisekunder med en frekvens på 175 Hertz. I slutet av "loop", låt Arduino vänta i 1 millisekund.

Bowtie Om du inte kommer ihåg detta, kolla föregående lektion!

Lektion 20: 1-stift-7-motstånd-i-serien-piano: Lösning 2

const int speaker_pin = 8;
const int piano_pin = A0;

void setup()
{
  Serial.begin(9600);  
  pinMode(A0, INPUT);
}

void loop()
{
  const int piano_waarde = analogRead(piano_pin);
  Serial.println(piano_waarde);
  if (piano_waarde < 150)
  {
    tone(speaker_pin, 175, 250);
    delay(250);
  }
  delay(1);
}
Solglasögon Åh ja, det var så det fick bli!

Lektion 20: 1-Pin-7-Resistors-In-Series-Piano: Uppgift 3

Bygg följande:

Lektion 20: 1-Pin-7-Resistors-In-Series-Piano: Uppgift 3

Programmera den andra knappen för att skapa en 196 Hertz-ton.

Lektion 20: 1-Pin-7-Resistors-I-Series-Piano: Lösning 3

const int speaker_pin = 8;
const int piano_pin = A0;

void setup()
{
  Serial.begin(9600);  
  pinMode(A0, INPUT);
}

void loop()
{
  const int piano_waarde = analogRead(piano_pin);
  Serial.println(piano_waarde);
  if (piano_waarde < 150)
  {
    tone(speaker_pin, 175, 250);
    delay(250);
  }
  else if (piano_waarde < 300)
  {
    tone(speaker_pin, 196, 250);
    delay(250);
  }
  delay(1);
}

Lektion 20: 1-stift-7-motstånd-i-serien-piano: Uppgift 4

Bygg följande:

Uppgift 4

Uppgift 4

Programmera den tredje knappen för att skapa en ton på 220 Hertz.

Lektion 20: 1-Pin-7-Resistors-I-Series-Piano: Lösning 4

const int speaker_pin = 8;
const int piano_pin = A0;

void setup()
{
  Serial.begin(9600);  
  pinMode(A0, INPUT);
}

void loop()
{
  const int piano_waarde = analogRead(piano_pin);
  Serial.println(piano_waarde);
  if (piano_waarde < 150)
  {
    tone(speaker_pin, 175, 250);
    delay(250);
  }
  else if (piano_waarde < 300)
  {
    tone(speaker_pin, 196, 250);
    delay(250);
  }
  else if (piano_waarde < 450)
  {
    tone(speaker_pin, 220, 250);
    delay(250);
  }
  delay(1);
}

Lektion 20: 1-Pin-7-Resistors-In-Series-Piano: Uppgift 5

Bygg nu en fjärde knapp själv.

Programmera den fjärde knappen för att skapa en ton på 247 Hertz.

En NES-kontroller har också 4 knappar

En NES-kontroller har också 4 knappar

Lektion 20: 1-stift-7-motstånd-i-serien-piano: Lösning 5

Lektion 20: 1-Pin-7-Resistors-In-Series-Piano: Uppgift 5

const int speaker_pin = 8;
const int piano_pin = A0;

void setup()
{
  Serial.begin(9600);  
  pinMode(A0, INPUT);
}

void loop()
{
  // ... vorige code hier
  else if (piano_waarde < 600)
  {
    tone(speaker_pin, 247, 250);
    delay(250);
  }
  delay(1);
}

Slutuppgift

Komplettera pianot med sju knappar. De sista tonerna är 262, 294 och 330 Hertz.

Bild

Amina Figarova behöver verkligen använder mer än sju fingrar