David RodriguezAlek Popovic
Published © GPL3+

Cool Baby Piano

Did you ever want to strengthen your child's motor skills while showing the tones of sound and color? This project does the trick!

IntermediateShowcase (no instructions)5 hours2,454
Cool Baby Piano

Things used in this project

Hardware components

SparkFun Large Piezo Alarm - 3KHz
×1
SparkFun Toggle Switch
×1
SparkFun Multicolor Buttons - 4-pack
×1
SparkFun Flex Sensor 2.2"
×1
LED (generic)
LED (generic)
×4
SparkFun LED Holder - 10mm
×1
SparkFun Soft Potentiometer
×1
Jumper wires (generic)
Jumper wires (generic)
×20
Arduino UNO
Arduino UNO
×1

Story

Read more

Schematics

Baby Project

code for Project

Baby Project

Circuit board

Baby Project

Picture of circuit board

Code

Baby Project

Java
This is the code that starts up the toy.
bool redIsOn = false;
bool blueIsOn = false;
bool greenIsOn = false;
bool yellowIsOn = false;
bool startUpHappened = false;

void setup() {
  
  pinMode(13, OUTPUT);
  pinMode(12, INPUT_PULLUP);
  pinMode(11, OUTPUT);
  pinMode(10, INPUT_PULLUP);
  pinMode(9, OUTPUT);
  pinMode(8, INPUT_PULLUP);
  pinMode(7, OUTPUT);
  pinMode(6, INPUT_PULLUP);
  pinMode(5, INPUT_PULLUP);
  pinMode(4, OUTPUT);
  
}

void loop() {
  
  if (digitalRead(5) == 0) {
    
    if (startUpHappened == false) {
      
      //left
      digitalWrite(7, HIGH);
      delay(150);
      
      digitalWrite(7, LOW);
      digitalWrite(9, HIGH);
      delay(150);
      
      digitalWrite(9, LOW);
      digitalWrite(11, HIGH);
      delay(150);
      
      digitalWrite(11, LOW);
      digitalWrite(13, HIGH);
      delay(150);
      
      digitalWrite(13, LOW);
      //right
      digitalWrite(11, HIGH);
      delay(150);
      
      digitalWrite(11, LOW);
      digitalWrite(9, HIGH);
      delay(150);
      
      digitalWrite(9, LOW);
      digitalWrite(7, HIGH);
      delay(150);
      
      digitalWrite(7, LOW);
      delay(150);
      
      startUpHappened = true;
      
    }
    
    if (digitalRead(12) == 0) {
      
      if (redIsOn == false) {
        
        digitalWrite(11, LOW);
        blueIsOn = false;
        
        digitalWrite(9, LOW);
        greenIsOn = false;
        
        digitalWrite(7, LOW);
        yellowIsOn = false;
        
        digitalWrite(13, HIGH);
        redIsOn = true;
        
        digitalWrite(4, HIGH);
        tone(4, 2500);
        
        delay(500);
        
      } else {
        
        digitalWrite(13, LOW);
        redIsOn = false;
        
        noTone(4);
        delay(500);

      }
      
    }
    
    if (digitalRead(10) == 0) {
      
      if (blueIsOn == false) {
        
        digitalWrite(13, LOW);
        redIsOn = false;
        
        digitalWrite(9, LOW);
        greenIsOn = false;
        
        digitalWrite(7, LOW);
        yellowIsOn = false;
        
        digitalWrite(11, HIGH);
        blueIsOn = true;
        
        digitalWrite(4, HIGH);
        tone(4, 2833);

        delay(500);
        
      } else {
        
        digitalWrite(11, LOW);
        blueIsOn = false;
        
        noTone(4);
        delay(500);
        
      }
      
    }
    
    if (digitalRead(8) == 0) {
      
      if (greenIsOn == false) {
        
        digitalWrite(13, LOW);
        redIsOn = false;
        
        digitalWrite(11, LOW);
        blueIsOn = false;
        
        digitalWrite(7, LOW);
        yellowIsOn = false;
        
        digitalWrite(9, HIGH);
        greenIsOn = true;
        
        digitalWrite(4, HIGH);
        tone(4, 3167);

        delay(500);
        
      } else {
        
        digitalWrite(9, LOW);
        greenIsOn = false;
        
        noTone(4);
        delay(500);
        
      }
      
    }
    
    if (digitalRead(6) == 0) {
      
      if (yellowIsOn == false) {
        
        digitalWrite(13, LOW);
        redIsOn = false;
        
        digitalWrite(11, LOW);
        blueIsOn = false;
        
        digitalWrite(9, LOW);
        greenIsOn = false;
        
        digitalWrite(7, HIGH);
        yellowIsOn = true;
        
        digitalWrite(4, HIGH);
        tone(4, 3500);

        delay(500);
        
      } else {
        
        digitalWrite(7, LOW);
        yellowIsOn = false;
        
        noTone(4);
        delay(500);
        
      }
      
    }
    
  } else {
    
    digitalWrite(13, LOW);
    redIsOn = false;
    
    digitalWrite(11, LOW);
    blueIsOn = false;
    
    digitalWrite(9, LOW);
    greenIsOn = false;
    
    digitalWrite(7, LOW);
    yellowIsOn = false;

    noTone(4);
    digitalWrite(4, LOW);
    
    startUpHappened = false;
    
  }
  
}

Credits

David Rodriguez
2 projects • 1 follower
Alek Popovic
3 projects • 2 followers

Comments