edge lab LIVE! starts Tuesday in Munich. Grab a workshop seat and take home the board you build on. Code FRIEND-HACKSTER saves 20%. () Learn more!
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,488
Cool Baby Piano

Things used in this project

Hardware components

SparkFun Electronics Large Piezo Alarm - 3KHz
×1
SparkFun Electronics Toggle Switch
×1
SparkFun Electronics Multicolor Buttons - 4-pack
×1
SparkFun Electronics Flex Sensor 2.2"
×1
LED (generic)
LED (generic)
×4
SparkFun Electronics LED Holder - 10mm
×1
SparkFun Electronics 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