- The added line is THIS COLOR.
- The deleted line is THIS COLOR.
[[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,,60%);&ref(T3_PK.jpg,,60%);~
~
&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);~
#youtube(qxkAiS78NXs);
** Revision History [#yacd37f1]
>
- 2015-04-21 This article is initially published.~