Automatic Baby Rocker!
Automatic baby rocker to help the baby sleep. Fastened to the stroller with a rope.
Components and supplies
1
Rotary potentiometer (generic)
1
Arduino UNO
1
LED (generic)
1
Pushbutton switch 12mm
1
Resistor 221 ohm
Tools and machines
1
Soldering iron (generic)
Project description
Code
BabyRocker.ino
csharp
Here is the baby rocker that i made.
1/* 2Baby Rocker 3Developer: Sindre Krgsrud, February 2017. 4 5*Start: 6 - The rocker will run continuously until you push "STOP". 7 8*Auto 9 - The rocker will run for (x)milliseconds everytime a sound is detected. 10 11*Timer 12 - When you push "Timer" the rocker will run (0-5000)millisecond depending on what the "TimerWheel" is set to. 13 ( TEST ) 14*/ 15 16// Global Variables and boolean's 17 18unsigned long previousMillis = 0; 19long interval = 3000; 20 21const int timerWheel = A0; 22const int SoundSensor = A5; 23const int LED = 3; 24const int stopButton = 4; 25const int startButton = 5; 26const int autoButton = 6; 27const int timerButton = 7; 28const int stopLED = 8; 29const int startLED = 9; 30const int autoLED = 10; 31const int timerLED = 11; 32const int timerLED1 = 12; 33const int timerLED2 = 13; 34const int timerLED3 = A1; 35const int timerLED4 = A2; 36const int timerLED5 = A3; 37const int timerLED6 = A4; 38 39boolean stopButtonPushed = true; 40boolean startButtonPushed = false; 41boolean autoButtonPushed = false; 42boolean timerButtonPushed = false; 43boolean stopButtonSignal = false; 44boolean startButtonSignal = false; 45boolean autoButtonSignal = false; 46boolean timerButtonSignal = false; 47 48boolean autoStart = false; 49boolean timerStart = false; 50 51unsigned long timerWheelTime = 0; 52int timerWheelVal = 0; 53int SoundSensorVal = 0; 54boolean SoundDetected = false; 55boolean setMillis = true; 56 57 58void setup() { 59 60pinMode(timerWheel, INPUT); 61pinMode(SoundSensor, INPUT); 62pinMode(stopButton, INPUT); 63pinMode(startButton, INPUT); 64pinMode(autoButton, INPUT); 65pinMode(timerButton, INPUT); 66 67pinMode(LED, OUTPUT); 68pinMode(stopLED, OUTPUT); 69pinMode(startLED, OUTPUT); 70pinMode(autoLED, OUTPUT); 71pinMode(timerLED, OUTPUT); 72pinMode(timerLED1, OUTPUT); 73pinMode(timerLED2, OUTPUT); 74pinMode(timerLED3, OUTPUT); 75pinMode(timerLED4, OUTPUT); 76pinMode(timerLED5, OUTPUT); 77pinMode(timerLED6, OUTPUT); 78 79digitalWrite(LED, LOW); 80 81} 82 83void loop() 84{ 85 86unsigned long currentMillis = millis(); 87 88//timerWheel 89if ( true == true ) 90{ 91 92 93timerWheelVal = analogRead(timerWheel); 94// 30s,1m,2m,4m,8m,16m 95/* 96 97*/ 98// TEST 99timerWheelTime = map (timerWheelVal, 0, 1023, 500, 16000); 100 101 102 if ( timerWheelTime >= 500 && timerWheelTime < 1000 ) 103 { 104 digitalWrite(timerLED1, HIGH); 105 } 106 else 107 { 108 digitalWrite(timerLED1, LOW); 109 } 110 111 if ( timerWheelTime >= 1000 && timerWheelTime < 2000 ) 112 { 113 digitalWrite(timerLED2, HIGH); 114 } 115 else 116 { 117 digitalWrite(timerLED2, LOW); 118 } 119 120 if ( timerWheelTime >= 2000 && timerWheelTime < 4000 ) 121 { 122 digitalWrite(timerLED3, HIGH); 123 } 124 else 125 { 126 digitalWrite(timerLED3, LOW); 127 } 128 129 if ( timerWheelTime >= 4000 && timerWheelTime < 8000 ) 130 { 131 digitalWrite(timerLED4, HIGH); 132 } 133 else 134 { 135 digitalWrite(timerLED4, LOW); 136 } 137 138 if ( timerWheelTime >= 8000 && timerWheelTime < 15500) 139 { 140 digitalWrite(timerLED5, HIGH); 141 } 142 else 143 { 144 digitalWrite(timerLED5, LOW); 145 } 146 147 if ( timerWheelTime >= 15500) 148 { 149 digitalWrite(timerLED6, HIGH); 150 } 151 else 152 { 153 digitalWrite(timerLED6, LOW); 154 } 155 156} 157 158//Button and LED states 159if ( true == true ) 160{ 161int stopButtonState = digitalRead(stopButton); 162 if (stopButtonState == HIGH ) 163 { 164 stopButtonPushed = true; 165 stopButtonSignal = true; 166 } 167digitalWrite(stopLED,stopButtonPushed); 168 169int startButtonState = digitalRead(startButton); 170 if (startButtonState == HIGH ) 171 { 172 startButtonPushed = true; 173 startButtonSignal = true; 174 } 175digitalWrite(startLED,startButtonPushed); 176 177int autoButtonState = digitalRead(autoButton); 178 if (autoButtonState == HIGH ) 179 { 180 autoButtonPushed = true; 181 autoButtonSignal = true; 182 } 183digitalWrite(autoLED,autoButtonPushed); 184 185int timerButtonState = digitalRead(timerButton); 186 if (timerButtonState == HIGH ) 187 { 188 timerButtonPushed = true; 189 timerButtonSignal = true; 190 } 191digitalWrite(timerLED,timerButtonPushed); 192} 193 194 //STOPP 195 if ( stopButtonSignal == true ) 196 { 197 stopButtonSignal = false; 198 startButtonPushed = false; 199 autoButtonPushed = false; 200 timerButtonPushed = false; 201 timerButtonSignal = false; 202 autoStart = false; 203 timerStart = false; 204 digitalWrite(LED, LOW); 205 } 206 207 //START 208 if ( startButtonSignal == true ) 209 { 210 startButtonSignal = false; 211 stopButtonPushed = false; 212 autoButtonPushed = false; 213 timerButtonPushed = false; 214 autoStart = false; 215 timerStart = false; 216 digitalWrite(LED, HIGH); 217 } 218 219 //AUTO 220 if ( autoButtonSignal == true ) 221 { 222 autoButtonSignal = false; 223 stopButtonPushed = false; 224 startButtonPushed = false; 225 timerButtonPushed = false; 226 timerStart = false; 227 digitalWrite(LED, LOW); 228 autoStart = true; 229 } 230 231 // AUTOSTART 232 if ( autoStart == true ) 233 { 234 if ( (SoundSensorVal = digitalRead(SoundSensor)) == 1 ) 235 { 236 SoundDetected = true; 237 setMillis = true; 238 } 239 if ( SoundDetected == true ) 240 { 241 if(setMillis == true) 242 { 243 setMillis = false; 244 previousMillis = currentMillis; 245 } 246 if (currentMillis - previousMillis <= timerWheelTime/2 ) 247 { 248 digitalWrite(LED, HIGH); 249 } 250 else 251 { 252 digitalWrite(LED, LOW); 253 setMillis = true; 254 SoundDetected = false; 255 } 256 } 257 } 258 259 260 //TIMER 261 if ( timerButtonSignal == true ) 262 { 263 timerButtonSignal = false; 264 stopButtonPushed = false; 265 startButtonPushed = false; 266 autoButtonPushed = false; 267 autoStart = false; 268 digitalWrite(LED, LOW); 269 timerStart = true; 270 } 271 272 //TIMERSTART 273 if ( timerStart == true ) 274 { 275 if(setMillis == true) 276 { 277 setMillis = false; 278 previousMillis = currentMillis; 279 } 280 if (currentMillis - previousMillis <= timerWheelTime) 281 { 282 digitalWrite(LED, HIGH); 283 } 284 else 285 { 286 digitalWrite(LED, LOW); 287 stopButtonSignal = true; 288 stopButtonPushed = true; 289 setMillis = true; 290 } 291 } 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306} 307
Comments
Only logged in users can leave comments