Determine if a BJT is NPN or PNP using a Saleng Uno

While there are almost an infinite number of simple applications, a transistor tester appears to be uncommon in Arduino related materials. This simple project demonstrates the Saleng Uno as a BJT transistor type tester. A standard 16×2 LCD module displays if the result is NPN or PNP, a momentary button tells the Saleng Uno when it should start processing and the three 10K resistors are used as test circuit.



Demo Video:

We’ve based this project from this article. We’ve added an LCD and a start button and added some validation before displaying results.


A closer look at the “R3” in Arduino Uno

You may probably wonder what the “R3” means in board titles such as “Arduino Uno R3”. It may be simpler than what you think.

To start with, the R3 is a revision number of the PCB. This means there were earlier revisions such as R2 and the original board. So what is the difference between an R3 board and earlier PCB’s? Here are the two most significant ones we feel may affect your project:

  • Extra I2C Headers – the R3 has an SDA and SCL pins after the AREF pins. these are actually a duplicate of A4 (SDA) and A5(SCL) and was probably added to facilitate connection of two devices in the I2C bus.
  • The on board “L” led  controlled by pin 13 is buffered using an op-amp in the R3 while earlier boards directly connects the LED and resistor to pin 13. This eliminates degradation of pin 13’s performance especially when used as an input.

There are other differences like the upgrade of the USB chip from an Atmega8U2 to Atmega16U2 but this is essentially of the same function and is not necessarily the only or the best solution for other Uno compatible boards. The rest of the differences are changes you may never notice or does not really affect performance such as the positioning of some components on the board.

And while we are discussing these changes, it is worthwhile to note that almost all boards being sold today are using the R3 variant. Even Uno-compatible boards have now inherited the changes in R3 and with some  adding even better improvements.

Arduino vs ATmega vs Atmel vs AVR

In the world of DIY/Hobby electronics, at least for Filipino hobbyist, one will encounter these terms that are sometimes used interchangeably. Knowing what they mean would help one better digest online materials or actual conversations on Arduino.

Atmel – A lot of Arduino boards uses microcontroller chips originally manufactured by Atmel. It was taken over by the company called Microchip, the former competitor of Atmel.

Microchip – The company that has taken over Atmel.

AVR – A distinct product family of microcontrollers manufactured by Atmel/Microchip. It is based on an 8-bit RISC architecture under which are the microcontrollers that power Arduino Uno, Nano, Leonardo and Mega2560, among others.

AtmegaXXXX – These are the part numbers of the actual chips. The Arduino Uno uses the chip ATmega328P while the Arduino Mega uses the ATmega2560. Both are part of the “megaAVR” sub-family of chips under AVR.

Arduino – The development board we are all familiar with including its tool sets.

Demo of the Saleng-ACS712 (5A)

A simple test code for the Saleng-ACS712 module. Connect the terminal blocks of the Saleng ACS712 in series with the circuit you want to test. Simply upload and open the serial monitor with a baud rate of 9600. Connects are as follows:


The complete code may be downloaded from our github page.

See the Saleng-ACS712 user guide here.