[[labs.beatcraft.com]]~
[[BC-USB-Kit]]~
[[BC-USB-Kit/Tutorials]]~

#contents


*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.~
~
&ref(T3_BB.jpg,,60%);~

>
-Cable~
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%);~
&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.~
~
&ref(T3_LED.jpg,,60%);~


** 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
 #define LED_TRIS_ON_BB TRISAbits.TRISA0
 
 int main(int argc, char** argv) {
      int onboard = 0;
      SYSTEM_Initialize(SYSTEM_STATE_START);
      LED_TRIS_ON_BB = 0;
 
      while (1){
           if (onboard>0){
                LED_Off(LED_D1);
                LED_ON_BB = 1;
           }else{
                LED_ON_BB = 0;
                LED_On(LED_D1);
           }
 
           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.~
~
#youtube(qxkAiS78NXs);~


** 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