Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/icepanorama/arduinoprojectsbook_c
All the projects from the Arduino Projects Book, written in C.
https://github.com/icepanorama/arduinoprojectsbook_c
arduino arduino-uno arduino-uno-r3 avr avr-gcc avr-gcc-toolchain c c-language c-programming
Last synced: about 2 months ago
JSON representation
All the projects from the Arduino Projects Book, written in C.
- Host: GitHub
- URL: https://github.com/icepanorama/arduinoprojectsbook_c
- Owner: IcePanorama
- Created: 2024-06-29T20:46:36.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-07-01T22:16:59.000Z (6 months ago)
- Last Synced: 2024-10-19T21:07:41.451Z (3 months ago)
- Topics: arduino, arduino-uno, arduino-uno-r3, avr, avr-gcc, avr-gcc-toolchain, c, c-language, c-programming
- Language: C
- Homepage:
- Size: 110 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Arduino Projects Book in C
All the projects from the [Arduino Projects Book](https://store-usa.arduino.cc/products/arduino-starter-kit-multi-language), written in C.
## Building and running
Each project is separated into its own folder, with each folder having its own makefile. To run a particular project, clone the repo onto your machine, cd into the corresponding directory, run `make` to build the executable, and then flash the program onto your Arduino using the `make flash` command.**NOTE**: Please double check which port your Arduino is located on using `ls /dev/ | grep ACM` then set the `PORT` variable in that project's `Makefile` to the output of that command.
In order to build and run these projects, you will need the following libraries installed on your machine: `avr-binutils`, `avr-gcc`, `avrdude`, and `avr-libc`.
## Background
As someone with an interest in computer engineering, low-level programming, and embedded systems, I'm using this project as an opportunity to work closer to the bare-metal of the Arduino Uno. This project was started in the hopes that it could be a stepping stone for me towards working with more professional/industry-grade boards (like the STM32 boards) in the future.## Specs
* **Microcontroller**: ATmega328P @ 16 MHz
* **Memory**: 2KB SRAM, 32KB FLASH, 1KB EEPROM
* **USB-Serial Processor**: ATmega16U2 @ 16 MHz
* Peripherals
* 2x 8-bit Timer/Counter with a dedicated period register and compare channels
* 1x 16-bit Timer/Counter with a dedicated period register, input capture and compare channels
* 1x USART with fractional baud rate generator and start-of-frame detection
* 1x controller/peripheral Serial Peripheral Interface (SPI)
* 1x Dual mode controller/peripheral I2C
* 1x Analog Comparator (AC) with a scalable reference input
* Watchdog Timer with separate on-chip oscillator
* Six PWM channels
* Interrupt and wake-up on pin changeFor more details, [read here](https://docs.arduino.cc/hardware/uno-rev3/).