Welcome to Hackster!
Hackster is a community dedicated to learning hardware, from beginner to pro. Join us, it's free!
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,449
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
Contact
Alek Popovic
3 projects • 2 followers
Contact

Comments

Please log in or sign up to comment.