*Tutorial3 [#if0b38d3]
** Making a breadboard useful [#l14661ea]
Create a simple electronic circuit, using a breadboard. Then, control it from PIC.

** Preparation [#k805ccce]
- Breadboard~
You can use any breadboard, and you can purchase breadboards from the net, such as [[here>http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Delectronics&field-keywords=breadboard&rh=n%3A172282%2Ck%3Abreadboard]] and [[here>https://www.sparkfun.com/search/results?term=breadboard]].~
In this article, the breadboard shown in the picture below is used.~

This cable is used for connecting PICKit 3 to the breadboard.~
Please read [[BC-USB-Kit Manual:http://labs.beatcraft.com/en/index.php?BC-USB-Kit%2FManual]] about the pin assignments.~
On BC-USB-Kit, the pin headers from #1 to #5 at J1 are identical to the pin-headers at J2.~
(J2 is located at the opposite end of the USB connector.)~
&ref(T3_cable.jpg,,45%); &ref(T3_PK.jpg,,45%);~

-Other parts~
An LED, a resistor, and a cable~

** Creating a simple electronic circuit [#fe9400f2]
The outputs from GPIO controll the tuning-on/off of the LED.~
RA0, the 23rd-pin at J1, is used.~ 
The 14th-pin at J1 is used as GND since the location of the pin is easy to access and to be identifiable.~ 
Please accordingly set the LED, resistor, and cable in the breadboard as they are shown in the picture below.~
Please be careful with the direction of the LED as you are going to insert it into the breadboard.~
The longer leg of LED is attached to BC-USB-Kit.~

** Preparation of the software [#d6068e1f]
This is the contents of "main.c."~
 #include <stdio.h>
 #include <stdlib.h>
 #include <system.h>
 #define LED_ON_BB LATAbits.LATA0
 int main(int argc, char** argv) {
      int onboard = 0;
      LED_TRIS_ON_BB = 0;
      while (1){
           if (onboard>0){
                LED_ON_BB = 1;
                LED_ON_BB = 0;
           if ( BUTTON_IsPressed(BUTTON_S1) ){
                onboard =! onboard;
      return (EXIT_SUCCESS);

To learn programming, please do not try to memorize whole code as it is, but please understand the structure and meaning of the code.~
In this code, the critical part is that initially TRISAbits.TRISA0 is set to 0 (zero), then, it is set to the output.~
The other important part is that when LATAbits.LATA0 is set to 1, an LED lights up, and when it is set to 0, the LED turns off.~

** Testing [#sbb7eabe]
If there are no problems, each time you press the user programmable button, the other LED lights up.~

** Revision History [#yacd37f1]
- 2015-04-21 This article is initially published.~

Front page   Edit Diff Backup Upload Copy Rename Reload   New List of pages Search Recent changes   RSS of recent changes