Archive for September 2010

RTC Module (Part 4)

Part 1, 2, 3, 4, 5, 6, 7 Encoder library + LCD libray + RTC library + some more code = MicroCLK! MicroCLK is a fancy little clock which displays time and date. It has a real basic (verybasic!) alarm function. The application is menu driven: hour, minute, seconds, day, month, year, alarm hour, alarm minute, alarm activation/deactivation. The hardware is limited […]

Direct Digital Synthesizer (DDS) (Part 4)

Part 1, 2, 3, 4, 5, 6 Encoder library + LCD libray + DDS library + some more code = MicroDDS! MicroDDS is a fancy little device which will allow you to generate multiple types of wave: Flat, Sine, Square, Triangle, Saw tooth, Random. The hardware is limited to an Arduino Board, 1 LCD (2 lines, 16 characters), 1 rotary encoder, […]

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 […]

Incremental rotary encoders (Part 6)

Part 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Some may say: why bother so much about rotary encoders? The answer is that I plan to use them extensively in combination with LCDs as multi purpose User Interface for my MicroXXX projects. In spite of its smooth operation, my latest production is not fully complying with the Good Interrupts Management […]

Tips and tricks (5)

Previous T&T This trick does not deal with interrupts for a change! The problem arose when I wanted to run two SPI driven modules (RTC and SDCard) from the same SPI port, using different Slave Select lines. While both modules where running perfectly using PORTB2, PORTB3, PORTB4 and PORTB5, respectively SS, MOSI, MISO and CLK. […]

Arduino Enclosure (Part 3)

Part 1, 2, 3, 4, 5, 6, 7 As usual, it is when I am looking for something that I find something else! NKC Electronics and Smart Electronics are selling a cute enclosure here and here. From what I see, it may be difficult to add displays and commands. On the other hand, it looks very compact and rugged. Lextronic and some […]