Archive for the ‘Interfaces’ Category

Engine RPM (Part 2)

Part 1, 2, 3, 4, 5 The previous post covered the hardware part of the engine RPM sensor, it is time to care about the software component. Nothing complex ahead, and we have a variety of options for taking care about pulse counting. Globally, all we need is a pin which will read the state […]

Direct Digital Synthesizer (DDS) (Part 6)

Part 1, 2, 3, 4, 5, 6, 7, 8, 9 Patrick, thanks for your feed back. Thanks to you, there will be some updates of the PlainDDS library and its related MicroDDS applications. Here is a quite simple but already pretty effective human-machine interface for driving a signal generator. Get the latest Flash Player to see this player. [Javascript required to view Flash […]

Graphic Liquid Crystal Display (Part 1)

This series of posts will explore GLCD (Graphic Liquid Crystal Display). For demonstration purpose, I will use a standard GLCD 128×64, driven by Samsung KS KS0108B controllers: And here is its pinout Pin Diagram Symbol Level Function Vss 0V Ground Vdd +5V Power supply for logic Vo – Operating voltage for LCD (contrast adjusting) RS […]

Connecting AVRISP to Arduino (Part 2)

Part 1, 2, 3, 4 Uploading a fresh version of the bootloader to Arduino (UNO/Duemilanove) Connect AVRISP and Arduino   Power the Arduino board using an external DC power supply (7 to 12 V). If necessary set the power supply jumper of the Arduino Board to external. Connect the ICSP programmer to the ICSP port on the Arduino […]

Application Note of the day

Arduino is fed by a single supply (actually +5 V DC) from which many simple interface circuits can be powered. While this is just fine for digital interfaces, it may be tricky when designing analog circuitry. Here is a very nicely written Application Note from TI, describing “A Single-Supply Op-Amp Circuit Collection”. This Application Note […]

Relays (Part 1)

Part 1 Relays may look outdated in the world of microprocessors: they are big, greedy (in mA) and slow. However, some of their properties make them unavoidable still, when comes the question of: galvanic isolation and requirement for fully floating contacts. Driving relays is no big deal as long as we care about the fit […]

EVSE (Part 1)

EVSE stands for Electric Vehicle Supply Equipment. The term EVSE has been in use for a long time, and the 1996 NEC and California Article 625 defined (PDF) EVSE as: The conductors, including the ungrounded, grounded, and equipment grounding conductors, the electric vehicle connectors, attachment plugs, and all other fittings, devices, power outlets or apparatuses […]

User Interface (Part 4)

Part 1, 2, 3, 4, 5 Once the structure of the menus has been translated into a vector of menu items, let’s talk about the core portion of the code which will read information from the rotary encoder and convert the information into appropriate display. The following routine must be called from the loop() routine: void mnuDriver(void) { int16_t […]

User Interface (Part 3)

Part 1, 2, 3, 4, 5 Now that we have decided how the menus will display on the LCD, let’s investigate the firmware. Writing some code for driving menus is not so hard. But making this code flexible enough for driving “any” menu structure makes your programmer’s life quite dense! The basis for my code is a vector which […]

User Interface (Part 2)

Part 1, 2, 3, 4, 5 Designing menus for Arduino based applications To my opinion, the simplest human interface for Arduino application consists in a 2×16 characters LCD and a rotary encoder. Then comes the question of the firmware for interpreting the rotary encoder pulses and converting them in menus, sub menus, parameters, returns and exists. Even though the […]