I wanted to create a working version of the classic game Whack-a-mole. I used the Arduino language and wired the project on a breadboard. It is fully functional and playable.
Ohm's law states that voltage is equal to the resistance multiplied by current. You can use this to calculate what strength resistor you should use, and the voltage and current in a system.
A parallel circuit is a circuit with two or more paths where an equal amount of electricity goes through each path. This ca be useful to light multiple LED's at once with one circuit.
Unlike a parallel circuit, in a series circuit, the electricity only has one path that it can take. This is due to a series of resistors that force energy in one direction.
Current is the flow of charge or electricity through a circuit. Voltage is the potential energy difference from one side of the component to the other side. Resistance is the amount that current is slowed or resisted through an obstacle. Power is the rate of transferring electrical energy through a circuit.
Current: v=ir Unit: Amps (A)
Voltage: v=ir Unit: Volts (v)
Resistance: v=ir Unit: Ohms (Ω)
Power: p=iv Unit: Watts (w)
I have coded in the past and know React Js and Dart decently well. This was a different language. Overall, it was very similar because I was doing very basic functions (ifs, for loops, etc.) but there were a few distinct changes. The largest one being the management of inputs and outputs. I had a physical component to manage which I was not used to. The inclusion of the loop()
function was also very helpful. In the past I had always dealt with programs that incorporated design as well. This was a large shift from my previous experiences. I never had to deal with design in this language. A more frustrating shift was the lack of a good IDE. The IDE is an Integrated Development Environment. It is where you write all of your code. The Arduino was one of the worst IDE experiences that I've ever had. In other IDE's, there are keyboard shortcuts, and autofill prompts. There was no autocomplete and lackluster keyboard shortcuts. Because of this, it took longer, but I also believe that it made me understand my code more.
One thing that I did very well was critical thinking. I ran into a lot of problems along the way but worked through all of them. The second thing I did well was goal setting. I set small achievable goals and worked on them one at a time. Something I could improve on was creativity. While my project was done well, it was not new. It was a remake of a classic game without any twists. I believe I could have changed something to make it a new game. I could also have communicated better. A few times I was stuck for multiple hours unwilling to ask for help from other students, my parents, or Mr. Williams. I eventually got an answer but it was far less efficient.