[[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.~