Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
99 changes: 99 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
# Arduino Learning Projects

A collection of Arduino sketches for learning microcontroller programming and electronics. This repository contains progressively advanced projects that demonstrate various Arduino concepts and techniques.

## Projects Overview

### 1. Lesson 1 - Button Controlled LED
**Location:** `learning/lesson1/`
**Difficulty:** Beginner
**Concepts:** Digital input/output, button debouncing

A basic project that demonstrates how to read a button input and control an LED. When the button is pressed, the LED turns on; when released, it turns off.

[View Project Details](learning/lesson1/README.md)

### 2. Lesson 2 - LED For Loop
**Location:** `learning/lesson2/`
**Difficulty:** Beginner
**Concepts:** For loops, sequential control, timing

Demonstrates the use of for loops to control multiple LEDs in sequence. The sketch lights up 6 LEDs in order from low to high pin numbers, then reverses the pattern.

[View Project Details](learning/lesson2/README.md)

### 3. Traffic Light with Crosswalk
**Location:** `learning/stop_light/`
**Difficulty:** Intermediate
**Concepts:** Interrupts, state management, complex timing patterns

A traffic light simulator with pedestrian crosswalk functionality. Features a button-activated crosswalk that triggers when the traffic light is red, complete with flashing warning signals.

[View Project Details](learning/stop_light/README.md)

### 4. LED Distance Indicator
**Location:** `learning/led_distance/`
**Difficulty:** Advanced
**Concepts:** External libraries, sensor integration, color mapping, analog output

An advanced project using an HC-SR04 ultrasonic sensor to measure distance and display it visually on a NeoPixel LED strip. The color gradually transitions from red (close) to green (far) based on distance measurements.

[View Project Details](learning/led_distance/README.md)

## Getting Started

### Prerequisites

- Arduino IDE (download from [arduino.cc](https://www.arduino.cc/en/software))
- Arduino board (Uno, Nano, or compatible)
- Basic electronic components (LEDs, resistors, buttons, breadboard, jumper wires)
- For advanced projects: NeoPixel strip, HC-SR04 sensor

### Installation

1. Clone this repository:
```bash
git clone <repository-url>
cd arduino
```

2. Open the desired project's `.ino` file in Arduino IDE

3. Connect your Arduino board via USB

4. Select your board and port from Tools menu

5. Upload the sketch to your Arduino

### Required Libraries

Some projects require external libraries:

- **led_distance**: [Adafruit NeoPixel Library](https://github.com/adafruit/Adafruit_NeoPixel)

Install libraries through Arduino IDE: Sketch → Include Library → Manage Libraries

## Learning Path

These projects are designed to be completed in order, with each building on concepts from previous lessons:

1. Start with **Lesson 1** to understand basic digital I/O
2. Progress to **Lesson 2** to learn control structures
3. Move to **Stop Light** to explore interrupts and state management
4. Complete **LED Distance** to work with sensors and external libraries

## Contributing

This is a personal learning repository. Feel free to fork and adapt these projects for your own learning journey.

## License

The code in this repository includes examples from the Arduino community and original work:
- Lesson 1 and 2 are based on official Arduino tutorials (Public Domain)
- Stop Light and LED Distance are original projects by Joshua Shanks

## Additional Resources

- [Arduino Official Tutorials](https://www.arduino.cc/en/Tutorial/HomePage)
- [Arduino Language Reference](https://www.arduino.cc/reference/en/)
- [Arduino Forum](https://forum.arduino.cc/)
Loading