Components and supplies
Rotary potentiometer (generic)
Arduino UNO
LED (generic)
Pushbutton switch 12mm
Resistor 221 ohm
Tools and machines
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
SindreKragsrud
0 Followers
•0 Projects
Table of contents
Intro
5
0