Project 10 - Output Devices

For my output device I am making an LCD, liquid-crystal display, which will also be used for my final project. To deign the board to control the screen I went back to my basic controller board from week 5 (which I'd fixed along the way). I removed the 6x1 header that was used for serial communication and added a 5x2 header to connect to the LCD screen and a 2x2 header for a battery pack. Below is my Eagle schematic. I made the 2x5 header by placing a 2x3 header and a 2x2 header next to each other. I referenced the examples on the class page and and basically just recreated it. schematic board

I copied the board layout, cut out the board, soldered on the components and connected the 5x2 header to a ribbon cable and to the LCD. To program the board I used the Arduino examples for LiquidCrystal and started with the HelloWorld code just to show something on the screen. I couldn't find a 9V battery in the lab so I connected the board to a power supply. Immediately it got amazingly hot and there was a little puff of smoke. I looked up and realized I set the power supply to 12V without thinking... I replaced the 5V regulator and the Attiny. To remove the Attiny I used the heat gun and held the board up by the Attiny with tweezers. Within seconds the board dropped and the Attiny was off. picture of board

With a new regulator and ATtiny I reprogrammed the board, but it still didn't work, it just shows the first row all black. I checked to make sure the Attiny is powered with 5V, that all the leads from the LCD are connected correctly to the Attiny, double checked the solder joints, replaced the attiny... No cigar this week. dark screen

Arduino Code

#include < LiquidCrystal.h >

// initialize the library with the numbers of the interface pins
/* The circuit:
* LCD RS pin to digital pin 5
* LCD Enable pin to digital pin 4
* LCD D4 pin to digital pin 3
* LCD D5 pin to digital pin 2
* LCD D6 pin to digital pin 1
* LCD D7 pin to digital pin 0
* LCD R/W pin to ground*/
LiquidCrystal lcd(5, 4, 3, 2, 1, 0);

void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("Hellow World");
}

void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
//lcd.setCursor(0, 1);
// print the number of seconds since reset:
//lcd.print(millis()/1000);
}