Embedded Programming

This week we were asked to program a board to do something, "with as many different programming languages and programming environments as possible." Though I'm pretty sure I'll be using a microcontroller in my final project, I knew I'd struggle to keep up this week, knowing next to nothing about programming or writing code. I decided to use the Arduino IDE to get a functional result before delving into C and gcc. Though I tried to mill a second copy of the board I'd designed, each iteration had a major flaw - traces so thin that they became discontinuous, traces so thick that they touched in too many places to cut away with accuracy by hand, sizing that didn't quite match the size of the components - so I eventually borrowed a classmate's milled board so that I could proceed with the rest of the assignment.

The board was designed to include 3 LEDs, 2 that turned on when the board was powered, and one programmable via the attiny. I based my code off the example code "Blink" included in the Arduino IDE.

I used the USBtinyISP from week 3 to program the board. With both pin headers connected correctly, I compiled and ran the simple code straight from the IDE to the Attiny chip, and the blue LED blinked at a frequency adjustable using the "delay" command.

It seemed as though the other LEDs on the board reacted to the blinking as well, though, dimming and brightening in sync with the one that had been programmed to do so. I wasn't sure how to better power each light, but I am guessing that the output voltage on the board "droops" when powering the LED, shrinking the current flow through the other two. I imagine this could be tested by using two chips and their separate VCC pins to approximate different power supplies.