When I was programming the Arduino, I faced a few challenges. One big issue was when my code didn't work as expected, causing the LED lights not to blink.
During debugging, I realized I had made a mistake in the loop section of my code. To fix it, I used serial prints to understand how the values were changing step-by-step. This helped me see where the error was.
To solve problems like this, I usually break down the code into smaller parts and test each separately. This time, I learned the importance of carefully checking the logic in loops and the value of debugging tools like serial monitors. This approach not only fixed my code but also improved my problem-solving skills in programming.
I was able to control an external LED with their sensor and even two LEDS with the IR sensor, in which I was able to blink one LED once, and the other LED another time.
When testing components like IR sensors, Arduino, and DC motors, I started by testing each part individually. This helped me to identify my issues more efficiently. For instance, I first ensured the IR sensor detected objects correctly before integrating it with the Arduino and motors.
The key lesson I learned from this phase was the importance of systematic testing. Starting simple and gradually adding complexity helped avoid confusion and made troubleshooting much easier.
iii. PBD 2
Working on Arduino projects with a team highlighted the value of good communication for me. This open line of communication helped us quickly identify and fix a wiring error in our project, which we might have missed if we weren't so collaborative.
A specific moment that stands out was when our project suddenly stopped working during testing. We had to troubleshoot quickly and found that a recent code update had caused the issue. We systematically changed the code to eliminate errors.
We employed the strategy that I would make the connections, and my partner would write the code. This made the process faster, and we were able to complete this assignment on time.
iii. PBD 3
I faced challenges like complex wiring, debugging programming errors, and calibrating motors and switches. I overcame these by carefully following wiring diagrams, labeling wires, and double-checking connections. For programming issues, I used print statements to trace the code flow and fix errors. Gradual adjustments and iterative testing ensured proper calibration.
Limit switches are used in elevators for safety and in industrial automation to detect object positions. Stepper motors are key for precise control in 3D printers and robotic arms. Servo motors are essential for controlling direction and speed in remote-controlled toys and adjusting camera positions in surveillance systems.
I used incremental testing, starting with individual components before integration. Automated scripts helped run and test functions consistently. In programming, modular coding made debugging easier. Version control allowed me to save stable code versions and revert if needed. These strategies ensured reliable and efficient development.
iii. PBD 4
While controlling the built-in LED, stepper motor, and servo motor using the MIT app, I faced issues with synchronization and timing. I overcame these by fine-tuning the delay intervals and using clear, distinct commands for each component to prevent overlap and ensure smooth operation.
Real-time applications of Bluetooth connectivity with LEDs, stepper motors, and servo motors include home automation (like controlling lights and fans), robotics (for precise movements and control), and remote-controlled devices (such as drones or automated vehicles).
The main difficulty in controlling the stepper motor's direction via Bluetooth was ensuring accurate and timely command transmission. This was resolved by optimizing the command structure and ensuring reliable connectivity to minimize delays and misinterpretation.
During the Arduino programming process, a specific moment of troubleshooting was when the servo motor did not respond as expected. I debugged this by checking the wiring, re-uploading the code, and using the serial monitor to ensure that the correct signals were being sent and received.
iii. PBD 5
Collaboration and communication were key in our team-based Arduino programming project. Effective communication ensured that each team member was aware of their tasks and any changes in the project, allowing us to quickly address issues and share solutions, which contributed significantly to the success of our assessment activity.
A specific moment of troubleshooting during the Arduino programming process was when the stepper motor was not rotating as intended. I debugged this by systematically checking the wiring connections, verifying the motor driver code, and using the serial monitor to diagnose and correct the logic errors in the code.
The strategies I followed during the activity included breaking down the project into smaller tasks, consistently testing each component before integration, documenting each step for clarity, and maintaining open communication with team members to ensure everyone was on the same page and to swiftly address any issues that arose.