previous arrow
next arrow
  • LC TIP # 9: Save on RAM using the F() Macro (7/3/2018) by admin

  • LED as Light Sensor (6/27/2018) by admin

    We all know that a LED emits light. But it also acts as a photodiode, that is, current flows through when the device is exposed to light and therefore producing a voltage drop across the terminals of the LED. The amount of light is proportional, although not linear, to the voltage across the terminals.

    In this article, we will demostrate how this is done using an ordinary red LED and a Saleng Uno. For display, we will use a 16×2 LCD module with a Kimat I2C backpack.





    Happy Hacking!

  • When to encase an Arduino (6/27/2018) by CD Malecdan

    Asked why one student would want to buy an Arduino acrylic casing for his fan-speed controller box , he quickly said “ginmatang da met amin, agalaak meten ah” [Everyone bought one, so I might as well get mine]. Sounds familiar? Well, that band wagon effect may have happened to you but let us be look closer at these popular enclosure.

    At first glace, a casing for your bare Arduino board would seem logical as it would provide a form of protection from the elements, ESD damage and other catastrophic possibilities like spilling coffee over your board. Again, this would sound reasonable…almost! In this article, we will breakdown some of the reasons why you need and why you might not really need an acrylic case for your Arduino board.

    Microcontrollers in Embedded Systems Applications – a lot of Arduino projects require embedding the board into the application and many times, we literally need to embed the board itself on a larger PCB or perhaps a larger box. Obviously, you do not need an enclosure for the Arduino since you are most likely to enclose the whole system in a bigger box. In such a case, what you need a proper enclosure or panel box.

    Arduino as a Development Board – If you are not permanently embedding your board and simply want it for experiments, then this is where you might need an enclosure. Afterall, the Arduino was meant as a development board. But here is one reason you may be better off not encasing your board – as an experiment board, you might want full access to everything on the board, from its components to the microcontroller pins. Before the rise of the Arduino, most of microcontroller development boards are bare without enclosures just like this Atmel AVR development board – the STK500 which, although first released more than a decade ago, is still being used and still without a casing even today.

    The benefit is obvious, as a developer, you will at some point require access of certain components within the board. For example, when an external circuit connected to an output pin is not behaving as expected, you may want to probe the voltage level directly at the microcontroller’s pin. Simple power tests, checking the regulator’s temperature, and probing signals are reasons why a casing may not be convenient for a development board

    Aesthetics – An Arduino enclosed by a transparent casing may be an eye-candy. But imagine a project where you use most of the pins. That would mean a lot of wire sticking out of the enclosure and then into other modules or PCB’s. If you have a few wires or perhaps with some slick wire management techniques, you might be able to get away with a good looking setup.

    So what for is this casing? – here are some reasons we’ve though an acrylic casing would really shine:

    • If you are using the board for frequent but light experiments that do not require extensive signal probe and the like.
    • Small projects with components that can be placed inside the casing or with only a few components outside the casing (e.g. a shield)
    • When it is used as a training board for different users with varying electronics knowledge. The case would be a good protection for clumsy fingers touching the sensitive electronics.

    So the next time you think about purchasing a casing, think about your application and judge for your self if it is really needed.

  • Determine if a BJT is NPN or PNP using a Saleng Uno (6/7/2018) by CD Malecdan

    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.


  • Improvements made on the Saleng Uno (6/1/2018) by admin

  • LC TIP 008: Two Extra Analog Pins (5/31/2018) by admin

    Need more analog pins? If you are using an SMD version of the  ATMega328P, then you are in luck!

  • A closer look at the “R3” in Arduino Uno (5/31/2018) by admin

    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.

  • LC TIP # 007: PTC Fuse on the Arduino (5/24/2018) by admin

  • Arduino vs ATmega vs Atmel vs AVR (5/22/2018) by admin

    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) (3/24/2018) by CD Malecdan

    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.

Did you find our Learn section helpful? Consider donating here and help us keep the articles coming.