Introduction: Pinguino Project (a PIC Microcontroller Based Arduino #No Programmer Required)
Hey Guys i am Back after 2 months with Awesome Project,This is a Complete tutorial to make PIC Microcontroller based Arduino ,which can run Arduino Programs on PIC18F4550 or PIC18F2550 Microcontroller , one advantage on this microcontroller is ,it does'nt require any External Programmers, Since it has inbuilt USB support .so guys lets get started
Step 1: Things Needed !
1) PIC18F2550 (28pin) -1
2) Crystal 20Mhz -1
3) Capacitor -22pf -2
4) Resistor 470ohm - 2
5) USB B type PCB mount - 1
6) Capacitor 220nf - 1
7) Jumpers -few
8) LED - 1 or 2
9) Push button
10) Resistor 10K ohm - 1
Step 2: Circuit Diagram for Pinguino Board
Connect all the components as shown in the circuit diagram on Breadboard or you can make your own PCB board , here i used Breadboard for my project.
Step 3: Downloading PINGUINO IDE
Download Pinguino IDE from this website
Step 4: Download Bootloader File !
Step 5: I Used PICKIT2 Which I Purchased It From Amazon India
https://electrosome.com/pickit2/
Here we just need to put microcontroller on to the ZIF socket and connect it to pC, open PICKIT2 Software and Upload the Code
NOTE: if you are using standard PICKIT2 then follow next step !
Step 6: How to Use PICKIT2 to Upload HEX File to the PIC Microcontroller
Download PICKIT2 software here:
http://pickit2.software.informer.com/download/
Download PDF from Microchip on uploading HEX file to PIC microcontroller using PICKIT2
http://ww1.microchip.com/downloads/en/DeviceDoc/PI...
PICkit is a family of programmers for PIC microcontrollers made by Microchip Technology. They are used to program and debug microcontrollers, as well as program EEPROM. Some models also feature logic analyzer and serial communications (UART) tool.
The PICkit 2 — introduced in May 2005 — replaced the PICkit 1. The most notable difference between the two is that the PICkit 2 has a separate programmer/debugger unit which plugs into the board carrying the chip to be programmed, whereas the PICkit 1 was a single unit. This makes it possible to use the programmer with a custom circuit board via an In Circuit Serial Programming (ICSP) header. This feature is not intended for so-called "production" programming, however. The PICkit 2 uses an internal PIC18F2550 with Full Speed USB. The latest PICkit 2 firmware allows the user to program and debug most of the 8 and 16 bit PIC micro and dsPIC members of the Microchip product line.
More info from this website : https://www.pantechsolutions.net/microcontroller-b...
Step 7: After Bootloading
Make pinguino Circuit and connect it to the computer through USB, Uploadd pinguino project drivers,
you can download it from Pinguino official website and everything is ready to Code.
Step 8: PInguino BLINK
void setup()
{
pinMode(USERLED, OUTPUT);
}
void loop()
{
digitalWrite(USERLED, LOW);
delay(50);
digitalWrite(USERLED, HIGH);
delay(50);
}
For more examples : http://wiki.pinguino.cc/index.php/6_ways_to_blink_...
Step 9: Uploading Code to Pinguino Board
Step 10: Build Your Own Pinguino on PCB...
Build you own PCB and solder all components.i have uploaded design files download and follow PCB designing steps on my other instructables.
Attachments
Step 11: ADDING LCD 16*2 DISPLAY...!
/* ----------------------------------------------------------------------------
----------------------------------------------------------------------------
---------- LCD 2x16
----------------------------------------------------------------------------
01 - VSS (GND)
02 - VDD (+5V)
03 - Vo (R = 1K Ohm to GND)
04 - RS (pin 8 in this ex.)
05 - RW (GND = LOW = write mode)
06 - EN (pin 9 in this ex.)
07 a 10 - D0 a D3 (connected to GND in this ex.)
11 a 16 - D4 to D7 (pin 0 to 3 in this ex.)
15 - LED+ (R = 470 Ohm to +5V)
16 - LED- (GND)
---------------------------------------------------------------------------*/
void setup()
{
lcd.pins(0, 1, 2, 3, 4, 5, 0, 0, 0, 0); // RS, E, D4 ~ D8
// LCD format
lcd.begin(16, 2); // cols, lines, [dotsize]
lcd.home(); // 0, 0
lcd.printf("PINGUINO PROJECT");
lcd.setCursor(0, 1);
lcd.printf(">INSTRUCTABLES<");
}
void loop()
{
}